Tensorflow:如何获得整个测试数据集的准确度/预测?不是每批次

时间:2017-10-31 09:31:35

标签: tensorflow deep-learning tensorflow-datasets

我正在尝试使用Tensorboard来可视化我的测试程序。我的目的是,当每个时代完成后,我想使用整个测试数据集测试网络的准确性,并将此准确性结果存储到摘要文件中,以便我可以在Tensorboard中将其可视化。

Tensorflow有summary_op来执行此操作,但是(所有现有示例)似乎仅在运行代码sess.run(summary_op)时适用于一个批处理。我需要计算整个测试数据集的准确性。我怎么能这样做?

有没有任何例子可以做到这一点?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式进行计算:

  1. 在测试数据集太大的情况下进行批量处理;例如放入n_test_batches并从buffer_accuracies = 0.0

  2. 之类的缓冲区开始
  3. 将批精度添加到缓冲区变量buffer_accuracies

  4. 最后,当您处理整个测试数据集时,将buffer_accuracies除以test_batches的总数

  5. 现在您将test_accuracy = buffer_accuracies/n_test_batches作为常规python变量

  6. 否,我们无法为该python变量创建摘要,如下所示

    test_accuracy_summary = tf.Summary()
    test_accuracy_summary.add(tag="test_accuracy", simple_value = test_accuracy)
    
  7. 最后将其写到您的tensorflow FileWriter中,例如

    test_writer.add_summary(test_accuracy_summary,iteration_step)