保存keras模型以节省空间的最佳方法

时间:2018-03-11 11:27:38

标签: python tensorflow keras h5py

我已经在博客Building powerful image classification using model using very little data中提到的vgg16模型顶部转移学习的帮助下训练了一个keras模型。

当我在keras中使用model.save()方法保存模型时,输出文件大小( .h5 )格式大约为200MB。

我需要在github中推送此代码,但我们无法上传大小超过100MB的文件。

那么,有什么方法可以将模型保存在较小尺寸的文件中。

注意 ::我只需要模型用于预测目的

2 个答案:

答案 0 :(得分:1)

docs有您的解决方案。 save是最佳的,但可以轻松保存并加载整个状态以进行连续工作。如果我理解正确,你需要的少得多:

  

仅保存/加载模型的架构

json_string = model.to_json()
yaml_string = model.to_yaml()
  

仅保存/加载模型的权重

model.save_weights('my_model_weights.h5')

我猜两者都比整个工作区域更精简。您可以稍后使用它们重新创建模型,如文档(load_weightsload_from_json等)中所述。

答案 1 :(得分:0)

我不知道如何使用明显更少的空间来保存这样的模型。

但是,如果您的问题不是文件大小本身,而是上传文件大小限制,您可以尝试将文件拆分为几个小于该文件的块限制和上传那些,例如使用7-Zip。有关如何拆分文件的教程,请参阅this链接。