为什么会出现AttributeError:TensorFlow 1.15中的模块'tensorflow.contrib.eager'没有属性'Variable'?

时间:2019-11-11 08:57:29

标签: python tensorflow eager-execution

大约一个月前,我已经在Google Colab中成功运行了神经样式转换笔记本教程。但是,本周我无法成功运行完全相同的笔记本,并显示以下错误消息: AttributeError:模块'tensorflow.contrib.eager'没有属性'Variable'。

我检查了Google Colab中的Notebook是否正在使用TensorFlow 1.15,并且在检查API文档时,存在Variable方法:https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/eager/Variable

此错误消息的原因是什么?

1 个答案:

答案 0 :(得分:0)

在Tensorflow 1.15中,tensorflow.contrib.eager.Variable不存在。尽管已在文档中显示,但已将其标记为已弃用,并且似乎根本不在代码中。

请使用常规的旧tf.Variable。以下代码在1.15中可以正常工作:

import tensorflow as tf

tf.compat.v1.enable_eager_execution()

x = tf.Variable(1, dtype=tf.float32)
with tf.GradientTape() as tape:
    f = x * x
print(tape.gradient(f, x))

>> tf.Tensor(2.0, shape=(), dtype=float32)