在 Tensorflow 2.0 中,一些变量可以描述为 'UnreadVariable'
例如:
b = tf.Variable([4,5], name="test")
print(b.assign([7, 9]))
# Will print
# <tf.Variable 'UnreadVariable' shape=(2,) dtype=int32, numpy=array([7, 9], dtype=int32)>
这是什么意思?
最佳答案
UnreadVariable
基本上Represents a future for a read of a variable. Pretends to be the tensor if anyone looks.
这是因为在分配操作期间启用了急切执行。
TensorFlow 的 Eager Execution 是一种命令式编程环境,可以立即评估操作,无需构建图:操作返回具体值,而不是构建计算图以供稍后运行。
在 Tensorflow 2.0 中,默认情况下启用了急切执行。因此,您正在执行的操作无需构建图形即可完成。
无论如何,如果您愿意,可以将类型更改为 AssignVariableOp
通过禁用急切执行如下。
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
b = tf.Variable([4,5], name="test")
print(b.assign([7, 9]))
Returns:
<tf.Variable 'AssignVariableOp' shape=(2,) dtype=int32>
关于tensorflow - Tensorflow 2.0 中的 `' UnreadVariable'` 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60722174/