我已经开始学习PYMC3了。我试图用PYMC3编写一个简单的矩阵乘法。基本上是想学习和理解如何在PYMC3中完成算术操作。
下面是我的代码,
import numpy as np
import pymc3 as pm
dimension_N = 3
min = 0
max = 100
Matrix_A = np.random.randint(min,max,(dimension_N,dimension_N)).astype(np.uint8)
Matrix_B = np.random.randint(min,max,(dimension_N,dimension_N)).astype(np.uint8)
Matrix_C = np.zeros((dimension_N,dimension_N))
with pm.Model() as model:
c = pm.Normal("c", mu=0, sigma=1)
a = pm.Normal("a", mu=0, sigma=1, observed=Matrix_A)
b = pm.Normal("b", mu=0, sigma=1, observed=Matrix_B)
c = a.dot(b)
gph = pm.fit()不确定这是否是正确的代码。你能帮帮我吗?从我的观察变量c返回0。你能告诉我出了什么问题吗?
发布于 2022-03-16 17:37:03
除了这里的模型还不清楚之外,我们仍然可以回答在处理PyMC3 RandomVariable对象时应该如何进行矩阵乘法。也就是说,RV在PyMC3中是对象,因此,应该使用theano.tensor.dot方法对它们进行矩阵乘法。例如,
import theano.tensor as tt
tt.dot(a,b)通常,请参考Theano张量功能文档的API,以便使用PyMC3进行有效的数学计算。
https://stackoverflow.com/questions/71421566
复制相似问题