lyf_ 2019-04-12 13:39 采纳率: 50%
浏览 1371
已采纳

pytorch加载model发现key的值有差异,能不能修改

用pytorch加载别人训练的模型时候,
RuntimeError: Error(s) in loading state_dict for PSMNet:
Missing key(s) in state_dict: "feature_extraction.firstconv.0.0.weight", "feature_extraction.firstconv.0.1.weight",。。。。。

Unexpected key(s) in state_dict: "module.feature_extraction.firstconv.0.0.weight", "module.feature_extraction.firstconv.0.1.weight",
图片说明

发现每个在模型里的参数都多个了module.
保存的格式是

 torch.save({
            'epoch': epoch,
            'state_dict': model.state_dict(),
            'train_loss': total_train_loss / len(TrainImgLoader),
        }, savefilename)

读取的代码是

 state_dict = torch.load(basic.loadmodel)
 model.load_state_dict(state_dict['state_dict'])

请问能不能做到将模型的key值从
module.feature_extraction.firstconv.0.1.weight

修改到
feature_extraction.firstconv.0.1.weight

  • 写回答

1条回答 默认 最新

  • lyf_ 2019-04-12 14:56
    关注

    解决了 , torchload返回的是字典,搞一个新字典,然后把key用‘.’分段后重新组装一个字典就可以读了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题