我有一个装有Tensorflow 2.0.0-beta1的conda环境。但是,每当我导入tensorflow并尝试启用急切执行时,都会出现错误:
AttributeError: module 'tensorflow' has no attribute 'enable_eager_execution'
我为此运行的唯一代码是:
import tensorflow as tf
print(tf.__version__)
tf.enable_eager_execution()
这是tensorflow 2.0 beta模块错误还是我的安装问题?
答案 0 :(得分:1)
在ternsorflow 2.0中,enable_eager_execution
方法已移至tf.compat.v1
模块。以下适用于tensorflow-2.0.0-beta1
tf.compat.v1.enable_eager_execution()
在tensorflow 2.0中,default启用了急切执行。您无需在程序中启用它。
例如
import tensorflow as tf
t = tf.constant([5.0])
现在您可以直接查看张量的值,而无需使用会话对象。
print(t)
# tf.Tensor([5.], shape=(1,), dtype=float32)
您还可以将张量值更改为numpy数组
numpy_array = t.numpy()
print(numpy_array)
# [5.]
您还可以在tensorflow-2中禁用急切执行(在tensorflow-2.0.0-beta1上进行了测试。这可能不适用于功能部件版本。)
tf.compat.v1.disable_eager_execution()
t2 = tf.constant([5.0])
print(t2)
# Tensor("Const:0", shape=(1,), dtype=float32)
禁用急切执行后在张量上调用numpy()方法会引发错误
AttributeError: 'Tensor' object has no attribute 'numpy'
在禁用急切执行时应考虑的一个问题是,一旦禁用急切执行,就无法在同一程序中启用它,因为tf.enable_eager_execution
应该在程序启动时调用,并在禁用急切执行后调用此方法引发错误:
ValueError: tf.enable_eager_execution must be called at program startup.