Python TensorFlow-如何对每个示例的所有测试集进行一次且仅一次评估

Python TensorFlow-如何对每个示例的所有测试集进行一次且仅一次评估,python,machine-learning,tensorflow,Python,Machine Learning,Tensorflow,我正在运行TensorFlow的示例。但在评估方面存在一个问题 我有一个测试集,我想对其中的每一个例子进行一次评估。但是代码()现在只从队列()中获取,而队列()不能保证这一点。我还做了一个修改,输入是一个“.tfrecords”文件。有什么建议吗 提前感谢。创建文件名队列的函数可以接受参数num\u epochs。您可以指定只希望它运行1个历元 # Create a queue that produces the filenames to read. filename_queue = tf.t

我正在运行TensorFlow的示例。但在评估方面存在一个问题

我有一个测试集,我想对其中的每一个例子进行一次评估。但是代码()现在只从队列()中获取,而队列()不能保证这一点。我还做了一个修改,输入是一个“.tfrecords”文件。有什么建议吗

提前感谢。

创建文件名队列的函数可以接受参数
num\u epochs
。您可以指定只希望它运行1个历元

# Create a queue that produces the filenames to read.
filename_queue = tf.train.string_input_producer(filenames, num_epochs=1)

我已经想出了一个解决办法,但并不完美。线索是从要加载的变量中排除它,然后自己初始化
limit\u epochs
。具体步骤如下:

添加代码
del variables\u to\u restore['input\u producer/limit\u epochs/epochs']
variables\u to\u restore=variable\u averages.variables\u to\u restore()之后。它将停止向模型加载
输入\u producer/限制\u epoch

接下来,在会话中添加代码
sess.run(tf.initialize_variables([v代表tf.all_variables(),如果v.name.startswith(“input_producer”)))
,以激活变量

最后,执行操作
filename\u queue=tf.train.string\u input\u producer(filenames,num\u epochs=1)

并尝试在关闭线程之前保存文件


缺点是,如果你想让每一个线程都适合任意的测试示例,你必须让它只读一个示例。

这背后有一个问题:培训必须包含多个时代的示例;加载模型时,TensorFlow将出现以下错误<代码>在检查点文件中找不到张量名称“input\u producer/limit\u epochs/epochs”
问题似乎与此类似,但我不知道最终如何解决。任何帮助都将不胜感激。