在 Keras 中保存最佳模型和权重(在单个文件中)

Saving just model & weights in Keras (in single file)

我有 Python 使用 Keras 生成深度卷积神经网络的代码。我正在尝试保存模型,但结果是巨大的(数百 MB)。我想把它缩减一点,使它更易于管理。

问题是 model.save() 存储(引用 Keras FAQ):

如果我不再做任何训练,我想我只需要前两个。

我可以使用 model.to_json() 制作架构的 JSON 字符串并将其保存,然后 model.save_weights() 制作包含权重的单独文件。这大约是完整 model.save() 结果的三分之一。但我想知道是否有某种方法可以将它们存储在一个独立的文件中? (除了输出两个文件,将它们压缩在一起,然后删除原件。)或者,也许有一种方法可以在训练完成后删除训练配置和优化器状态,​​这样 model.save() 几乎不会给我任何东西这么大?

谢谢。

Model 的 save 函数有一个参数,叫做 include_optimizer,将它设置为 false 将保存模型而不包括优化器状态,​​这应该会导致更小的HDF5 文件:

model.save("something.hdf5", include_optimizer=False)