Tensorboard在准确度得分上有所提高

时间:2018-05-04 07:45:18

标签: python tensorflow neural-network tensorboard training-data

我一直使用Tensorflow训练我的Inception ResNet V2,并通过TensorBoard记录准确性/丢失等。

现在,当我今天恢复训练时,几乎立即(在几个全局步骤中)我的准确率从86%上升到97%,当我恢复我之前停止的检查点时。

在观察损失情节时,它似乎仍在逐渐减少,但准确性有这个巨大的影响。对此有明显/合乎逻辑的解释吗? 我在第21纪元(停在20)恢复训练,每个时期有1339个全局步骤。

Accuracy of model, now plateauing around 98%

Loss function of model

3 个答案:

答案 0 :(得分:3)

这是因为您正在使用流式传输精度,从一开始就累积所有统计数据 - 以及培训时间。

在您停止训练之前,流式传输精度正在恢复从开始以来的平均准确度。

当您恢复训练时,流媒体精度操作已经重置,现在输出自您恢复训练后的平均准确度。它更高,因为当你的模型很弱时,它不会对较早的较低精度值进行平均。

我实际上是posted something yesterday关于如何不时重置流量指标以避免这种持续积累。

答案 1 :(得分:2)

我认为贡献准确性是问题所在。

https://github.com/tensorflow/tensorflow/issues/9498

它不会重置,因此您的准确度基本上是该点所有精度的平均值。重新加载图表时,会重置此运行平均值。好消息是,你的网络训练很棒。

答案 2 :(得分:0)

@ P-Gn在一个可接受的答案中指出,这是因为tf.metrics都是设计上的流式传输指标。

您可以重置流指标,或者,如果仅关心单批准确性,则可以使用简单的功能:

def non_streaming_accuracy(predictions, labels):
    return tf.reduce_mean(tf.cast(tf.equal(predictions, labels), tf.float32))