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

Python 保存keras模型以节省空间的最佳方法,python,tensorflow,keras,h5py,Python,Tensorflow,Keras,H5py,我在博客中提到的vgg16模型的基础上,借助迁移学习,在keras中培训了一个模型 当我使用keras中的model.save()方法保存模型时,输出文件大小(以.h5格式)约为200MB 我需要在github中推送此代码,但我们无法上载大小超过100MB的文件 那么,是否有任何方法可以将模型保存在较小的文件中 注意::我需要的模型仅用于预测目的请提供您的解决方案保存是最佳选择,但可以轻松保存和加载整个状态,以便连续工作。如果我理解正确,您需要的就更少了: 仅保存/加载模型的体系结构 仅保存/加

我在博客中提到的vgg16模型的基础上,借助迁移学习,在keras中培训了一个模型

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

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

那么,是否有任何方法可以将模型保存在较小的文件中

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

请提供您的解决方案<代码>保存是最佳选择,但可以轻松保存和加载整个状态,以便连续工作。如果我理解正确,您需要的就更少了:

仅保存/加载模型的体系结构

仅保存/加载模型的权重


我想两者都比整个工作区瘦得多。您可以稍后使用这些来重新创建模型,如文档中所述(
load\u weights
load\u from\u json
,等等)。

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


但是,如果您的问题不是文件大小本身,而是上载文件大小限制,您可以尝试将文件拆分为几个小于该限制的块,然后上载这些块,例如使用。有关如何分割文件的教程,请参见链接。

我无法重新创建模型,稍后,只剩下预测工作了。因此model.to_json比model更好。save@AkashChandra我不确定您的意思,但是
model=model\u from\u json(json\u string)
将重新创建模型,以便您可以使用它。都在文件里了,我的错,对不起。我将重新表述我的问题:model.to_json或model.save应该使用哪个函数,即在空间方面哪个格式更好.h5或.json。
json
,这是您的问题,也是我的回答,无需再次检查。使用上述方法比使用
save
节省的空间要少得多,因此需要的空间要少得多。但是,如果要使用经过训练的模型进行预测,还需要保存权重。根据我的经验,权重是模型中数据量更大的部分。可能使用h5py和适当的压缩过滤器,或者这会有所帮助?谢谢,我的问题是在GitHub中上载文件大小限制,因为GitHub不允许上载大于100MB的文件。因此,我通过以本文提到的格式保存模型来减小大小。您不想将模型放在git上。如果您想对其进行版本设置,请尝试dvc之类的工具
json_string = model.to_json()
yaml_string = model.to_yaml()
model.save_weights('my_model_weights.h5')