Deformable DETR进行目标检测,解决size mismatch问题
问题描述:
strict=False 但还是size mismatch for []: copying a param with shape [] from checkpoint,the shape in cur []
接着(6条消息) Deformable DETR环境配置和应用_Alaso_soso的博客-CSDN博客_deformable detr
上面的链接进行继续写,发现很多人同样也遇到了,我遇到的这个问题,找到了解决方案,记录一下,或许也可以解决在训练自己的模型的时候出现的size问题不匹配的问题.
背景:
前期只是用官方给的完整的deformable detr 模型进行预测的,因此没有出现size不匹配的问题,后面报了一大堆类似一下的错误,网上的有的人用pop解决了问题,然而我却不ok,这次使用的预训练模型是r50_deformable_detr_single_scale-checkpoint.pth:
size mismatch for transformer.level_embed: copying a param with shape torch.Size([1, 256]) from checkpoint torch.Size([64, 256])
解决方案:
首先定位到detect.py文件:detect.py参考链接,修改model_path,以为可以直接运行,结果gg了:
model_path = './r50_deformable_detr_single_scale-checkpoint.pth'
Deformable-DETR部署和体验 - 简书 (jianshu.com)
在定位到load_model方法:
def load_model(model_path, args):model, _, _ = build_model(args)model.cuda()model.eval()ckpt=state_dict = torch.load(model_path) # <-----------修改加载模型的路径msg=model.load_state_dict(state_dict["model"],strict=False)model.to(device)print("load model sucess")return model
在定位到 model, _, _ = build_model(args),这一句创建模型代码上:
def build_model(args):return build(args)
在定位到build(args)这里
def build(args):# 类别个数# num_class = 20# num_classes = 20 if args.dataset_file != 'coco' else (num_class + 1)num_classes = 20 if args.dataset_file != 'coco' else 91if args.dataset_file == "coco_panoptic":num_classes = 250device = torch.device(args.device)backbone = build_backbone(args)transformer = build_deforamble_transformer(args)model = DeformableDETR(backbone,transformer,num_classes=num_classes,num_queries=args.num_queries,num_feature_levels=args.num_feature_levels,aux_loss=args.aux_loss,with_box_refine=args.with_box_refine,two_stage=args.two_stage,)if args.masks:model = DETRsegm(model, freeze_detr=(args.frozen_weights is not None))matcher = build_matcher(args)weight_dict = {'loss_ce': args.cls_loss_coef, 'loss_bbox': args.bbox_loss_coef}weight_dict['loss_giou'] = args.giou_loss_coefif args.masks:weight_dict["loss_mask"] = args.mask_loss_coefweight_dict["loss_dice"] = args.dice_loss_coef# TODO this is a hackif args.aux_loss:aux_weight_dict = {}for i in range(args.dec_layers - 1):aux_weight_dict.update({k + f'_{i}': v for k, v in weight_dict.items()})aux_weight_dict.update({k + f'_enc': v for k, v in weight_dict.items()})weight_dict.update(aux_weight_dict)losses = ['labels', 'boxes', 'cardinality']if args.masks:losses += ["masks"]# num_classes, matcher, weight_dict, losses, focal_alpha=0.25criterion = SetCriterion(num_classes, matcher, weight_dict, losses, focal_alpha=args.focal_alpha)criterion.to(device)postprocessors = {'bbox': PostProcess()}if args.masks:postprocessors['segm'] = PostProcessSegm()if args.dataset_file == "coco_panoptic":is_thing_map = {i: i <= 90 for i in range(201)}postprocessors["panoptic"] = PostProcessPanoptic(is_thing_map, threshold=0.85)return model, criterion, postprocessors
根据自己的类别修改num_classes,args是参数配置,此时就定位到configs文件夹下对应的.sh文件了。
注意到这两个配置文件的区别在于--num_feature_levels 1,问题就出在这里,需要在运行detect.py文件的时候添加上这个配置参数。
python detect.py --num_feature_levels 1
这里就结束了,可以正常运行,进行图片视频的预测了。
感谢某人的帮助捏。*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
Deformable DETR进行目标检测,解决size mismatch问题相关推荐
- 解决size mismatch for embedding.embed_dict.userid.weight
文章目录 一.问题描述 二.解决方法 三.其他问题 Reference 一.问题描述 导入之前训练好的模型权重后使用模型预测时如题报错size mismatch for embedding.embed ...
- Deformable DETR环境配置和应用
准备工作: Deformable DETR代码路径如下: GitHub - fundamentalvision/Deformable-DETR: Deformable DETR: Deformable ...
- 目标检测新方法(DETR)
TOC DETR - End-to-End Object Detection with Transformers outline 摘要: 我们提出了一种将对象检测视为直接集预测问题的新方法. 我们的方 ...
- 【推荐】本周值得关注的将开源论文,包含分类、分割、人脸、目标检测、ReID等...
以下总结的是本周新出的作者声称"将开源"的论文,包含显著目标检测.遥感影像分类.人脸识别.基于视频的人员重识别.跨分辨率人员重识别.医学图像分割.transformer 在视频目标 ...
- Deformable DETR论文翻译
Deformable DETR论文翻译 摘要 1.介绍 2.相关工作 3. 回顾transformer和DETR 4.方法 4.1 端到端目标检测中的可形变transformer 4.2 DEFORM ...
- 目标检测中的Label Assignment
©PaperWeekly 原创 · 作者|燕皖 单位|渊亭科技 研究方向|计算机视觉.CNN Label Assignment Label assignment 主要是指检测算法在训练阶段,如何给特征 ...
- Deformable DETR 论文学习
Abstract DETR 提出在目标检测方法中去除人为组件,也可保持优异性能.但由于 Transformer 注意力模块只能有限地处理图像特征图,它的收敛速度就比较慢,特征空间分辨率有限.为了缓解这 ...
- DINO:目标检测benchmark COCO屠榜的正确姿势
作者丨陈泰红(已授权) 来源丨https://zhuanlan.zhihu.com/p/478461226 编辑丨极市平台 不小心在paperwithcode看到,DETR系列的论文又屠榜了,在COC ...
- 万字长文详解目标检测算法,超大超全(2022最新)
摘要 1 概述 2 目标检测回顾 2.1 two-stage 2.2 one-stage 3 目标检测配方 3.1 基础概念 3.1.1 损失函数 3.1.2 Anchor-based 和 Keypo ...
- Transformer+目标检测,这一篇入门就够了
Vision Transformer for Object Detection 本文作者: Encoder-Decoder 简介: Encoder-Decoder 的缺陷: Attention 机制: ...
最新文章
- 2021-2027年中国托育服务行业市场研究及前瞻分析报告
- Linux升级OpenSSH完整手册
- [Spring cloud 一步步实现广告系统] 15. 使用开源组件监听Binlog 实现增量索引准备...
- 什么是死锁,产生的原因,防止死锁的办法
- oKit项目管理软件试用及感受
- 黄冈学计算机的学校怎么样,广元市黄冈学校怎么样、好不好
- 主页面功能的java_6-04-项目实战-主页面显示当前用户退出功能实现
- 国科大提出FreeAnchor,新一代通用目标检测方法,代码已开源
- 计算机管理教学 (cmi) 包括( )等功能,计算机管理教学(CMI)的未来
- split函数python 未定义_实现python 的split函数
- 转《js闭包与内存泄漏》
- LINUX下载编译lame
- Atitti 摘要算法 散列算法SHA1 和 MD5 crc32 目录 1.1. CRC(Cyclic Redundancy Check,循环冗余校验)算法出现时间较长	1 1.1.1. 数据摘要算
- Spring实战——FileSystemResource
- java else 语法错误_Java中带有else的语法错误
- SIM7600CE重置功能
- 论个人英雄主义的失败
- java配置dsf,基于Spring-DM实现分布式服务框架(DSF)(一)
- The E-pang Palace HDU - 5128
- PR调色 日常Vlog街拍时尚视频博客视频调色PR预设
热门文章
- JPEG图像格式解析
- 天龙八部天荒古镜服务器无法响应,天龙八部3 天荒古镜食谱与药品详细配方
- 微信会员卡系统怎么开通,微信会员卡开发,会员管理系统,CSS :first-line 伪元素
- 问题解决丨对不起,小米路由器出现网络连接问题无法打开网页
- Matlab2019b中配置最小均方误差滤波器(dsp.LMSFilter)详细设置
- PIKA trouble02 -- (error) ERR Syntax error, try CLIENT (LIST [order by [addr|idle]| KILL ip:port)
- 计算机科学中的数学第一章答案,翻译《计算机科学与数学》第一章第四节:我们的公理...
- 区块链DAO vs. 股份制:生产关系革命的原因和意义
- 值得推荐的几款卸载软件工具
- java坦克类的设计_纯JAVA坦克大战,可以做毕业设计