在TF1中,语句x.assign(1)
实际上并未将值1
分配给x
,而是创建了tf.Operation
,您必须显式运行以更新变量。*调用Operation.run()
或Session.run()
可用于运行操作:
assign_op = x.assign(1)
sess.run(assign_op) # or `assign_op.op.run()`
print(x.eval())
# ==> 1
(*实际上,它返回一个tf.Tensor
,与变量的更新值相对应,以便更轻松地链接分配。)
但是,在TF2中, x.assign(1)
现在会急切地分配值:
x.assign(1)
print(x.numpy())
# ==> 1
0
我正在尝试为python中的tensorflow变量分配一个新值。
但是我得到的输出是
因此该值没有改变。我想念什么?