【发布时间】: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