我必须做这样的事情。
import theano as th
import theano.tensor as T
x, y = T.dscalars('x', 'y')
z = np.matrix([[x*y, x-y], [x/y, x**2/(2*y)]])
f = th.function([x, y], z) # causes error
# next comes calculations like f(2, 1)*f(3, 2)*some_matrix
我知道最后一行不是有效代码,因为th.function不支持返回这些对象。有没有一种有效的方法可以在不返回矩阵的所有元素并将其作为np.matrix投射的情况下执行此操作?
答案 0 :(得分:0)
您的方法存在的问题是z需要是theano变量列表而不是numpy矩阵。
您可以使用以下方法获得相同的结果:
z1,z2,z3,z4 = x*y,x-y,x/y,x**2/(2*y)
f = th.function([x, y], [z1,z2,z3,z4])
def createz(z1,z2,z3,z4) :
return np.matrix([[z1,z2],[z3,z4]])
print(createz(*f(1,2)))