2017-03-06 655 views
7

要保存keras模型,什么都在输出文件之间的差异:keras model.save()和model.save_weights()之间有什么区别?

  1. model.save(),
  2. model.save_weights()?
  3. ModelCheckpoint()回调

从model.save保存的文件()比从model.save_weights()中的模型比JSON或YAML模型架构文件较大,但显著大。为什么是这样?重申一下,为什么size(model.save())+ size(something)= size(model.save_weights())+ size(model.to_json()),那是什么?

只需要model.save_weights()和model.to_json()以及从这些加载而不是仅仅执行model.save()和load_model()会更高效吗?有什么区别?

回答

5

save()将权重和模型结构保存到单个HDF5文件中。我相信它也包含诸如优化器状态之类的东西。然后,您可以使用该HDF5文件与load()重建整个模型,包括权重。

save_weights()只保存权重HDF5,没有别的。您需要额外的代码才能从JSON文件重建模型。

相关问题