首页 > 解决方案 > 训练期间验证准确性和验证损失的差异

问题描述

我正在用 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.

谁能解释为什么会这样?

标签: tensorflowmachine-learningkerasdeep-learningcomputer-vision

解决方案


对我来说,这看起来像是过拟合。您的训练损失接近于零,训练准确度接近 100,而验证损失和准确度却在跳跃。

我建议你调整你的正则化(dropout、l2/l1、数据增强......)或模型容量。

通常,使用经过调整的正则化的高容量模型是一种很好的做法。


推荐阅读