0

我必须做这样的事情。

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 的情况下执行此操作?

4

1 回答 1

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)))
于 2013-09-18T03:39:13.680 回答