TensorFlow会话图为空。在调用run()之前向图形添加操作

时间:2019-12-20 20:32:17

标签: tensorflow

尝试运行代码时出现以下错误:

  

错误:“会话”图为空。在调用run()之前将操作添加到图形。

代码

h = tf.constant('Hello, this is TensorFlow')
s = tf.compat.v1.Session()
print(s.run(h))

2 个答案:

答案 0 :(得分:0)

您可以通过三种方式解决此问题,

降级到TF 1.x

tf.Session()已经成为过去。因此,如果要使用会话,则应使用TF1.x。否则,您需要通过删除会话对象来更改代码以使用急切执行。

使用TF 2.x,但不使用tf.Session()

h = tf.constant('Hello, this is TensorFlow')
print(tf.print(h))

使用TF 2.x

您可以通过执行以下操作来使示例工作。因此,我们特别要说的是,此操作在默认TF图中进行,会话将随后从中识别出该操作。

s = tf.compat.v1.Session()
with tf.compat.v1.get_default_graph().as_default():
  h = tf.constant('Hello, this is TensorFlow')
  print(s.run(h))

答案 1 :(得分:-1)

因为可能有这个错误:

AttributeError:
Tensor.graph is meaningless when eager execution is enabled.

你需要在 TF2.x 中禁用 Eager :

 tf.compat.v1.disable_eager_execution()