machine-learning - Keras 损失在 epoch 结束时的变化
问题描述
我正在使用 imagedatagenerator 类在 Keras(tensorflow2 后端)中训练一个模型来批量训练。我注意到,当第二个时期开始时,损失值实际上小于第一个时期结束时的值。
这就是我的意思:
请注意,第二个时期的起始值大约是您在屏幕截图中看到的值。
有谁知道为什么会这样?
处理完所有批次后,keras 是否会再次更新权重?
解决方案
预计损失会更小,但您对它的惊讶程度是可以理解的。
第二个时期损失如此之低的原因是因为在第一个时期你的模型犯了错误并产生了巨大的损失——变得越来越好。Keras 显示一个时期内所有实例的平均损失。
因此,如果模型在 epoch 的前 90% 的训练集上犯了错误,然后在最后 10% 的数据上是完美的,那么损失仍然会很大,因为它是平均损失。
然后,在第二个 epoch 开始时,模型已经更好地预测,因此平均损失更低。
推荐阅读
- css - 在 mat 表中使用 NG-CLASS 引用“行”元素以进行 css decleration
- python - 如何在 csv 数据列上使用 Python set 方法?
- flutter - setState() 没有更新颤振中的值
- python - 循环行以在 Python 中的坐标对之间绘制线(matplotlib)
- sql - 从多个表中选择 SQL 语句
- algorithm - 我用什么门来复制 Shor 算法中的周期发现?
- php - db::select 语句返回 stdClass
- c++ - 有没有办法在不使用 L 或 u 字符的情况下编写函数参数(wchar_t 或 char16_t)?
- ios - Cordova 构建 ios
- api - 尝试使用 .json 但 Vue-CLI 找不到该文件