我在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'拟合例程的参数,但听起来会恢复到先前的时代。
答案 0 :(得分:0)
您可以尝试在适合呼叫中设置initial_epoch = epoch
吗?
我认为它会将信息附加到您的历史回调,因为它每次都是一个新的纪元。在循环的每个步骤中,时期的数量也将增加。
我希望这会有所帮助。
答案 1 :(得分:0)
您可能会发现image preprocessing in Keras上的文档有助于理解数据生成器的使用。我相信,使用fit_generator()
函数代替fit()
可以解决您的两个问题。