问题描述
据我所知,arcface需要在CASIA-webface上进行200多个大批量的培训。
在100个时期内,我停止了一段时间的训练,因为需要将GPU用于其他任务。并保存模型(resnet)和边距的检查点。在停止之前,其损失记录为0.3〜1.0之间的值,并且训练精度达到80〜95%。
当我通过使用load_sate加载检查点文件来恢复arcface训练时,处理第一批文件似乎很正常。但是突然损失急剧增加,准确度变得很低。
其损失突然增加。这怎么发生的?我别无选择,所以无论如何都继续训练,但我认为损失不算减少,即使它是经过训练的模型,超过100个时期...
当我搜索类似问题时,他们告诉问题是未保存优化器(因为参考github页未保存优化器,所以我也保存了。
解决方法
如果您看到此line!
您正在按伽马衰减每个参数组的学习率。
当您达到第100个时代时,这改变了您的学习速度。而且您在保存模型时还没有保存优化器状态。
这使您的代码从恢复训练后的起始lr即0.1开始。
这又使您的损失再次增加。
投票,如果您觉得有用