首页 文章

Keras批量训练回调连接

提问于
浏览
2

我在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

    你能尝试在适合的呼叫中设置 initial_epoch = epoch 吗?

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

    我希望这有帮助 .

  • 0

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

相关问题