Tensorflow:运行时测试指标和数据队列

时间:2016-12-28 10:30:42

标签: python tensorflow

我想在网络训练时计算并显示测试集的准确性。

在使用Feed的MNIST tutorial中,可以看到通过提供测试数据而不是训练数据可以轻松完成。解决一个简单问题的简单方法。

但是,在使用队列进行批处理时,我无法找到这么简单的示例。 AFAICS,文档提出了两个解决方案:

  1. 使用已保存状态进行离线测试。我不想离线。
  2. 建立第二个“测试”网络,与正在训练的网络共享权重。这听起来并不简单,我还没有看到这样的例子。
  3. 在运行时是否有第三种简单的方法来计算测试指标?或者在第二个测试网络的某个地方有一个例子,它具有共享权重,通过超级简单的实现证明我错了吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您希望在使用队列输入而不是feed_dict进行培训时验证您的模型吗? 看到我这样做的program。 这是一个简短的解释:

首先,您需要将数据转换为火车和验证文件,例如' train.tfreords'和' valid.tfreocrds'

你的训练计划中的第二个开始两个解析这两个文件的队列, 并使用共享变量来获取train和valid

的两个logits

在我的程序中,这是由

完成的
with tf.variable_scope("inference") as scope:
        logits = mnist.inference(images)
        scope.reuse_variables()
        validation_logits = mnist.inference(validation_images)

然后使用logits获取火车损失并将其最小化并使用validation_logits来获得有效的准确度