【问题标题】:Keras, best way to save state when optimizingKeras,优化时保存状态的最佳方式
【发布时间】:2016-05-10 03:40:11
【问题描述】:

我只是想知道在优化模型时保存模型状态的最佳方法是什么。我想这样做,这样我就可以运行它一段时间,保存它,然后过一段时间再回来。我知道有一个函数可以保存权重,另一个函数可以将模型保存为 JSON。在学习过程中,我需要保存模型的权重和参数。这包括动量和学习率等参数。有没有办法将模型和权重保存在同一个文件中。我读到使用泡菜不被认为是好的做法。梯度体面的动量是否会包含在模型 JSON 或权重中?

【问题讨论】:

    标签: python keras


    【解决方案1】:
    from keras.models import load_model
    
    model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
    del model  # deletes the existing model
    
    # returns a compiled model
    # identical to the previous one
    model = load_model('my_model.h5')
    

    您可以使用 model.save(filepath) 将 Keras 模型保存到单个 HDF5 文件将包含:

    • 模型的架构,允许重新创建模型
    • 模型的权重
    • 训练配置(损失、优化器)
    • 优化器的状态,允许在您停止的地方恢复训练。

    然后您可以使用 keras.models.load_model(filepath) 重新实例化您的模型。 load_model 还将负责使用保存的训练配置编译模型(除非模型从未被编译过)。

    Keras 常见问题解答:How can I save a Keras model?

    【讨论】:

      【解决方案2】:

      您可以创建一个包含权重和架构的 tar 存档,以及一个包含 model.optimizer.get_state() 返回的优化器状态的 pickle 文件。

      【讨论】:

      • AttributeError: 'Adam' object has no attribute 'get_state'
      • @MatthewKleinsmith:自从我写这篇文章后,API 可能已经改变了。
      • 是的,它发生了。我的评论纯粹是信息性的。
      • @MatthewKleinsmith 我的也是 :)
      • @nbro 随意
      猜你喜欢
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多