Pytorch遇到权重不匹配的问题
最近,楼主在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遇到权重不匹配的问题相关推荐
- 学习笔记26-解决:载入预训练模型时Pytorch遇到权重不匹配的问题(附+修改后的预训练模型载入和冻结特征权重完整代码)
在pytorch微调mobilenetV3模型时遇到的问题 1.KeyError: 'features.4.block.2.fc1.weight' 这个是因为模型结构修改了,没有正确修改预训练权重,导 ...
- Pytorch网络模型权重初始化、保存与加载模型、加载预训练模型、按需设置学习率
前言 在我们对神经网络模型进行训练时,往往需要对模型进行初始化或者加载预训练模型.本文将对模型的权重初始化与加载预训练模型做一个学习记录,以便后续查询使用. 权重初始化 常见的初始化方法 PyTorc ...
- (五)将YOLOv5 PyTorch模型权重转换为TensorFlow Lite格式
目录 介绍 建议使用Ultralytics进行重量转换的方法 在Google Colab上测试TFLite权重 TFLite解释器,可在边缘设备上实现良好性能 在本地测试YOLOv5模型权重 下一步 ...
- 无root权限在A4000服务器上配置cuda和pytorch和注意算力匹配
无root权限在A4000服务器上配置cuda和pytorch 1.配置cuda和cudnn 在官网找到cuda需要安装的版本,这里安装的是cuda11.1(CUDA Toolkit 11.1.0 | ...
- pytorch 初始化权重
一般的网络初始化方法: from torch.nn import functional as F, initdef init_params(self):for m in self.modules(): ...
- 用自己的数据集训练C3D和tensorboard的使用
修改C3D 刚跑起来就激动地发文了,只能跑起来,识别准确率还没有研究. 基本上就是修改 mypath.py dataset.py train.py inference.py ucf_labels.tx ...
- SWA(随机权重平均) for Pytorch
Stochastic Weight Averaging for Pytorch 随机权重平均 一.什么是Stochastic Weight Averaging(SWA) 二.SWA与SGD的对比 三. ...
- 【Datawhale组队学习Pytorch】Task 完结篇
[项目简介] PyTorch是利用深度学习进行数据科学研究的重要工具,在灵活性.可读性和性能上都具备相当的优势,近年来已成为学术界实现深度学习算法最常用的框架.考虑到PyTorch的学习兼具理论储备和 ...
- pytorch遇见RuntimeError: CUDA out of memory的解决
RuntimeError: CUDA out of memory 1.查看是否其他程序占用显存 遇到此类错误后,对于py格式的文件来说,程序会进行终止,也就是当前程序占用的显存将会被释放.此时可用 w ...
最新文章
- js通过月份判断前三个月_怀孕前三个月如何判断胎儿发育是否健康,看HCG翻倍情况,快收藏...
- 基于.NET的图表控件解决方案
- Java开发人员在编程中常见的雷!
- Courses hdu 1083(匹配)
- 如何将第三方控件嵌入ToolStrip控件,并提供Design-Time支持
- Linux系统的账号管理
- LoadRunner 12 和 UFT\QTP 12在HP官网已经可以开始下载了
- 机器学习实验——回归预测算法
- AirPlay to Mac 如何工作以及使用它需要什么
- 六自由度机械臂研究(3)- 机械臂DH参数表建立
- python刷新网页_python调用浏览器刷新网页的简单示例
- win7无线连接服务器,win7/8无线网络连接受限制怎么办?
- 用Python+小程序实现诗词大会的飞花令 !
- 基于URL特征的网站结构信息挖掘
- 任务调度 的常用的基本方式
- dasda(大s打陈建州)
- 呼吁重视孩子写字姿势
- [RK3288][Android5.1] 移植笔记 --- gsl3673 触控驱动
- Tabu Search求解作业车间调度问题(Job Shop Scheduling)-附Java代码
- 什么是 Azuki NFT 系列?
热门文章
- RK3288RK3399 GMAC以太网调试
- 地形建模(二)--TIN拉伸成模型并贴纹理
- Android动态listview,Android列表组件ListView使用详解之动态加载或修改列表数据
- HTML,CSS 三角形制作案例(等边三角形 直角三角形)
- 14个python就业前景_python普通人学有什么用 就业前景和工资待遇怎么样
- java使用axis实现webservice接口调用
- 利用AXIS开发Webservice(三) —— 如何传递JavaBean和你的对象
- 针对部分16系显卡通过VS2017编译的YOLOV3测试成功但图像无检测框的问题:
- 无法验证驱动程序的签名_无法验证应用?掉签名打不开应用?没越狱也能解决!...
- webstorm热更新