我有一个矩阵'y',我想在y的每一行中添加一个数字。然后我设置一个矩阵'x',第一列设置我要添加的那个。我使用以下代码:
import numpy
import theano
import theano.tensor as T
x = T.matrix('x')
y = T.matrix('y')
z = T.sum(y[T.arange(1,5),x[:,0]])
f = theano.function(inputs=[x,y],outputs=z)
x = numpy.asarray([[1],[2],[3],[4],[0]])
y = numpy.ones(5,5)
print(f([x,y]))
但这不行。会出现语法错误。为什么这个代码不起作用?
答案 0 :(得分:0)
您的代码中存在一些问题。首先,仔细定义您的数据类型,然后在使用[]
括号时确定数据类型(当您通过f([x,y])
调用函数时,请参阅如何创建另一个数组)
所以,在我修改你的代码之后变成:
import numpy
import theano
import theano.tensor as T
x = T.imatrix('x') #define integer matrix
y = T.imatrix('y')
z = T.sum(y[T.arange(5),x[:,0]])
f = theano.function(inputs=[x,y],outputs=z)
x = numpy.asarray([[1],[2],[3],[4],[0]])
y = numpy.ones((5,5),dtype="int32") #define integer array
print(f(x,y)) #remove square bracket
希望有所帮助