为了账号安全,请及时绑定邮箱和手机立即绑定

Theano共享变量更新导致“ ValueError:长度未知”

Theano共享变量更新导致“ ValueError:长度未知”

宝慕林4294392 2021-03-02 17:14:13
最少的示例代码: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()


查看完整回答
反对 回复 2021-03-31
  • 1 回答
  • 0 关注
  • 220 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号