我正在从TensorFlow运行cifar10示例。但是评估存在问题。
我有一个测试集,我想从它一次只评估一次的每个例子。但是代码(line 121)现在只从队列(line 126)中获取,这不能保证。我还做了一个修改,输入是一个' .tfrecords'文件。有什么建议吗?
提前谢谢。
答案 0 :(得分:1)
创建文件名tf.train.string_input_producer
队列的函数here可以接受参数num_epochs
。您可以指定您希望它仅运行1个纪元。
# Create a queue that produces the filenames to read.
filename_queue = tf.train.string_input_producer(filenames, num_epochs=1)
答案 1 :(得分:0)
我已经找到了解决方案,但相当不完美。线索是从变量中排除它以加载,然后由自己初始化limit_epochs
。以下是详细步骤:
添加代码
del variables_to_restore['input_producer/limit_epochs/epochs']
之后的variables_to_restore = variable_averages.variables_to_restore()
。它将停止将input_producer/limit_epochs
加载到模型中。
接下来,在会话中添加代码sess.run(tf.initialize_variables([v for v in tf.all_variables() if v.name.startswith("input_producer")]))
以激活变量。
最后,执行操作filename_queue = tf.train.string_input_producer(filenames, num_epochs=1)
。
在关闭线程之前尝试保存文件。
如果您希望它适合任意测试示例,您必须使每个线程只读一个示例。