训练神经网络时,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 在每个 epoch 结束时卡住了几秒钟