最近,楼主在pytorch微调模型时遇到
size mismatch for fc.weight: copying a param with shape torch.Size([1000, 2048]) from checkpoint, the shape in current model is torch.Size([2, 2048]).
size mismatch for fc.bias: copying a param with shape torch.Size([1000]) from checkpoint, the shape in current model is torch.Size([2]).

这个是因为楼主下载的预训练模型中的全连接层是1000类别的,而楼主本人的类别只有2类,所以会报不匹配的错误

解决方案:

从报错信息可以看出,是fc层的权重参数不匹配,那我们只要不load 这一层的参数就可以了。

net = se_resnet50(num_classes=2)
pretrained_dict = torch.load("./senet/seresnet50-60a8950a85b2b.pkl")model_dict = net.state_dict()
# 重新制作预训练的权重,主要是减去参数不匹配的层,楼主这边层名为“fc”
pretrained_dict = {k: v for k, v in pretrained_dict.items() if (k in model_dict and 'fc' not in k)}
# 更新权重
model_dict.update(pretrained_dict)
net.load_state_dict(model_dict)

Pytorch遇到权重不匹配的问题相关推荐

  1. 学习笔记26-解决:载入预训练模型时Pytorch遇到权重不匹配的问题(附+修改后的预训练模型载入和冻结特征权重完整代码)

    在pytorch微调mobilenetV3模型时遇到的问题 1.KeyError: 'features.4.block.2.fc1.weight' 这个是因为模型结构修改了,没有正确修改预训练权重,导 ...

  2. Pytorch网络模型权重初始化、保存与加载模型、加载预训练模型、按需设置学习率

    前言 在我们对神经网络模型进行训练时,往往需要对模型进行初始化或者加载预训练模型.本文将对模型的权重初始化与加载预训练模型做一个学习记录,以便后续查询使用. 权重初始化 常见的初始化方法 PyTorc ...

  3. (五)将YOLOv5 PyTorch模型权重转换为TensorFlow Lite格式

    目录 介绍 建议使用Ultralytics进行重量转换的方法 在Google Colab上测试TFLite权重 TFLite解释器,可在边缘设备上实现良好性能 在本地测试YOLOv5模型权重 下一步 ...

  4. 无root权限在A4000服务器上配置cuda和pytorch和注意算力匹配

    无root权限在A4000服务器上配置cuda和pytorch 1.配置cuda和cudnn 在官网找到cuda需要安装的版本,这里安装的是cuda11.1(CUDA Toolkit 11.1.0 | ...

  5. pytorch 初始化权重

    一般的网络初始化方法: from torch.nn import functional as F, initdef init_params(self):for m in self.modules(): ...

  6. 用自己的数据集训练C3D和tensorboard的使用

    修改C3D 刚跑起来就激动地发文了,只能跑起来,识别准确率还没有研究. 基本上就是修改 mypath.py dataset.py train.py inference.py ucf_labels.tx ...

  7. SWA(随机权重平均) for Pytorch

    Stochastic Weight Averaging for Pytorch 随机权重平均 一.什么是Stochastic Weight Averaging(SWA) 二.SWA与SGD的对比 三. ...

  8. 【Datawhale组队学习Pytorch】Task 完结篇

    [项目简介] PyTorch是利用深度学习进行数据科学研究的重要工具,在灵活性.可读性和性能上都具备相当的优势,近年来已成为学术界实现深度学习算法最常用的框架.考虑到PyTorch的学习兼具理论储备和 ...

  9. pytorch遇见RuntimeError: CUDA out of memory的解决

    RuntimeError: CUDA out of memory 1.查看是否其他程序占用显存 遇到此类错误后,对于py格式的文件来说,程序会进行终止,也就是当前程序占用的显存将会被释放.此时可用 w ...

最新文章

  1. js通过月份判断前三个月_怀孕前三个月如何判断胎儿发育是否健康,看HCG翻倍情况,快收藏...
  2. 基于.NET的图表控件解决方案
  3. Java开发人员在编程中常见的雷!
  4. Courses hdu 1083(匹配)
  5. 如何将第三方控件嵌入ToolStrip控件,并提供Design-Time支持
  6. Linux系统的账号管理
  7. LoadRunner 12 和 UFT\QTP 12在HP官网已经可以开始下载了
  8. 机器学习实验——回归预测算法
  9. AirPlay to Mac 如何工作以及使用它需要什么
  10. 六自由度机械臂研究(3)- 机械臂DH参数表建立
  11. python刷新网页_python调用浏览器刷新网页的简单示例
  12. win7无线连接服务器,win7/8无线网络连接受限制怎么办?
  13. 用Python+小程序实现诗词大会的飞花令 !
  14. 基于URL特征的网站结构信息挖掘
  15. 任务调度 的常用的基本方式
  16. dasda(大s打陈建州)
  17. 呼吁重视孩子写字姿势
  18. [RK3288][Android5.1] 移植笔记 --- gsl3673 触控驱动
  19. Tabu Search求解作业车间调度问题(Job Shop Scheduling)-附Java代码
  20. 什么是 Azuki NFT 系列?

热门文章

  1. RK3288RK3399 GMAC以太网调试
  2. 地形建模(二)--TIN拉伸成模型并贴纹理
  3. Android动态listview,Android列表组件ListView使用详解之动态加载或修改列表数据
  4. HTML,CSS 三角形制作案例(等边三角形 直角三角形)
  5. 14个python就业前景_python普通人学有什么用 就业前景和工资待遇怎么样
  6. java使用axis实现webservice接口调用
  7. 利用AXIS开发Webservice(三) —— 如何传递JavaBean和你的对象
  8. 针对部分16系显卡通过VS2017编译的YOLOV3测试成功但图像无检测框的问题:
  9. 无法验证驱动程序的签名_无法验证应用?掉签名打不开应用?没越狱也能解决!...
  10. webstorm热更新