0
我无法弄清楚为什么下面的代码不工作:串接在theano扫描
我希望它仿佛
f = th.function(
inputs = [a],
outputs = tt.concatenate([tt.concatenate([a,a]),tt.concatenate([a,a])])
)
我无法弄清楚为什么下面的代码不工作:串接在theano扫描
我希望它仿佛
f = th.function(
inputs = [a],
outputs = tt.concatenate([tt.concatenate([a,a]),tt.concatenate([a,a])])
)
返回同样在theano.scan
文档字符串:
...初始状态应该具有相同的形状作为输出...
如果您的扫描涉及向量上的循环表达式,则该向量的形状不得更改。
lambda a: T.sqr(a) # OK
lambda a: T.concat([a,a]) # ERROR
其原因,内部扫描使用矩阵到矢量存储系统中所有的时间步骤。如果形状改变,则矩阵会变得粗糙。虽然理论上不是不可能实现,但它引入了更多复杂性和潜在问题。
所以,是的,scan
是有限的。