我在 tensorflow 2.2 中运行以下代码
a = tf.constant([2.0, 3.0, 4.0])
b = tf.Variable([4.0, 3.0, 5.0])
c = a * b
的b
值为:
<tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([4., 3., 5.], dtype=float32)>
的c
值为:
<tf.Tensor: shape=(3,), dtype=float32, numpy=array([ 8., 9., 20.], dtype=float32)>
如果我现在更新变量 b
b.assign( [ 1.0, 1.0 , 1.0] )
# b is now <tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([1., 1., 1.], dtype=float32)>
但是当我打印的值时c
,我希望它应该已经改变,因为b
已经改变了,但c
没有改变
# c is still <tf.Tensor: shape=(3,), dtype=float32, numpy=array([ 8., 9., 20.], dtype=float32)>
我的测试在急切模式下运行。tf.executing_eagerly() = 现在为真
背后的原因是什么?