最少的示例代码:import theano as thimport theano.tensor as Timport numpy as npx = T.dscalars('x')z = th.shared(np.zeros(2))updates = [z, z+x]f1 = th.function(inputs=[x], updates=updates) f1(3)print z.get_value()错误信息:Traceback (most recent call last): File "/home/temp2/theano.test.py", line 9, in <module> f1 = th.function(inputs=[x], updates=updates) File "/usr/local/lib/python2.7/dist-packages/theano/compile/function.py", line 205, in function profile=profile) File "/usr/local/lib/python2.7/dist-packages/theano/compile/pfunc.py", line 460, in pfunc no_default_updates=no_default_updates) File "/usr/local/lib/python2.7/dist-packages/theano/compile/pfunc.py", line 191, in rebuild_collect_shared for (store_into, update_val) in iter_over_pairs(updates): File "/usr/local/lib/python2.7/dist-packages/theano/tensor/basic.py", line 1610, in __iter__ for i in xrange(get_vector_length(self)): File "/usr/local/lib/python2.7/dist-packages/theano/tensor/basic.py", line 5210, in get_vector_length raise ValueError("length not known")ValueError: length not known此错误的原因是什么?
1 回答

烙印99
TA贡献1829条经验 获得超13个赞
Updates必须包含a list of pairs。请参阅有关使用共享变量的官方教程。
正确的代码:
import theano as th
import theano.tensor as T
import numpy as np
x = T.dscalars('x')
z = th.shared(np.zeros(2))
updates = [(z, z+x)]
f1 = th.function(inputs=[x], updates=updates)
f1(3)
print z.get_value()
添加回答
举报
0/150
提交
取消