训练神经网络时,Tensorflow 完成后会自动恢复到最佳 epoch 吗?

Posted

技术标签:

【中文标题】训练神经网络时,Tensorflow 完成后会自动恢复到最佳 epoch 吗?【英文标题】:When training neural networks, does Tensorflow automatically revert back to the best epoch after finishing? 【发布时间】:2019-12-02 03:06:55 【问题描述】:

如果不是,为什么不呢?有时我会有一个 95% 的 epoch,然后以一个 10% 左右准确率的 epoch 结束。我只是永远无法判断它是否会回到那个最好的时代。

【问题讨论】:

您不一定需要使用ModelCheckpoint 回调将模型文件保存在磁盘上。相反,您可以使用EarlyStopping 回调来获得最佳模型。见this answer。 【参考方案1】:

如果你使用 Keras,那么在 ModelCheckpoint 回调中,设置 save_best_only=True。如果启用此选项,则它会保存模型,该模型会根据您设置的指标(您为 monitor 属性提到的损失或准确性)显示最佳结果。

在此处了解更多信息 - https://keras.io/callbacks/#modelcheckpoint

【讨论】:

谢谢。出于某种原因,我尝试了 earlystopping 回调。这看起来像一个更好的匹配 如果您觉得此答案有用,请将其标记为已接受的答案,这将对未来的用户有所帮助。谢谢:-)【参考方案2】:

keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, save_weights_only=False, mode='auto', period=1)

【讨论】:

以上是关于训练神经网络时,Tensorflow 完成后会自动恢复到最佳 epoch 吗?的主要内容,如果未能解决你的问题,请参考以下文章

TensorKart:基于TensorFlow自动驾驶的《马里奥赛车》

手把手学会人工智能:TensorFlow实现马里奥赛车自动驾驶,含源码

使用 Tensorflow 训练神经网络时避免过度拟合

Tensorflow 在每个 epoch 结束时卡住了几秒钟

为tensorflow.js模型实现同步fit()或训练函数

训练某些网络时,GPU 上的 Keras(Tensorflow 后端)比 CPU 上慢