gpt4 book ai didi

python - 是什么导致训练准确度和 epoch 之间损失的大幅跃升?

转载 作者:行者123 更新时间:2023-12-01 13:13:22 27 4
gpt4 key购买 nike

在 Python 中的 Tensorflow 2.0 中训练神经网络时,我注意到训练精度和损失在不同时期之间发生了巨大变化。我知道打印的指标是整个 epoch 的平均值,但在每个 epoch 之后准确率似乎显着下降,尽管平均值总是在增加。

损失也表现出这种行为,每个时期显着下降,但平均值增加。这是我的意思的图像(来自 Tensorboard):

strange training behavior

我在我自己实现的所有模型上都注意到了这种行为,所以这可能是一个错误,但我想就这是否是正常行为以及如果是这样意味着什么?

另外,我使用了一个相当大的数据集(大约 300 万个示例)。批次大小为 32,精度/损失图中的每个点代表 50 个批次(图中 2k = 100k 批次)。批次的学习率图是 1:1。

最佳答案

这种现象似乎来自这样一个事实,即模型在准确性和损失方面具有很高的批次间差异。如果我用每一步的实际指标而不是整个时期的平均值来绘制模型图,就可以说明这一点:

enter image description here

在这里您可以看到模型可以有很大差异。 (此图仅适用于一个时期,但事实仍然存在)。

由于平均指标是每个 epoch 报告的,因此在下一个 epoch 开始时,平均指标很可能低于前一个平均值,导致运行平均值急剧下降,如下图红色所示:

enter image description here

如果您将红色图中的不连续性想象为纪元转换,您就会明白为什么会观察到问题中的现象。

TL;DR 该模型在每个批次的输出中具有非常高的差异。

关于python - 是什么导致训练准确度和 epoch 之间损失的大幅跃升?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58381152/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com