Keras 损失在纪元结束时发生变化
Keras loss changes on epoch end
我正在使用图像数据生成器 class 在 Keras(tensorflow2 后端)中训练模型以进行批量训练。
我注意到,当第二个 epoch 开始时,损失值确实小于第一个 epoch 结束时的值。
我的意思是:
Keras loss
请注意,第二个纪元中的起始值大约是您在屏幕截图中看到的值。
有人知道为什么会这样吗?
keras是否在处理完所有批次后再次更新权重?
预计损失会小一些,但你惊讶到什么程度也是可以理解的。
第二个 epoch 的损失如此之低的原因是因为在第一个 epoch 期间,您的模型犯了错误并产生了巨大的损失 - 它变得越来越好。
Keras 显示一个时期内所有实例的平均损失。
所以如果模型在 epoch 的前 90% 的训练集上出错,然后在最后 10% 的数据上完美,损失仍然会很大,因为它是 平均损失。
然后,在第 2 个时期开始时,模型已经更擅长预测,因此 mean 损失较低。
我正在使用图像数据生成器 class 在 Keras(tensorflow2 后端)中训练模型以进行批量训练。 我注意到,当第二个 epoch 开始时,损失值确实小于第一个 epoch 结束时的值。
我的意思是:
Keras loss
请注意,第二个纪元中的起始值大约是您在屏幕截图中看到的值。
有人知道为什么会这样吗?
keras是否在处理完所有批次后再次更新权重?
预计损失会小一些,但你惊讶到什么程度也是可以理解的。
第二个 epoch 的损失如此之低的原因是因为在第一个 epoch 期间,您的模型犯了错误并产生了巨大的损失 - 它变得越来越好。 Keras 显示一个时期内所有实例的平均损失。
所以如果模型在 epoch 的前 90% 的训练集上出错,然后在最后 10% 的数据上完美,损失仍然会很大,因为它是 平均损失。
然后,在第 2 个时期开始时,模型已经更擅长预测,因此 mean 损失较低。