【发布时间】:2021-04-06 08:41:00
【问题描述】:
我想在每次验证循环结束时保存一个检查点。我将val_check_interval 设置为0.2,因此我在每个时期都有5 个验证循环,但检查点回调仅在时期结束时保存模型。在每个验证循环之后,我找不到一种简单(或困难)的方法来保存模型。这似乎有点奇怪,因为除了保存检查点之外,我看不到进行验证循环的理由。
最简单的方法是什么?
谢谢,
吉拉德
【问题讨论】:
我想在每次验证循环结束时保存一个检查点。我将val_check_interval 设置为0.2,因此我在每个时期都有5 个验证循环,但检查点回调仅在时期结束时保存模型。在每个验证循环之后,我找不到一种简单(或困难)的方法来保存模型。这似乎有点奇怪,因为除了保存检查点之外,我看不到进行验证循环的理由。
最简单的方法是什么?
谢谢,
吉拉德
【问题讨论】:
你检查过pytorch_lightning.callbacks.model_checkpoint.ModelCheckpoint吗?
不确定它是否存在于您的版本中,但是将 every_n_val_epochs 设置为 1 应该可以。如果是这样,它应该在每个验证循环之后保存您的模型检查点。
【讨论】:
来自lightning docs:save_on_train_epoch_end (Optional[bool]) – 是否在训练周期结束时运行检查点。如果为 False,则检查在验证结束时运行。
在 ModelCheckpoint 中使用 save_on_train_epoch_end = False 标志在训练器中进行回调应该可以解决这个问题。
【讨论】: