【问题标题】:Tensorflow: How to get the accuracy/prediction for whole test dataset? not for each batchTensorflow:如何获得整个测试数据集的准确性/预测?不是每批
【发布时间】:2018-04-12 10:06:48
【问题描述】:
我正在尝试使用 Tensorboard 来可视化我的测试过程。我的目的是,当每个 epoch 完成时,我想使用整个测试数据集来测试网络的准确性,并将此准确性结果存储到摘要文件中,以便我可以在 Tensorboard 中对其进行可视化。
Tensorflow 有 summary_op 来做这件事,但是(所有现有的例子)在运行代码 sess.run(summary_op) 时似乎只适用于一批。我需要计算整个测试数据集的准确性。我该怎么做?
有什么例子可以做到吗?任何帮助将不胜感激。
【问题讨论】:
标签:
tensorflow
deep-learning
tensorflow-datasets
【解决方案1】:
你可以这样计算:
批处理测试数据集以防它太大;例如进入n_test_batches 并从buffer_accuracies = 0.0 之类的缓冲区开始
将批处理精度添加到缓冲区变量buffer_accuracies
最后,当您处理整个测试数据集时,将buffer_accuracies 除以test_batches 的总数
现在您可以将 test_accuracy = buffer_accuracies/n_test_batches 作为常规 python 变量
-
不,我们可以为该 python 变量创建摘要,如下所示
test_accuracy_summary = tf.Summary()
test_accuracy_summary.add(tag="test_accuracy", simple_value = test_accuracy)
-
最后将其写入您的 tensorflow FileWriter 例如
test_writer.add_summary(test_accuracy_summary,iteration_step)