PyMC3数组的第%个前导次幂不是肯定的

问题描述

我正在尝试使用以下超级优先级配置PyMC3多项式内核;

    with pm.Model() as self.model:
      EPSILON = 0.1 
      l = pm.Gamma("l",alpha=2,beta=1)
      offset = pm.Gamma("offset",beta=1)
      nu = pm.HalfCauchy("nu",beta=1)
      d = pm.Halfnormal("d",sd=5)

      cov = nu ** 2 * pm.gp.cov.polynomial(X.shape[1],l,d,offset)

      self.gp = pm.gp.Marginal(cov_func=cov)

      sigma = pm.HalfCauchy("sigma",beta=1)
      y_ = self.gp.marginal_likelihood("y",X=X,y=Y,noise=sigma)

      self. map_trace = [pm.find_MAP()]

但是,我遇到了如下的 Cholesky分解失败错误

LinAlgError                               Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/theano/compile/function_module.py in __call__(self,*args,**kwargs)
    902             outputs =\
--> 903                 self.fn() if output_subset is None else\
    904                 self.fn(output_subset=output_subset)

24 frames
LinAlgError: 7-th leading minor of the array is not positive definite

During handling of the above exception,another exception occurred:

LinAlgError                               Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/scipy/linalg/decomp_cholesky.py in _cholesky(a,lower,overwrite_a,clean,check_finite)
     38     if info > 0:
     39         raise LinAlgError("%d-th leading minor of the array is not positive "
---> 40                           "definite" % info)
     41     if info < 0:
     42         raise ValueError('LAPACK reported an illegal value in {}-th argument'

LinAlgError: 7-th leading minor of the array is not positive definite
Apply node that caused the error: Cholesky{lower=True,destructive=False,on_error='raise'}(Elemwise{Composite{((sqr(i0) * i1) + i2 + i3)}}[(0,0)].0)
Toposort index: 11
Inputs types: [TensorType(float64,matrix)]
Inputs shapes: [(40,40)]
Inputs strides: [(320,8)]
Inputs values: ['not shown']
Outputs clients: [[Solve{A_structure='lower_triangular',lower=False,overwrite_A=False,overwrite_b=False}(Cholesky{lower=True,on_error='raise'}.0,TensorConstant{[  69.79  ..   472.83]}),Solve{A_structure='lower_triangular',Elemwise{Composite{(sqr(i0) * i1)}}[(0,0)].0)]]

更改超级优先级似乎会更改错误,例如将显示第x个其他领先的未成年人,而不是第7个领先的未成年人。但是我不确定这是由优先级较高还是其他原因引起的。

欢迎任何想法:)

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)