在 pyMC3 中创建确定性变量矩阵
Creating a matrix of deterministic variables in pyMC3
我正在尝试使用 pyMC3 实现以下模型
我无法定义 8x8 确定性变量矩阵。
假设我想要的二维矩阵的名称是 s。
我希望 s[i, j]
等于 np.exp(-c*(w*d1[i, j] + (1-w)*d2[i, j]))
其中,
d1[i, j], d2[i, j]
是 np.arrays
c ~ Uniform(0,5)
w ~ Uniform(0,1)
我尝试了以下方法:
s = np.zeros((d1.shape[0],d1.shape[1]))
with pm.Model() as model:
c = pm.Uniform("c", 0, 5)
w = pm.Uniform("w", 0, 1)
for i in range(8):
for j in range(8):
name_str = "s["+str(i)+","+str(j)+"]"
s[i,j] = pm.Deterministic(name_str, tt.exp(-c*(w*d1[i,j]+(1-w)*d2[i,j])))
当我尝试 运行 时,出现错误:
ValueError: setting an array element with a sequence.
我是 pyMC3 的新手。有什么方法可以实现上面的图形化模型吗?
PyMC3 支持向量化操作,所以你应该可以直接使用
with pm.Model() as model:
c = pm.Uniform("c", 0, 5)
w = pm.Uniform("w", 0, 1)
s = pm.Deterministic('s', tt.exp(-c * (w * d1 + (1 - w) * d2)))
我正在尝试使用 pyMC3 实现以下模型
我无法定义 8x8 确定性变量矩阵。
假设我想要的二维矩阵的名称是 s。
我希望 s[i, j]
等于 np.exp(-c*(w*d1[i, j] + (1-w)*d2[i, j]))
其中,
d1[i, j], d2[i, j]
是 np.arrays
c ~ Uniform(0,5)
w ~ Uniform(0,1)
我尝试了以下方法:
s = np.zeros((d1.shape[0],d1.shape[1]))
with pm.Model() as model:
c = pm.Uniform("c", 0, 5)
w = pm.Uniform("w", 0, 1)
for i in range(8):
for j in range(8):
name_str = "s["+str(i)+","+str(j)+"]"
s[i,j] = pm.Deterministic(name_str, tt.exp(-c*(w*d1[i,j]+(1-w)*d2[i,j])))
当我尝试 运行 时,出现错误:
ValueError: setting an array element with a sequence.
我是 pyMC3 的新手。有什么方法可以实现上面的图形化模型吗?
PyMC3 支持向量化操作,所以你应该可以直接使用
with pm.Model() as model:
c = pm.Uniform("c", 0, 5)
w = pm.Uniform("w", 0, 1)
s = pm.Deterministic('s', tt.exp(-c * (w * d1 + (1 - w) * d2)))