保存keras模型以便将来恢复培训的最佳方法是什么?

时间:2018-03-17 13:09:43

标签: tensorflow machine-learning deep-learning keras

我经常搜索这个。在keras文档中,它说model.save()保存所有相关信息,即模型架构,权重,优化器状态,​​......

stackoverflow上的其他一些帖子,提到保存权重并在将来加载它们以恢复训练,但答案说这是错误的,因为它没有保存优化器状态。 我使用回调来保存最佳模型基础验证准确性,它只保存权重。

如果重量不足以恢复训练,为什么回叫只能保存重量?仅用于评估测试集?

如何妥善保存最佳型号呢?为什么不回调使用model.save()来存储所有信息?我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

根据Keras ModelCheckPointCallback文档,它会根据save_weights_only标记保存整个模型或仅保存权重,默认情况下为False

https://keras.io/callbacks/#modelcheckpoint

答案 1 :(得分:1)

肯定会model.save(),因为您已经提到了所有原因。在ModelCheckPoint回调中,save_weights_only=false可以做到。如果您想节省空间或避免混乱,请设置save_best_only=True。这等效于model.save()

  

如果权重不足以恢复训练,为什么回叫仅节省权重?只是为了评估测试集?

是的。