【发布时间】:2018-01-14 20:31:10
【问题描述】:
我正在尝试对T.zeros() 进行一个简单的操作,其中两个向量的形状之间的差异作为 Theano 中的参数。
类似这样的:
import theano as theano
import theano.tensor as T
x1 = T.ivector('x1')
x2 = T.ivector('x2')
shape_sub = T.sub(T.shape(x1),T.shape(x2))
zeros = T.zeros(shape_sub)
f = theano.function([x1, x2], zeros)
但我得到一个值错误
ValueError: length not known: Elemwise{sub,no_inplace} [id A] ''
|Shape [id B] ''
| |x1 [id C]
|Shape [id D] ''
|x2 [id E]
这可能是因为 T.zeros() 的参数必须是包含形状的元组或列表,而不是包含减去形状的 ivector tensorType,这是 shape_sub 的输出。但是我应该如何实现这段代码呢?我不能在这里使用T.zeros_like(),因为它将整个张量作为输入,而不是它的形状。
我能想到的解决这个问题的唯一方法是对 shape_sub 的值使用共享变量,对其进行评估,然后将其提供给 T.zeros() 函数,但这似乎不是很有效。
【问题讨论】:
标签: python deep-learning theano recurrent-neural-network