我正在使用imagedatagenerator类在Keras(tensorflow2后端)中训练模型,以进行批量训练。我注意到,当第二个纪元开始时,损失值实际上小于第一个纪元结束时的值。
这是我的意思:
请注意,第二个时期的起始值与您在屏幕快照中看到的值差不多。
有人知道为什么会这样吗?
在处理所有批次时,keras会再次更新重量吗?
预计损失会较小,但是您可以感到意外的程度是可以理解的。
第二个时期的损失如此之低的原因是,在第一个时期,您的模型会犯错并产生巨大的损失-损失越来越大。Keras显示一个时期中所有实例的平均损失。
因此,如果模型在某个时期的前90%训练集上犯了错误,然后对于最后10%的数据是完美的,则损失仍然会非常大,因为它是mean]损失。] > 然后,在第二个时期开始时,模型已经可以更好地进行预测,因此mean损失更低。