Python 有没有办法在zfit中扩展预定义的多项式pdf?

Python 有没有办法在zfit中扩展预定义的多项式pdf?,python,zfit,Python,Zfit,​我正在尝试使用扩展切比雪夫pdf进行拟合。为此,我使用预定义的zfit.pdf.Chebyshev()。我错过了什么 将tensorflow导入为tf 导入zfit 从zfit导入ztf obs=zfit.Space('mass',极限=(-1000,1000.)) slope=zfit.参数(“slope”,-0.1,-1,1.,floating=True) Nbkg=zfit.参数(“Nbkg”,10,0,1000) 切比雪夫(obs=obs,系数=[斜率]) 对于所有预定义的多项式(切

​我正在尝试使用扩展切比雪夫pdf进行拟合。为此,我使用预定义的
zfit.pdf.Chebyshev()
。我错过了什么

将tensorflow导入为tf
导入zfit
从zfit导入ztf
obs=zfit.Space('mass',极限=(-1000,1000.))
slope=zfit.参数(“slope”,-0.1,-1,1.,floating=True)
Nbkg=zfit.参数(“Nbkg”,10,0,1000)
切比雪夫(obs=obs,系数=[斜率])
对于所有预定义的多项式(切比雪夫/勒让德/埃尔米特),我得到以下错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-a86d6be1cc9d> in <module>
      2 slope = zfit.Parameter("slope", -0.1, -1., 1., floating = True)
      3 Nbkg = zfit.Parameter("Nbkg", 10, 0., 1000)
----> 4 bkg_pdf =  Nbkg*zfit.pdf.Chebyshev(obs =obs, coeffs = [slope])
      5 
      6 

~/soft/minconda3/envs/my-analysis-env/lib/python3.7/site-packages/zfit/core/parameter.py in __mul__(self, other)
    289             from . import operations
    290             with suppress(NotImplementedError):
--> 291                 return operations.multiply(self, other)
    292         return super().__mul__(other)
    293 

~/soft/minconda3/envs/my-analysis-env/lib/python3.7/site-packages/zfit/core/operations.py in multiply(object1, object2)
     34             new_object = multiply_param_func(param=object1, func=object2)
     35         elif isinstance(object2, ZfitPDF):
---> 36             new_object = multiply_param_pdf(param=object1, pdf=object2)
     37         else:
     38             assert False, "This code should never be reached due to logical reasons. Mistakes happen..."

~/soft/minconda3/envs/my-analysis-env/lib/python3.7/site-packages/zfit/core/operations.py in multiply_param_pdf(param, pdf)
     86     if pdf.is_extended:
     87         raise AlreadyExtendedPDFError()
---> 88     new_pdf = pdf.create_extended(param, name_addition="_autoextended")
     89     return new_pdf
     90 

~/soft/minconda3/envs/my-analysis-env/lib/python3.7/site-packages/zfit/core/basepdf.py in create_extended(self, yield_, name_addition)
    462         if self.is_extended:
    463             raise AlreadyExtendedPDFError("This PDF is already extended, cannot create an extended one.")
--> 464         new_pdf = self.copy(name=self.name + str(name_addition))
    465         new_pdf._set_yield_inplace(value=yield_)
    466         return new_pdf

~/soft/minconda3/envs/my-analysis-env/lib/python3.7/site-packages/zfit/core/basepdf.py in copy(self, **override_parameters)
    579         #     parameters.update(distribution=self.distribution)
    580         yield_ = parameters.pop('yield', None)
--> 581         new_instance = type(self)(**parameters)
    582         if yield_ is not None:
    583             new_instance._set_yield_inplace(yield_)

TypeError: __init__() got an unexpected keyword argument 'c_0'
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
2 slope=zfit.参数(“slope”、-0.1、-1,1.,floating=True)
3 Nbkg=zfit.参数(“Nbkg”,10,0,1000)
---->4 bkg_pdf=Nbkg*zfit.pdf.Chebyshev(obs=obs,系数=[斜率])
5.
6.
~/soft/minconda3/envs/my-analysis-env/lib/python3.7/site-packages/zfit/core/parameter.py in_uuuuuuu-mul_uuuu(self,other)
289来自。进口业务
290带抑制(未实现错误):
-->291返回操作。乘法(自身、其他)
292返回super()
293
乘法中的~/soft/minconda3/envs/my analysis env/lib/python3.7/site-packages/zfit/core/operations.py(object1,object2)
34新对象=乘法参数(参数=对象1,函数=对象2)
35 elif isinstance(对象2,ZfitPDF):
--->36新对象=乘法参数pdf(参数=object1,pdf=object2)
37.其他:
38 assert False,“由于逻辑原因,永远不能访问此代码。错误会发生…”
multiply_param_pdf(param,pdf)中的~/soft/minconda3/envs/my analysis env/lib/python3.7/site-packages/zfit/core/operations.py
86如果pdf.U被扩展:
87 raise ALREADYEXTENDEDFDERROR()上升
--->88新建\u pdf=pdf。创建\u扩展(参数,名称添加=“\u自动扩展”)
89返回新的pdf
90
~/soft/minconda3/envs/my analysis env/lib/python3.7/site-packages/zfit/core/basepdf.py在create\u extended(self、yield\u、name\u addition)中
462如果扩展了self.u:
463 raise ALREADYEXTENDEDFDERROR(“此PDF已扩展,无法创建扩展的PDF。”)
-->464新建pdf=self.copy(name=self.name+str(name\u添加))
465新pdf.\u设置\u收益率\u到位(值=收益率)
466返回新的\u pdf
复制中的~/soft/minconda3/envs/my analysis env/lib/python3.7/site-packages/zfit/core/basepdf.py(self,**覆盖参数)
579#parameters.update(distribution=self.distribution)
580产量=参数.pop('产量',无)
-->581新_实例=类型(自身)(**参数)
582如果收益率不是无:
583新实例。设置产量(产量)
TypeError:\uuuu init\uuuuuuuu()获取了意外的关键字参数“c\u 0”

我也尝试过
zfit.pdf.Chebyshev()。创建扩展(Nbkg)
,为pdf设置规范化和
coeff0
参数。

这实际上是一个在版本>0.3.6(目前正在开发分支)中修复的错误

您可以使用修复程序安装开发分支

pip安装git+https://github.com/zfit/zfit