在Theano中访问张量的函数

时间:2016-12-21 03:23:39

标签: theano

我正在与Theano图书馆合作。 我有1000个大小为114的对象,定义为大小为1000x114的变量。 我有一个函数,它接受该变量并产生0到113之间的1000个数字。 我需要创建一个函数,它接受1000个对象中的每一个,即前一个函数给出的位置中的数字。 我该怎么办?

这是有效的:

input_var = T.imatrix('inputs')
index = something
index_fn = theano.function([input_var], index, name="index function")

这是行不通的:

num = input_var[:][index + 48]
num_fn = theano.function([input_var], num, name="num function")

num_fn的结果与我输入的数据相同。

1 个答案:

答案 0 :(得分:1)

我不知道+48应该做什么但是我假设索引+48是你的函数返回的索引向量。 theano(和numpy)索引的工作方式是你的第二种方法,使用:,将返回索引为index的行。相反,您需要使用范围,例如:

num = input_var[T.arange(T.shape(input_var)[0]), index + 48]
num_fn = theano.function([input_var], num, name="num function")