要在Keras中保存模型,输出文件之间有什么区别:
model.save()
model.save_weights()
ModelCheckpoint()
model.save()
中保存的文件大于model.save_weights()
中的模型,但明显大于JSON或Yaml模型体系结构文件。为什么是这样?
重申这一点:为什么size(model.save())+ size(某事物)= size(model.save_weights())+ size(model.to_json()),那是什么“某事”?
仅仅model.save_weights()
和model.to_json()
会更有效率,加载这些只是model.save()
和load_model()
吗?
有什么区别?
答案 0 :(得分:12)
save()
将权重和模型结构保存到单个HDF5
文件中。我相信它还包括优化器状态之类的东西。然后,您可以将该HDF5文件与load()
一起使用来重建整个模型,包括权重。
save_weights()
仅将权重保存到HDF5,而不是其他任何内容。您需要额外的代码才能从JSON
文件重建模型。
答案 1 :(得分:2)
只需添加ModelCheckPoint的输出(如果与其他人相关)即可:在模型训练期间用作回调,它可以保存整个模型,也可以仅保存权重,具体取决于save_weights_only
参数设置的状态至。 TRUE和仅保留权重,类似于调用model.save_weights()
。 FALSE(默认),并且保存整个模型,就像调用model.save()
一样。
答案 2 :(得分:1)