在Keras中保存模型和重量(单个文件中)

Ada*_*ith 2 python saving-data keras

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

问题是model.save()商店(引用Keras FAQ):

  • 模型的体系结构,允许重新创建模型
  • 模型的权重
  • 训练配置(损失,优化器)
  • 优化器的状态,允许您从中断的位置恢复训练.

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

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

谢谢.

Mat*_*gro 7

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

model.save("something.hdf5", include_optimizer=False)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢 - 工作得很漂亮.除了......当我加载它时,有没有办法让它的警告静音:"UserWarning:在保存文件中找不到训练配置:模型是*未编译.手动编译." (2认同)
  • 加载时,可以使用“compile=False”关键字来避免警告:“keras.models.load_model(name,compile=False)” (2认同)