pytorch使用torch.load加载模型出现错误Unexpected key(s) in state_dict

在使用PyTorch的torch.load加载模型时遇到错误,模型状态字典中的key前缀有'module.',导致加载不匹配。尝试调整代码顺序并检查是否在训练时使用了nn.DataParallel,确保测试时也使用相同设置,问题得到解决。
摘要由CSDN通过智能技术生成

记录错误积累经验
在这里插入图片描述
猛然来这么一大串错误信息让我有点震惊。
pytorch模型文件以key,value形式保存,现在模型所有key都对不上,有点奇怪。细看发现加载的模型相较于当前模型其key值前面多了“module."。
初步诊断

class Tester(object):

    TestParams = TestParams

    def __init__(self, model, test_params):
        assert isinstance(test_params, TestParams)
        self.params = test_params

        # load model
        self.model = model

        ckpt = self.params.ckpt
        if ckpt is not None:
            self.load_ckpt(ckpt)
            logger.info('Load ckpt from {}'.format(ckpt))

        # set CUDA_VISIBLE_DEVICES, 1 GPU is enough
        if len(self.params.gpus) > 0:
            gpu_test = str(self.params.gpus[0
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值