Keras-管理历史

时间:2018-10-31 11:39:28

标签: python tensorflow keras resuming-training

我正在训练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 = ???

2 个答案:

答案 0 :(得分:1)

事实证明,在Keras中,还没有标准的方法可以做到这一点。

有关上下文,请参见this issue

答案 1 :(得分:0)

让我们说这行

print(history.history.keys())

产生以下输出:

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

基于已加载的模型应具有与保存的模型相同的性能的假设,您可以尝试类似串联历史记录的操作。例如,将新的精度历史连接到已加载模型的已加载精度历史上。

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

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