在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与变量的更新值相对应的a ,以便更轻松地链接分配。)
但是,
x.assign(1)现在在TF2中会急切地分配值:
x.assign(1)print(x.numpy())# ==> 1



