要解决问题,请考虑以下简单模型:
import numpy as np
import pymc3 as pm
#(a few other stuff)
obsv = np.array([12., 45., 64., 34., 57.])
M = 400
with pm.Model() as model:
p_cat = (1/M)*np.ones(M)
theta = pm.Beta('rate', 1,1)
num = pm.Categorical('n', p_cat)
#likelihood
resp = pm.Binomial('resp', n=num, p=theta, observed=obsv)
现在,如果我尝试查找MAP,则会引发以下错误:
ValueError:优化错误:max处的max,logp或dlogp具有非有限值。某些值可能不在分发支持中。 max:{' count&#39 ;: array(0),' rate_logodds _&#39 ;: array(0.0)} ..等等。
乍一看似乎从count变量中取样有问题。
当然,当我跑步时:
count.tag.test_value # -> 0
(我的库是最新的。我使用的是python3)