Keras批量训练回调连接

时间:2017-06-08 22:25:36

标签: python keras

我在Keras有一个模型,由于数据集很大,我使用生成器批量加载它。因此,训练例程封装在for循环中:

from keras.callbacks import History 

history = History()

for epoch in xrange(100):
  x_train,y_train=load_data_generator()
  model.fit(x_train, y_train, nb_epoch=1, batch_size=1000, verbose=2, validation_data=(x_test, y_test), callbacks=[history])

我希望有整个训练循环的历史记录。但是,keras似乎在使用当前批次的每个循环期间覆盖历史记录。

问题1)如何轻松连接所有时代的历史?换句话说,在先前的历史中,它会在中断的地方继续进行恢复。

问题2)每次keras完成一个纪元时,它会打印一个纪元的编号。既然我分批进行培训,有没有简单的方法来更新时代?我已经看过一个' initial_epoch'拟合例程的参数,但听起来会恢复到先前的时代。

2 个答案:

答案 0 :(得分:0)

您可以尝试在适合呼叫中设置initial_epoch = epoch吗?

我认为它会将信息附加到您的历史回调,因为它每次都是一个新的纪元。在循环的每个步骤中,时期的数量也将增加。

我希望这会有所帮助。

答案 1 :(得分:0)

您可能会发现image preprocessing in Keras上的文档有助于理解数据生成器的使用。我相信,使用fit_generator()函数代替fit()可以解决您的两个问题。