我在pymc中有一个模型,简化
import pymc as pm
a = pm.Normal('a', 0,5)
b = pm.Normal('b', 0,5)
cnt = 0
@pm.deterministic
def mu(a=a, b=b):
global cnt
cnt += 1
return a + b*x # x and y were loaded from csv
y_hat = pm.Normal('y', mu, 1, observed=True, value=y)
mc = pm.MCMC([a,b,mu,y_hat])
mc.sample(100)
print (cnt)
结果:
240
模型运行后,我希望cnt
为100,但是打印它会产生大约240(不是每个采样返回相同,但它是关于那个数字)。我认为pymc
可能在前几个中做了一些调整,但是运行了几千次迭代,cnt
总是比mcmc迭代多2倍。
答案 0 :(得分:0)
评估mu
的次数与任何MCMC运行中的迭代次数无关。我不指望它们是等价的。你想做什么?