Tensorboard 在准确度得分上的提升

Tensorboard bump in accuracy score

我一直在使用 Tensorflow 训练我的 Inception ResNet V2,并通过 TensorBoard 记录 accuracy/loss 等。

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

看损失图时,它似乎还在逐渐减少,但准确性却有了巨大的提升。对此有 obvious/logical 解释吗? 我在第 21 个周期(在第 20 个周期停止)恢复训练,每个周期有 1339 个全局步骤。

我认为贡献的准确性是个问题。

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

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

那是因为您使用的是流准确度,它会累积自时间开始以来的所有统计信息——嗯,训练时间。

在您停止训练之前,流式准确度会返回自开始以来的平均准确度。

当您恢复训练时,流精度操作已重置,现在输出自您恢复训练以来的平均准确度。它要高得多,因为当您的模型较弱时,它不会对较早的较低准确度值进行平均。

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

正如@P-Gn 在接受的答案中指出的那样,那是因为 tf.metrics 都是设计的流媒体指标。

您可以重置流指标,或者,如果您只关心单个批次的准确性,则可以使用简单的函数:

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