tensorflow - 训练期间验证准确性和验证损失的差异
问题描述
我正在用 14k+ 图像训练我的 CNN 模型 30 个时期,在第 28 个时期,我发现异常的验证准确度和损失,如下所示:
- 67s - loss: 0.0767 - acc: 0.9750 - val_loss: 0.6755 - val_acc: 0.8412
Epoch 27/30
- 67s - loss: 0.1039 - acc: 0.9630 - val_loss: 0.3671 - val_acc: 0.9018
Epoch 28/30
- 67s - loss: 0.0639 - acc: 0.9775 - val_loss: 1.1921e-07 - val_acc: 0.1190
Epoch 29/30
- 66s - loss: 0.0767 - acc: 0.9744 - val_loss: 0.8091 - val_acc: 0.8306
Epoch 30/30
- 66s - loss: 0.0534 - acc: 0.9815 - val_loss: 0.2091 - val_acc: 0.9433
Using TensorFlow backend.
谁能解释为什么会这样?
解决方案
对我来说,这看起来像是过拟合。您的训练损失接近于零,训练准确度接近 100,而验证损失和准确度却在跳跃。
我建议你调整你的正则化(dropout、l2/l1、数据增强......)或模型容量。
通常,使用经过调整的正则化的高容量模型是一种很好的做法。
推荐阅读
- npm - 如何更新 NPM 包中加载的依赖项
- field - 如何使用 pdfbox 按 Tab 键顺序获取表单字段?
- mysql - 尝试在 MySQL 中创建 CTE 时出现语法错误
- flutter - 如何在颤动中控制交错网格列表中卡片小部件的大小?
- moodle - Moodle 群组 - SQLQuery 显示插入用户的所有全局组
- google-sheets - 如何根据不同单元格中的 IF 条件输出数字?
- python - 迭代每个 Pandas df 行并确定行值是否在列表中,如果是,则将该值拉入 df
- bash - 尝试使用 aws cli 获取命令状态时出错
- python - numpy datetime64 比较比 pandas Timestamp 慢
- flutter - Flutter 流计时器