Keras 在某一时刻停止学习

每个班级大约有300张真实图像。具有 3 个类的分类模型。我使用 2000 个生成的样本和 10 个时期制作了一个模型。该模型还可以,但有很多错误的负面预测。我想改进模型并将生成的样本数量(真实图像数量未更改)增加到 20000。在第 6 个时期,准确度开始下降,最终达到 0.2


339/666 [==============>...............] - ETA: 52s - loss: 0.2762 - acc: 0.9012

340/666 [==============>...............] - ETA: 52s - loss: 0.2757 - acc: 0.9014

341/666 [==============>...............] - ETA: 52s - loss: 0.2754 - acc: 0.9015

342/666 [==============>...............] - ETA: 52s - loss: nan - acc: 0.9014   

343/666 [==============>...............] - ETA: 52s - loss: nan - acc: 0.8995

344/666 [==============>...............] - ETA: 52s - loss: nan - acc: 0.8976

345/666 [==============>...............] - ETA: 51s - loss: nan - acc: 0.8955

是不是过拟合了?我可以在不重新开始学习的情况下以某种方式实时阻止它吗?例如,是否有可能在每个 epoch 之后保存模型,并在这种情况下采用最佳模型。或者至少,Keras 可以打破教学吗?


慕码人2483693
浏览 204回答 2
2回答

慕桂英4014372

您的模型在这里肯定不会过度拟合。在特定次数的迭代后,您的模型将停止学习(准确度曲线变得更平坦)。为了克服这一点,您可以执行以下操作添加更多数据调整超参数该keras库通过回调 API 提供检查点功能。该ModelCheckpoint回调类允许你定义在哪里检查点的模型权重,该文件应该如何命名以及在什么情况下,使模型的一个检查站。使用它,您可以从迭代次数中选择最佳模型。from keras.callbacks import ModelCheckpoint"""    Your Code"""checkpoint = ModelCheckpoint(filepath, monitor='val_acc', verbose=1, save_best_only=True, mode='max')

子衿沉夜

我也遇到过类似的问题,你的损失突然变得nan有点可疑。由于您的目标函数未更新,即不是数字,它可能会停止学习。我会建议:查看模型损失函数审查特征化过程确保输入不会导致nan发生最后一点可能最相关,因为非常大的数字可能会导致损失计算出现问题或nan潜入您的特征向量。使用 acallback来查看诸如ModelCheckpoint之类的过程可以帮助调试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python