如何处理theano的类型

时间:2016-04-10 03:20:48

标签: python theano

我有一个矩阵'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]))

但这不行。会出现语法错误。为什么这个代码不起作用?

1 个答案:

答案 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

希望有所帮助