【问题标题】:I am trying to resume training from a certain checkpoint我正在尝试从某个检查点恢复训练
【发布时间】:2022-10-23 04:06:22
【问题描述】:

从保存的最后一个检查点恢复训练时,我遇到了问题。除了更改数据集并将时期数增加到 100 之外,我完全遵循此代码:Machine Translation French-English notebook

为了保持训练,我要添加什么,因为它不会在一天内完成,并且每次从 epoch 1 重新开始时。

我发现了一个类似的问题,但答案并没有解决问题:Resume training from a certain checkpoint

【问题讨论】:

  • 您最好就您面临的问题提供更具体的细节,例如,Checkpoint 有效吗?是否抛出任何“异常”?
  • 我解决了使用检查点管理器的问题,您可以在tensorflow.org/guide/checkpoint 中找到有关它的更多详细信息
  • 欢迎来到 StackOverflow!这是一个非常糟糕的提问方式,请查看how 在 StackOverflow 中写一个问题。简而言之,这里缺乏研究,而且怀疑是非常开放的。另外,该问题缺少可重现的代码示例。想想在 StackOverflow 上写一个问题,就像在工作期间向一位高级同事寻求指导。

标签: tensorflow2.0


【解决方案1】:

我知道这已经晚了,但我想分享一个可能的解决方案的代码。

根据 Tensorflow documentation,保存检查点并从中恢复模型非常容易。可以使用每个 epoch 的 Tensorflow 回调(或每 x epoch 使用 save_freq 附加参数)来完成保存:

model.compile(..., metrics=['accuracy'])
EPOCHS = 10
checkpoint_filepath = '/path/to/checkpoint'
model_checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(
    filepath=checkpoint_filepath,
    save_weights_only=True,
    monitor='val_accuracy',
    mode='max',
    save_best_only=True  # if this is not the best epoch so far it is not saved.
)
model.fit(epochs=EPOCHS, callbacks=[model_checkpoint_callback])

然后,在开始新火车或进行预测之前,可以像这样加载保存的检查点的权重:

model.load_weights(checkpoint_filepath)

而已。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2018-08-05
    • 2017-02-01
    相关资源
    最近更新 更多