要在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()更有效吗?
有什么不同吗?
发布于 2017-03-06 09:54:07
save()将权重和模型结构保存到一个HDF5文件中。我相信它还包括类似于优化器状态的内容。然后,您可以使用该HDF5文件与load()重建整个模型,包括权重。
save_weights()只将权重保存到HDF5而不是其他任何东西。您需要额外的代码从JSON文件中重构模型。
发布于 2019-11-19 08:55:45
model.save_weights():只会保存权重,因此如果需要,可以将它们应用于不同的体系结构中。mode.save():将保存模型的体系结构+权重+训练配置+优化器的状态发布于 2020-01-30 15:30:16
仅仅为了添加ModelCheckPoint的输出,如果它与其他任何人相关:在模型培训期间用作回调,它可以保存整个模型,也可以只保存权重,这取决于save_weights_only参数设置的状态。只有权值被保存,类似于调用model.save_weights()。FALSE (默认)和保存整个模型,如调用model.save()。
https://stackoverflow.com/questions/42621864
复制相似问题