Checkpoint是用于描述在每次训练后保存模型参数(权重)的惯例或术语。这就像在游戏中保存关卡时你可以随时通过加载保存文件回复游戏。你可以加载保存的模型权重重新开启训练甚至可以之后进行一个推理。
复杂模型的训练阶段通常很长(数小时到数天到数周)。在nushpc系统上,用于深度学习的GPU队列的默认时间限制为24小时,作业执行的最大时间限制为48小时。针对复杂模型和大型数据集的深度学习训练作业需要的训练时间可能比队列默认的限定时间要长很多。
因此,为了不丢失训练进度,建议在每个epoch或每个epoch中当它在当前这个point中是这个时间下的最好权重时执行模型参数(权重)的checkpoint。
在非易失性内存中保存最新或最佳权重是一种良好的做法,因为它允许您在给定的epoch保存进度副本,以防您想在任何给定的epoch调整超参数。它还允许您从任何有checkpoint的epoch恢复训练。如果作业或进程提前终止,可以通过从上次保存的checkpoint或任何其他checkpoint加载权重来恢复训练。
你可以根绝正在执行的实验训练类型采用不同的checkpoint策略:
1、Short Training Regime(几分钟到几小时)
典型的做法是只在训练结束的时候或者每一个epoch的结束保存checkpoint。
2、Normal Training Regime(几小时到一天)
在这种情况下常见的是保存多个checkpoint在每一个n_epoch下保存多个checkpoint,并且根据我们关心的几个指标去追踪最好的那个checkpoint。通常,checkpoint的最大数量是固定的,这样就不会占用太多空间(例如,将最大检查点数量限制为10个,其中新检查点将替换最早的检查点)。
3、Long Training Regime(几天到几周)
在这种训练策略下,我们想要采用和Normal Training Regime相似的策略,即在每一个n_epochs下都保存多个checkpoint,并且根据我们直线关心的几个指标去追踪最好的那个checkpoint。在这种情况下由于训练时间可能很长,通常会减少保存checkpoint的频率但是保留更多的checkpoint。
4、策略选择
这些不同策略之间的折衷是要保留的检查点文件的频率和数量。让我们看看当我们通过这两个参数时发生了什么:
1、https://nusit.nus.edu.sg/services/hpc-newsletter/deep-learning-best-practices-checkpointing-deep-learning-model-training/ 为什么需要checkpoint
2、理解CheckPoint及其在Tensorflow & Keras & Pytorch中的使用 checkpoint策略
1 QQ美女主動要求裸聊,男人上鉤是生理決定,上鉤概率高達99%男人上鉤裸聊詐騙,有以下幾個原因:1.1 男人好色,是本性,美好...
华附国际部(HFI) 华附国际部全称为华南师范大学附属中学国际部,成立于2004年,系由广东省教育厅批准成立的华师附中国际基 ...
小学生必背古诗75首(附译文及注释) 因篇幅过长,部分展示,原文见: 小学生必背古诗75首(附译文及注释) 1、江南 【汉乐府 ...