Keras - 管理历史

Posted

技术标签:

【中文标题】Keras - 管理历史【英文标题】:Keras - manage history 【发布时间】: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 = ???

【问题讨论】:

【参考方案1】:

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

请参阅this issue 了解上下文。

【讨论】:

【参考方案2】:

让我们说这一行

print(history.history.keys())

产生以下输出:

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

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

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

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

【讨论】:

以上是关于Keras - 管理历史的主要内容,如果未能解决你的问题,请参考以下文章

中止训练时如何获取 Keras 历史对象?

sklearn 管道 + keras 顺序模型 - 如何获取历史记录?

python Keras历史

history=model.fit_generator() 为啥 keras 历史是空的?

HTML5自学笔记[ 8 ]历史管理

html5 历史管理