python - 不要使用 tf.reset_default_graph() 清除嵌套图

标签 python tensorflow

我有一堆函数,它们创建了计算图的一部分。在一些这样的功能中,我做

    with tf.name_scope("my_scope_name"):
        self._eye_n_components = tf.eye(se...

在我调用的最顶层函数的开头

tf.reset_default_graph()

然后调用那些部分函数,​​它们也可以相互调用。

不幸的是,我得到一个错误

Error: Do not use tf.reset_default_graph() to clear nested graphs. If you need a cleared graph, exit the nesting and create a new graph.

几个问题。

1)什么是嵌套,如何“退出嵌套”?

2) 如何创建新图?

3)如何捕捉,我进入嵌套的位置?

4) 如何清除整个图,以便 tensorflow 认为我正在尝试清除嵌套的图?

最佳答案

在以下情况之一中调用 tf.reset_default_graph() 时会显示此错误消息:

  • with graph.as_default(): block 中。
  • with tf.Session(): block 中。
  • 在创建 tf.InteractiveSession 和调用 sess.close() 之间。

这些场景中的每一个都涉及注册一个默认的(并且可能是“嵌套的”)tf.Graph 对象,当您退出该 block (或关闭 tf.InteractiveSession)。在这些情况下重置默认图会使系统处于不一致状态,因此您应确保在调用 tf.reset_default_graph()< 之前退出 block (或关闭 tf.InteractiveSession)/.

关于python - 不要使用 tf.reset_default_graph() 清除嵌套图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893824/

相关文章:

Python在正则表达式匹配中查找多个正则表达式匹配

python - tensorflow 训练感知器中的 nan 成本

tensorflow - 并集的交集用作度量或损失

tensorflow - 图像的深度学习异常检测

python - 如何在 Mac 或 Linux 上安装 tensorflow 2.0?

python - 如何对 x-y 坐标列表进行排序

Python正则表达式或split/strip从文本行括号之间获取int

python - re.sub() - 在不使用捕获组的情况下替换为匹配中的文本?

python - 从Python中的字典中删除值

tensorflow - 使用 TensorBoard 可视化纯图形