【问题标题】:Do Keras epoch-counting callbacks work across several fitting sessions?Keras 纪元计数回调是否适用于多个拟合会话?
【发布时间】:2021-06-21 17:43:43
【问题描述】:

一些 Keras 回调,例如 ModelCheckpointReduceLROnPlateau,依赖于计算满足某些条件的 epoch 数,直到采取某些操作。

出于某些目的,我需要在几个拟合会话中训练 Keras 模型,例如

for epoch in range(num_epochs):
   model.fit(data, epochs=1)

而不是

model.fit(data, epochs=num_epochs)

我想知道 Keras 回调是否有效,即使我在多个拟合会话中使用它们。

【问题讨论】:

    标签: python tensorflow keras neural-network


    【解决方案1】:

    每次调用model.fit(...) callbacks.History 都会重置。所以不,它不会那样工作。虽然您可以将自己记录为提到的@kacpo1 并保存每个,但您可能会从train_on_batch(...) 方法中受益。这将执行一次更新,您可以在方法调用中设置 reset_metrics=False 以保留您的指标。

    https://keras.io/api/models/model_training_apis/#trainonbatch-method

    【讨论】:

      【解决方案2】:
      I was wondering if Keras callbacks work even if I use them across several fitting sessions.
      

      答案是否定的。如果您以这种方式做事(每次循环拟合一个 epoch),您可以在不使用回调的情况下自行执行诸如保存权重和学习率衰减之类的事情。

      for epoch in range(num_epochs):
          model.fit(data, epochs=1)
          if epoch % 5 == 0:
              model.save_weights(...)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-13
        • 1970-01-01
        • 2016-11-07
        • 1970-01-01
        • 1970-01-01
        • 2021-01-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多