【问题标题】:Keras - manage historyKeras - 管理历史
【发布时间】:2019-04-04 13:38:01
【问题描述】:

我正在训练 Keras 模型,使用 model.save() 保存它们,然后加载它们并恢复训练。

我想在每次训练后绘制整个训练历史,但model.fit_generator() 只返回最后一次训练的历史。

我可以保存初始会话的历史并自己更新,但我想知道 Keras 中是否有管理训练历史的标准方法。

history1 = model.fit_generator(my_gen)
plot_history(history1)
model.save('my_model.h5')

# Some days afterwards...

model = load_model('my_model.h5')
history2 = model.fit_generator(my_gen)

# here I would like to reconstruct the full_training history
# including the info from history1 and history2
full_history = ???

【问题讨论】:

    标签: python tensorflow keras resuming-training


    【解决方案1】:

    事实证明,在 Keras AFAIK 中还没有标准的方法。

    请参阅this issue 了解上下文。

    【讨论】:

      【解决方案2】:

      让我们说这一行

      print(history.history.keys())
      

      产生以下输出:

      ['acc', 'loss', 'val_acc', 'val_loss']
      

      基于加载的模型应该与保存的模型具有相同性能的假设,您可以尝试连接历史记录。例如,在已加载模型的已加载精度历史记录上连接新的精度历史记录。

      它应该从绘图空间中加载模型结束的同一点开始(也许您必须为绘图添加先前训练模型的 (+) 时期,以便新的准确度值不会从时期开始0,但加载了模型的最后一个纪元)。

      希望你能理解我的想法,希望对你有所帮助:)

      【讨论】:

        猜你喜欢
        • 2019-08-25
        • 2012-11-14
        • 1970-01-01
        • 2011-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-28
        • 1970-01-01
        相关资源
        最近更新 更多