只保存模型& Keras的重量(单个文件中)

时间:2018-04-12 01:42:17

标签: python keras saving-data

我有使用Keras生成深度卷积神经网络的Python代码。我正在尝试保存模型,但结果是巨大的(100s的MB)。我想稍微削减一下以使某些事情变得更易于管理。

问题在于model.save()商店(引用Keras常见问题解答):

  • 模型的架构,允许重新创建模型
  • 模型的权重
  • 培训配置(损失,优化程序)
  • 优化器的状态,允许您从中断的位置恢复训练。

如果我不再接受任何培训,我想我只需要前两个。

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

感谢。

1 个答案:

答案 0 :(得分:5)

模型的save函数具有完全相同的参数,称为include_optimizer,将其设置为false将保存模型而不包括优化器状态,​​这将导致更小的HDF5文件:

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