【问题标题】:Tensorflow session returns as 'closed'Tensorflow 会话返回“关闭”
【发布时间】:2016-06-02 00:06:38
【问题描述】:

我已经成功地将CIFAR-10 ConvNet tutorial code 移植到我自己的图像中,并且能够对我的数据进行训练并生成 Tensorboard 输出等。

我的下一步是根据我构建的模型对新数据进行评估。我现在尝试使用 cifar10_eval.py 作为起点,但遇到了一些困难。

我应该指出,原始教程代码运行完全没有问题,包括 cifar10_eval.py。但是,当将此特定代码移动到我的应用程序时,我收到以下错误消息(最后一行)。

RuntimeError: Attempted to use a closed Session.

我发现这个错误是由 TF 的 session.py 抛出的

# Check session.
if self._closed:
  raise RuntimeError('Attempted to use a closed Session.')

我检查了所有文件应该驻留和创建的目录,一切看起来都完全正常(它们完美地反映了通过运行原始教程代码创建的目录)。它们包括 train、eval 和 data 文件夹,分别包含检查点/事件文件、事件文件和数据二进制文件。

我想知道您是否可以帮助指出我可以如何调试它,因为我确信在转换代码时数据流中可能有一些东西被打断了。不幸的是,尽管深入挖掘并与原始文件进行比较,但我找不到源代码,因为它们本质上相似,只是文件名和目标目录的细微变化。

EDIT_01: 一步一步调试,原来cifar10_eval.py中似乎实际抛出错误的那一行是#106:

    def eval_once(args etc)
    ...    
      with tf.Session() as sess:
      ...   
        summary = tf.Summary()
        summary.ParseFromString(sess.run(summary_op))  # <========== line 106

summary_op 在同一脚本的def evaluate 中创建,并作为参数传递给def eval_once

summary_op = tf.merge_all_summaries()
...
while True:
  eval_once(saver, summary_writer, top_k_op, summary_op)

【问题讨论】:

    标签: python python-3.x tensorflow


    【解决方案1】:

    从会话上的documentation 开始,可以使用.close 命令或通过with 块中的上下文管理器使用它来关闭会话。我做了find tensorflow/models/image/cifar10 | xargs grep "sess",我没有看到任何sess.close,所以肯定是后者。

    IE,如果你这样做,你会得到这个错误

    with tf.Session() as sess:
       sess.run(..)
    
    sess.run(...)  # Attempted to use a closed Session.
    

    【讨论】:

    • 刚刚添加了一个编辑,似乎可以确定错误出现的位置——看来你正在处理sess 的问题,但我仍然不明白为什么错误不断出现跨度>
    • 你应该使用less.run(summary_op)而不是sess.run(summary_op)吗?
    【解决方案2】:

    这是一个简单的缩进错误。

            summary = tf.Summary()
            summary.ParseFromString(sess.run(summary_op))
            summary.value.add(tag='Precision @ 1', simple_value=precision)
            summary_writer.add_summary(summary, global_step)
    

    try: 块之外,当然,找不到会话。

    叹息。

    【讨论】:

      猜你喜欢
      • 2017-10-13
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多