模型参数加载后继续训练或测试,准确率下降很多或者一直不变

本文总结了PyTorch中模型加载、训练时遇到的问题,包括模型参数导入错误、训练状态不变、标签一致性、优化器状态恢复、多GPU训练以及模型评估模式。强调了检查参数名、加载优化器状态、核对标签、继续训练时保持状态一致以及正确加载模型到GPU等关键点。

1、请首先检查自己是不是没有将原来的模型参数成功导入

  • 你以为你导入成功了,但是注意,你load_state_dict时,如果用了strict=False是不会报错的,所以如果你没有仔细核对参数名是否正确(主要针对有使用预训练模型参数的情况,这时参数名称容易与你的模型有出入)
  • 仔细检查自己的模型是不是按checkpoint['net']格式存储的,如果是,你直接导入checkpoint肯定不行啊

2、如果训练时一直不变,注意应该加载模型参数前就定义优化器

参考【python模型保存之后,再恢复训练如何做】_权侑莉老婆的博客-CSDN博客

3、加载后准确率很低,尤其是测试验证集准确率时准确率都很低,多半是因为标签问题。

先要检查自己的标签是否是固定的,可能会出现两次训练标签不一致的情况。

4、想要继续训练时,完全与之前保持相同的走势,需要加载优化器参数、步长scheduler、epoch,可参考PyTorch实现断点继续训练 - 知乎

5、构造optim对象时可以先做好模型的cuda()操作(这个我认为不一定,但是可以参考)

Pytorch 深度学习 模型训练 断点继续训练时损失函数恶化或与断点差异较大_周博士的博客-CSDN博客

6、测试图片时记得把模型调成eval()模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值