【问题标题】:Keras Batch Training Callback concatenationKeras 批量训练回调连接
【发布时间】:2017-11-10 19:21:00
【问题描述】:

我在 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 完成一个 epoch 时,它都会打印 epoch 的编号。由于我是分批训练的,有没有一种简单的方法来更新时代?我已经看到了拟合例程的“initial_epoch”参数,但听起来这会恢复到之前的纪元。

【问题讨论】:

    标签: python keras


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可以尝试在 fit 调用中设置initial_epoch = epoch 吗?

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

      我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2018-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多