我需要在theano中创建一个固定长度(长度等于传递的其他张量向量的大小)零向量。
def some_fun(self, y)
x_h = T.fvector('x_h')
ret = T.alloc(0, x_h)
vec_h = theano.function(inputs=[x_h], outputs=ret)
vec=vec_h(y.shape[0])
vec[T.arange(y.shape[0]),y]=1
当我运行这个时,我收到错误" Alloc的Shape参数必须是整数,但参数0不适用于apply节点:x_h"
这可能是一个很大的错误,因为我是theano的新手。
由于
答案 0 :(得分:1)
你试过theano.tensor.zeros_like吗?看起来这应该是你想要做的事情的捷径。
然后,当你得到
“TypeError:'TensorVariable'对象不支持项目分配”
您可以改为使用theano.tensor.set_subtensor代替vec[T.arange(y.shape[0]),y]=1
行。