Python 类型错误:输入';参考';属于';分配';Op需要l值输入
我是TensorFlow的初学者,所以我只是尝试运行斐波那契算法 到目前为止,我编写了以下代码:Python 类型错误:输入';参考';属于';分配';Op需要l值输入,python,tensorflow,Python,Tensorflow,我是TensorFlow的初学者,所以我只是尝试运行斐波那契算法 到目前为止,我编写了以下代码: a=tf.constant(1) b=tf.Variable(1) print(a) print(b) with tf.Session() as session: init_op = tf.initialize_all_variables() session.run(init_op) for i in range(0, 10): sum_value = tf
a=tf.constant(1)
b=tf.Variable(1)
print(a)
print(b)
with tf.Session() as session:
init_op = tf.initialize_all_variables()
session.run(init_op)
for i in range(0, 10):
sum_value = tf.add(a, b)
assign_op1=tf.assign(a, b)
assign_op2=tf.assign(b, sum_value)
session.run(assign_op1)
session.run(assign_op2)
print(sum_value)
为此,我收到以下错误消息:
Tensor("Const_11:0", shape=(), dtype=int32)
<tensorflow.python.ops.variables.Variable object at 0x7f0d446cfbd0>
TypeErrorTraceback (most recent call last)
<ipython-input-32-25b7f828d7c6> in <module>()
10 for i in range(0, 10):
11 sum_value = tf.add(a, b)
---> 12 assign_op1=tf.assign(a, b)
13 assign_op2=tf.assign(b, sum_value)
14 session.run(assign_op1)
/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_state_ops.pyc in assign(ref, value, validate_shape, use_locking, name)
38 return _op_def_lib.apply_op("Assign", ref=ref, value=value,
39 validate_shape=validate_shape,
---> 40 use_locking=use_locking, name=name)
41
42
/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.pyc in apply_op(self, op_type_name, name, **keywords)
515 raise TypeError(
516 "Input '%s' of '%s' Op requires l-value input" %
--> 517 (input_name, op_type_name))
518 input_types.extend(types)
519 else:
TypeError: Input 'ref' of 'Assign' Op requires l-value input
张量(Const_11:0,shape=(),dtype=int32)
TypeErrorTraceback(最近一次呼叫上次)
在()
对于范围(0,10)内的i,为10:
11求和值=tf.加(a,b)
--->12分配(a,b)
13赋值op2=tf.赋值(b,求和值)
14会话。运行(分配操作1)
/分配中的usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_state_ops.pyc(参考,值,验证形状,使用锁定,名称)
38返回定义库应用(“赋值”,ref=ref,value=value,
39验证形状=验证形状,
--->40使用锁定=使用锁定,名称=名称)
41
42
/apply_op中的usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.pyc(self,op_type_name,name,**关键字)
515上升类型错误(
516“输入'%s'或'%s'操作需要l值输入”%
-->517(输入名称、操作类型名称))
518输入类型。扩展(类型)
519其他:
类型错误:“分配”操作的输入“参考”需要l值输入
代码有什么问题?在
tf.assign(a,b)
行中,您正在指示Tensorflow将b
的值分配给变量a
。但是,您在第一行中将a
声明为tf.constant
,并且不能为常量指定新值。正如Tensorflow所写,'Assign'Op
的第一个参数需要l值输入,或者换句话说,可以修改。常数不是l值输入,而是r值输入
如果您将第一行替换为a=tf.Variable(1)
,那么您的程序将成功执行