Python AttributeError:_退出_与pymc
当我尝试执行以下python代码时,我正在Ubuntu 12.04上使用anaconda pythonPython AttributeError:_退出_与pymc,python,ipython,anaconda,with-statement,pymc,Python,Ipython,Anaconda,With Statement,Pymc,当我尝试执行以下python代码时,我正在Ubuntu 12.04上使用anaconda python import pymc as pm import numpy as np trace = None with pm.Model() as model: alpha = pm.Normal('alpha', mu=0, sd=20) beta = pm.Normal('beta', mu=0, sd=20) sigma = pm.Uniform('sigma', low
import pymc as pm
import numpy as np
trace = None
with pm.Model() as model:
alpha = pm.Normal('alpha', mu=0, sd=20)
beta = pm.Normal('beta', mu=0, sd=20)
sigma = pm.Uniform('sigma', lower=0, upper=20)
y_est = alpha + beta * x
likelihood = pm.Normal('y', mu=y_est, sd=sigma, observed=y)
start = pm.find_MAP()
step = pm.NUTS(state=start)
trace = pm.sample(2000, step, start=start, progressbar=False)
pm.traceplot(trace);
我得到以下错误
AttributeError Traceback (most recent call last)
<ipython-input-7-0d27d14303ac> in <module>()
3
4 trace = None
----> 5 with pm.Model() as model:
6 alpha = pm.Normal('alpha', mu=0, sd=20)
7 beta = pm.Normal('beta', mu=0, sd=20)
AttributeError: __exit__
AttributeError回溯(最近一次调用)
在()
3.
4跟踪=无
---->5使用pm.Model()作为模型:
6 alpha=pm.正常('alpha',μ=0,sd=20)
7β=pm.正常('beta',μ=0,标准差=20)
AttributeError:\uuu退出__
我怎样才能修好它?
这里有什么问题?pm.Model()
不是上下文管理器;它没有实现必要的方法。您可能正在运行一个版本的pymc
,其中尚未添加该功能
创建元素后,只需将其分配给变量并直接使用:
alpha = pm.Normal('alpha', mu=0, sd=20)
beta = pm.Normal('beta', mu=0, sd=20)
sigma = pm.Uniform('sigma', lower=0, upper=20)
# etc.
model = pm.Model([alpha, beta, sigma, ...])
使用函数生成输入。@martijin是的,你说得对。我使用的是pymc的旧版本,而不是pymc 3