为什么加载的Pytorch模型的损失会大大增加?

问题描述

我正在尝试使用参考文献to来训练arcface

据我所知,arcface需要在CASIA-webface上进行200多个大批量的培训。

在100个时期内,我停止了一段时间的训练,因为需要将GPU用于其他任务。并保存模型resnet)和边距的检查点。在停止之前,其损失记录为0.3〜1.0之间的值,并且训练精度达到80〜95%。

当我通过使用load_sate加载检查点文件来恢复arcface训练时,处理第一批文件似乎很正常。但是突然损失急剧增加,准确度变得很低。

其损失突然增加。这怎么发生的?我别无选择,所以无论如何都继续训练,但我认为损失不算减少,即使它是经过训练的模型,超过100个时期...

当我搜索类似问题时,他们告诉问题是未保存优化器(因为参考github页未保存优化器,所以我也保存了。

My losses after loading

解决方法

如果您看到此line! 您正在按伽马衰减每个参数组的学习率。 当您达到第100个时代时,这改变了您的学习速度。而且您在保存模型时还没有保存优化器状态。
这使您的代码从恢复训练后的起始lr即0.1开始。 这又使您的损失再次增加。

投票,如果您觉得有用