问题描述:

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问题相关推荐

  1. 解决size mismatch for embedding.embed_dict.userid.weight

    文章目录 一.问题描述 二.解决方法 三.其他问题 Reference 一.问题描述 导入之前训练好的模型权重后使用模型预测时如题报错size mismatch for embedding.embed ...

  2. Deformable DETR环境配置和应用

    准备工作: Deformable DETR代码路径如下: GitHub - fundamentalvision/Deformable-DETR: Deformable DETR: Deformable ...

  3. 目标检测新方法(DETR)

    TOC DETR - End-to-End Object Detection with Transformers outline 摘要: 我们提出了一种将对象检测视为直接集预测问题的新方法. 我们的方 ...

  4. 【推荐】本周值得关注的将开源论文,包含分类、分割、人脸、目标检测、ReID等...

    以下总结的是本周新出的作者声称"将开源"的论文,包含显著目标检测.遥感影像分类.人脸识别.基于视频的人员重识别.跨分辨率人员重识别.医学图像分割.transformer 在视频目标 ...

  5. Deformable DETR论文翻译

    Deformable DETR论文翻译 摘要 1.介绍 2.相关工作 3. 回顾transformer和DETR 4.方法 4.1 端到端目标检测中的可形变transformer 4.2 DEFORM ...

  6. 目标检测中的Label Assignment

    ©PaperWeekly 原创 · 作者|燕皖 单位|渊亭科技 研究方向|计算机视觉.CNN Label Assignment Label assignment 主要是指检测算法在训练阶段,如何给特征 ...

  7. Deformable DETR 论文学习

    Abstract DETR 提出在目标检测方法中去除人为组件,也可保持优异性能.但由于 Transformer 注意力模块只能有限地处理图像特征图,它的收敛速度就比较慢,特征空间分辨率有限.为了缓解这 ...

  8. DINO:目标检测benchmark COCO屠榜的正确姿势

    作者丨陈泰红(已授权) 来源丨https://zhuanlan.zhihu.com/p/478461226 编辑丨极市平台 不小心在paperwithcode看到,DETR系列的论文又屠榜了,在COC ...

  9. 万字长文详解目标检测算法,超大超全(2022最新)

    摘要 1 概述 2 目标检测回顾 2.1 two-stage 2.2 one-stage 3 目标检测配方 3.1 基础概念 3.1.1 损失函数 3.1.2 Anchor-based 和 Keypo ...

  10. Transformer+目标检测,这一篇入门就够了

    Vision Transformer for Object Detection 本文作者: Encoder-Decoder 简介: Encoder-Decoder 的缺陷: Attention 机制: ...

最新文章

  1. 2021-2027年中国托育服务行业市场研究及前瞻分析报告
  2. Linux升级OpenSSH完整手册
  3. [Spring cloud 一步步实现广告系统] 15. 使用开源组件监听Binlog 实现增量索引准备...
  4. 什么是死锁,产生的原因,防止死锁的办法
  5. oKit项目管理软件试用及感受
  6. 黄冈学计算机的学校怎么样,广元市黄冈学校怎么样、好不好
  7. 主页面功能的java_6-04-项目实战-主页面显示当前用户退出功能实现
  8. 国科大提出FreeAnchor,新一代通用目标检测方法,代码已开源
  9. 计算机管理教学 (cmi) 包括( )等功能,计算机管理教学(CMI)的未来
  10. split函数python 未定义_实现python 的split函数
  11. 转《js闭包与内存泄漏》
  12. LINUX下载编译lame
  13. Atitti 摘要算法 散列算法SHA1 和 MD5  crc32 目录 1.1. CRC(Cyclic Redundancy Check,循环冗余校验)算法出现时间较长 1 1.1.1. 数据摘要算
  14. Spring实战——FileSystemResource
  15. java else 语法错误_Java中带有else的语法错误
  16. SIM7600CE重置功能
  17. 论个人英雄主义的失败
  18. java配置dsf,基于Spring-DM实现分布式服务框架(DSF)(一)
  19. The E-pang Palace HDU - 5128
  20. PR调色 日常Vlog街拍时尚视频博客视频调色PR预设

热门文章

  1. JPEG图像格式解析
  2. 天龙八部天荒古镜服务器无法响应,天龙八部3 天荒古镜食谱与药品详细配方
  3. 微信会员卡系统怎么开通,微信会员卡开发,会员管理系统,CSS :first-line 伪元素
  4. 问题解决丨对不起,小米路由器出现网络连接问题无法打开网页
  5. Matlab2019b中配置最小均方误差滤波器(dsp.LMSFilter)详细设置
  6. PIKA trouble02 -- (error) ERR Syntax error, try CLIENT (LIST [order by [addr|idle]| KILL ip:port)
  7. 计算机科学中的数学第一章答案,翻译《计算机科学与数学》第一章第四节:我们的公理...
  8. 区块链DAO vs. 股份制:生产关系革命的原因和意义
  9. 值得推荐的几款卸载软件工具
  10. java坦克类的设计_纯JAVA坦克大战,可以做毕业设计