为了账号安全,请及时绑定邮箱和手机立即绑定

Keras 在某一时刻停止学习

Keras 在某一时刻停止学习

慕码人2483693 2021-12-17 17:01:12
每个班级大约有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 回答

?
慕桂英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')


查看完整回答
反对 回复 2021-12-17
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

我也遇到过类似的问题,你的损失突然变得nan有点可疑。

由于您的目标函数未更新,即不是数字,它可能会停止学习。

我会建议:

  • 查看模型损失函数

  • 审查特征化过程

  • 确保输入不会导致nan发生

最后一点可能最相关,因为非常大的数字可能会导致损失计算出现问题或nan潜入您的特征向量。

使用 acallback来查看诸如ModelCheckpoint之类的过程可以帮助调试。


查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信