Python 在pyMC3中创建确定性变量矩阵

Python 在pyMC3中创建确定性变量矩阵,python,python-3.x,pymc3,Python,Python 3.x,Pymc3,我试图用pyMC3实现以下模型 我无法定义确定性变量的8x8矩阵 假设我想要的2D矩阵的名称是s 我希望s[I,j]等于np.exp(-c*(w*d1[I,j]+(1-w)*d2[I,j]) 在哪里, d1[i,j]、d2[i,j]是np数组 c ~ Uniform(0,5) w ~ Uniform(0,1) 我尝试了以下方法: s=np.zero((d1.shape[0],d1.shape[1])) 使用pm.Model()作为模型: c=颗粒均匀(“c”,0,5) w=粉末均匀(“w

我试图用pyMC3实现以下模型

我无法定义确定性变量的8x8矩阵

假设我想要的2D矩阵的名称是s

我希望
s[I,j]
等于
np.exp(-c*(w*d1[I,j]+(1-w)*d2[I,j])

在哪里,

d1[i,j]、d2[i,j]
是np数组

c ~ Uniform(0,5)


w ~ Uniform(0,1)
我尝试了以下方法:

s=np.zero((d1.shape[0],d1.shape[1]))
使用pm.Model()作为模型:
c=颗粒均匀(“c”,0,5)
w=粉末均匀(“w”,0,1)
对于范围(8)中的i:
对于范围(8)内的j:
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支持矢量化操作,因此您应该能够使用

以pm.Model()作为模型的
:
c=颗粒均匀(“c”,0,5)
w=粉末均匀(“w”,0,1)
s=pm.Deterministic('s',tt.exp(-c*(w*d1+(1-w)*d2)))