每个班级大约有300张真实图像。具有 3 个类的分类模型。我使用 2000 个生成的样本和 10 个时期制作了一个模型。该模型还可以,但有很多错误的负面预测。我想改进模型并将生成的样本数量(真实图像数量未更改)增加到 20000。在第 6 个时期,准确度开始下降,最终达到 0.2339/666 [==============>...............] - ETA: 52s - loss: 0.2762 - acc: 0.9012340/666 [==============>...............] - ETA: 52s - loss: 0.2757 - acc: 0.9014341/666 [==============>...............] - ETA: 52s - loss: 0.2754 - acc: 0.9015342/666 [==============>...............] - ETA: 52s - loss: nan - acc: 0.9014 343/666 [==============>...............] - ETA: 52s - loss: nan - acc: 0.8995344/666 [==============>...............] - ETA: 52s - loss: nan - acc: 0.8976345/666 [==============>...............] - ETA: 51s - loss: nan - acc: 0.8955是不是过拟合了?我可以在不重新开始学习的情况下以某种方式实时阻止它吗?例如,是否有可能在每个 epoch 之后保存模型,并在这种情况下采用最佳模型。或者至少,Keras 可以打破教学吗?
2 回答
![?](http://img1.sycdn.imooc.com/545868190001d52602200220-100-100.jpg)
慕桂英4014372
TA贡献1871条经验 获得超13个赞
您的模型在这里肯定不会过度拟合。在特定次数的迭代后,您的模型将停止学习(准确度曲线变得更平坦)。
为了克服这一点,您可以执行以下操作
添加更多数据
调整超参数
该keras
库通过回调 API 提供检查点功能。该ModelCheckpoint
回调类允许你定义在哪里检查点的模型权重,该文件应该如何命名以及在什么情况下,使模型的一个检查站。
使用它,您可以从迭代次数中选择最佳模型。
from keras.callbacks import ModelCheckpoint
"""
Your Code
"""
checkpoint = ModelCheckpoint(filepath, monitor='val_acc', verbose=1, save_best_only=True, mode='max')
![?](http://img1.sycdn.imooc.com/533e4c420001b2e502000200-100-100.jpg)
子衿沉夜
TA贡献1828条经验 获得超3个赞
我也遇到过类似的问题,你的损失突然变得nan
有点可疑。
由于您的目标函数未更新,即不是数字,它可能会停止学习。
我会建议:
查看模型损失函数
审查特征化过程
确保输入不会导致
nan
发生
最后一点可能最相关,因为非常大的数字可能会导致损失计算出现问题或nan
潜入您的特征向量。
使用 acallback
来查看诸如ModelCheckpoint
之类的过程可以帮助调试。
添加回答
举报
0/150
提交
取消