使用pm.fast_sample_posterior_predictive的Pymc3形状错误

问题描述

我已经使用PYMC3拟合了两组分混合物模型,并希望从后验模型中采样。

我可以使用pm.sample_posterior_predictive()做得很好,但是当我尝试使用pm.fast_sample_posterior_predictive()这样做时,我会收到以下ValueError:

ValueError: input operand has more dimensions than allowed by the axis remapping

我不确定为什么会这样,也无法在PYMC3文档中找到原因。

以下代码

with pm.Model() as model:
    alpha_mu = 1.0 / y.mean()
    lam1 = pm.Exponential('lam1',lam=1)
    lam2 = pm.Exponential('lam2',lam=2)

    pois1 = pm.Poisson.dist(mu=lam1)
    pois2 = pm.Poisson.dist(mu=lam2)

    w = pm.Dirichlet('w',a=np.array([1,1]))

    mix = pm.Mixture('mix',w=w,comp_dists = [pois1,pois2],observed=y)
    # optimization
    mean_field = pm.fit(n=10000,obj_optimizer=pm.adagrad(learning_rate=0.1))
    trace = mean_field.sample(1000)
    # plot trace
    pm.traceplot(trace,varnames=['lam1','lam2','w'])
    plt.show()
    # plot Preditive Posterior Check
    ppc = pm.fast_sample_posterior_predictive(trace,samples=len(y))

感谢您的任何帮助,谢谢。

解决方法

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

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

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