- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Python 中的 Tensorflow 2.0 中训练神经网络时,我注意到训练精度和损失在不同时期之间发生了巨大变化。我知道打印的指标是整个 epoch 的平均值,但在每个 epoch 之后准确率似乎显着下降,尽管平均值总是在增加。
损失也表现出这种行为,每个时期显着下降,但平均值增加。这是我的意思的图像(来自 Tensorboard):
我在我自己实现的所有模型上都注意到了这种行为,所以这可能是一个错误,但我想就这是否是正常行为以及如果是这样意味着什么?
另外,我使用了一个相当大的数据集(大约 300 万个示例)。批次大小为 32,精度/损失图中的每个点代表 50 个批次(图中 2k = 100k 批次)。批次的学习率图是 1:1。
最佳答案
这种现象似乎来自这样一个事实,即模型在准确性和损失方面具有很高的批次间差异。如果我用每一步的实际指标而不是整个时期的平均值来绘制模型图,就可以说明这一点:
在这里您可以看到模型可以有很大差异。 (此图仅适用于一个时期,但事实仍然存在)。
由于平均指标是每个 epoch 报告的,因此在下一个 epoch 开始时,平均指标很可能低于前一个平均值,导致运行平均值急剧下降,如下图红色所示:
如果您将红色图中的不连续性想象为纪元转换,您就会明白为什么会观察到问题中的现象。
TL;DR 该模型在每个批次的输出中具有非常高的差异。
关于python - 是什么导致训练准确度和 epoch 之间损失的大幅跃升?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58381152/
部署到 Azure 后,我不断收到服务器错误 - 应用程序无法运行。所以我在实例中做了一个远程桌面,发现 web.config 被彻底修改了......这是怎么回事?我以为 web.config 是按
我是一名优秀的程序员,十分优秀!