名称 tf.Session 已经过时,请使用 tf.compat.v1.Session。

23

我在我的 tensorflow 代码中收到了以下弃用警告:

tf.Session 的名称已过时。请改用 tf.compat.v1.Session。

  • 为什么会出现这个警告
  • 在 tensorflow 2.0 中,使用 tf.session会发生什么
  • 是否可以使用 tf.compat.v1.Session
1个回答

20

为了使TensorFlow在2.0版本中更加"Pythonic",TF 2.0的设计中不再拥有tf.Session。

TensorFlow 1.X需要用户通过调用tf.* API来手动拼接抽象语法树(图形)。然后,它要求用户手动编译抽象语法树,通过将一组输出张量和输入张量传递给session.run()调用。

TensorFlow 2.0采用即时执行(像Python通常做的那样),在2.0中,图形和会话应该感觉像实现细节。

您可以使用:

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

然而,这并不让您充分利用TensorFlow 2.0中进行的许多改进。

更好的解决方案是:

  • 替换tf.Session.run调用:每个tf.Session.run调用都应该被替换为一个Python函数。
    • feed_dict和tf.placeholders变成函数参数。
    • fetches变成函数的返回值。

3
tf.disable_v2_behavior() 警告:来自 /usr/local/lib/python3.7/dist-packages/tensorflow_core/python/compat/v2_compat.py 的 disable_resource_variables(来自 tensorflow.python.ops.variable_scope)已被弃用,并将在将来的版本中删除。 更新说明: 长期不支持非资源变量。
- eapo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接