创建对象。
下面是产生错误的一小段代码:
import pymc
import numpy as np
a = pymc.Normal('a', 1, 1)
b = np.empty(4, dtype=object)
for i in range(4):
b[i] = 1*a
b[i].__name__ = 'b_%i'%i
M = pymc.MCMC([a,b])
M.sample(10)
M.trace('b_0') # Causes a KeyError:'b_0'
我不明白为什么当我试图提取b_0
和所有其他b的踪迹时,我会得到KeyError: 'b_0'
。是这些痕迹没有被保存吗?如果是这样,是否有一种方法可以直接拨动一些开关来改变它,而不必使用@deterministic.
我查看了它,显然跟踪没有被保存。此外,用于保持跟踪的"标志变量"不是.trace
,而是.keep_trace