Tensorflow 2.0 - AttributeError:模块'tensorflow'没有属性'Session'

新手上路,请多包涵

当我在 Tensorflow 2.0 环境中执行命令 sess = tf.Session() 时,我收到如下错误消息:

 Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'tensorflow' has no attribute 'Session'

系统信息:

  • 操作系统平台和发行版:Windows 10
  • Python版本:3.7.1
  • Tensorflow 版本:2.0.0-alpha0(用 pip 安装)

重现步骤:

安装:

  1. 点安装——升级点
  2. pip install tensorflow==2.0.0-alpha0
  3. 点安装 keras
  4. pip install numpy==1.16.2

执行:

  1. 执行命令:import tensorflow as tf
  2. 执行命令:sess = tf.Session()

原文由 Atul Kamble 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

根据 TF 1:1 Symbols Map ,在 TF 2.0 中你应该使用 tf.compat.v1.Session() 而不是 tf.Session()

https://docs.google.com/spreadsheets/d/1FLFJLzg7WNP6JHODX5q8BDgptKafq_slHpnHVbJIteQ/edit#gid=0

要在 TF 2.0 中获得类似 TF 1.x 的行为,可以运行

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

但随后无法从 TF 2.0 中的许多改进中受益。有关更多详细信息,请参阅迁移指南 https://www.tensorflow.org/guide/migrate

原文由 MPękalski 发布,翻译遵循 CC BY-SA 4.0 许可协议

TF2 默认运行 Eager Execution,因此不再需要会话。如果要运行静态图,比较合适的方法是在TF2中使用 tf.function() 。虽然在 TF2 中仍然可以通过 tf.compat.v1.Session() 访问会话,但我不鼓励使用它。通过比较 hello worlds 中的差异来证明这种差异可能会有所帮助:

TF1.x 你好世界:

 import tensorflow as tf
msg = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(msg))

TF2.x 你好世界:

 import tensorflow as tf
msg = tf.constant('Hello, TensorFlow!')
tf.print(msg)

有关详细信息,请参阅 有效的 TensorFlow 2

原文由 Wes 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题