文章目录

      • 一、环境问题
          • 1. unsupported Microsoft Visual Stadio version
          • 2. 报错提示找不到 tmp目录下的某个文件
          • 3. ImportError DDL load failed
          • 4. 找不到指定目录下的 cl.exe
          • 5. Linux 系统下的环境安装
          • 6. AssertionError top_pool_forward miss in module _ext
          • 7. Apex 报错:IndexError tuple index out of range
          • 8. 装mmcv时,文件名、目录名或卷标语法不正确
          • 9. NVIDIA GPU Computing Toolkit\\CUDA\\v10.2\\bin\\nvcc.exe' failed with exit code 2
          • 10. nms is not compiled with GPU support
          • 11. 安装mmdet时报错,关于pycocotools的错误,match 不到
      • 二、工程问题
          • 1. 在用自己的数据集测试时,图片被标满了各种目标框
          • 2. 训练过程中 loss好多都是nan
          • 3. Gradient overflow Skipping step loss scalar0 reducing scale to xxx
          • 4. TypeError 'NoneType' object is not subscriptable
          • 5. 给mmdetection工程的Swin Transformer YOLOv3、Faster RCNN配置预训练权重
          • 6. data['category_id'] = self.cat_ids[label],IndexError: list out of range
          • 6. AssertError The num_classes dose not match the length of CLASSES
          • 7. OSError,找不到权值文件
          • 8. 去掉工程中自带的数据翻转增强
      • 三、数据集问题
          • 1. 只有训练集和验证集怎么办
          • 2. VOC转COCO、LabelMe转COCO
          • 3. The testing result of the whole datasets is empty
          • 4. num_classes dose not matches the length of 'CLASSES'
          • 5. The testing result of the whole datasets is empty
          • 6. list index out of range
          • 7. 视频中的数据集去哪下载,天池没找到
          • 8. 有没有什么好的数据增强方法推荐
          • 9. TypeError function takes exactly exactly 5 arguments
          • 10. ValueError:need at least one array to concatenate: indices = np.concatenate(indics)
          • 11. LabelMe转COCO报QT4 Version的错误
          • 12. 训练时 acc很高,map没有什么提升
      • 致谢

必看:

  1. 问题每周总结一次,如果待解决的问题中大家有了解决办法欢迎在交流群和评论区提出(请指明解决的问题和方法)。
  2. 问题的分类可能不完全准确,遇到问题可以都过一遍整个博客。
  3. 本问题汇总关联内容——视频教程完整版:我的教学视频

一、环境问题

1. unsupported Microsoft Visual Stadio version

【来源】:群友——cuprum
【问题描述】:VS版本不支持
【解决办法】:按照要求安装VS,再重新试一下
Swin Transformer Object Detection 目标检测、问题汇总

2. 报错提示找不到 tmp目录下的某个文件

【来源】:群友——cuprum
【问题描述】:在测试环境是否装好时,出现找不到C盘下某个tmp目录下的文件
【解决办法】:一般是中文的用户名造成的,可以去环境变量位置,将该路径换成一个纯英文的路径

3. ImportError DDL load failed

【来源】:群友——
【问题描述】:ImportError DDL load failed
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:环境问题,一般是mmcv安装问题,建议直接按照视频中安装,不用pip装过高版本,pip装可以试试1.4.0,如果官方有提供对应的whl文件的话。

4. 找不到指定目录下的 cl.exe

【来源】:群友——William Gao
【问题描述】:找不到指定目录下的 cl.exe
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:

  1. 环境变量的path配置错误,请与视频中和文档中的仔细对比,尤其X86和x64位置
  2. 群友——范:D:\Windows Kits\10\bin\x64 添加环境变量path rc.exe和rcdll.dll从D:\WindowsKits\10\bin\10.0.19041.0\x86 复制到D:\VS2019\IDE\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64
    路径根据情况换成自己的。
5. Linux 系统下的环境安装

【问题描述】:Linux 下如何安装环境
【解决办法】:

  1. 可以考虑直接通过官网教程中的pip安装,1.4.0及以下的mmcv,如
    pip install mmcv-full==1.3.18 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.1/index.html
  2. 照着win的教程安装,但是免去VS和cl环境变量的部分,因为Linux自带GCC。
6. AssertionError top_pool_forward miss in module _ext

【来源】:群友——Quest.
【问题描述】:AssertionError top_pool_forward miss in module _ext
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:mmcv的版本不对的问题,建议按照教程中的版本。

7. Apex 报错:IndexError tuple index out of range

【来源】:群友——补刀翁、庆天
【问题描述】:Apex 报错:IndexError tuple index out of range
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:Apex包问题,搜一下就能解决。

8. 装mmcv时,文件名、目录名或卷标语法不正确

【来源】:群友——Charile
【问题描述】:装mmcv时,文件名、目录名或卷标语法不正确
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:要使用Anaconda的PowerShell不要使用Anaconda Prompt

9. NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe’ failed with exit code 2

【来源】:群友——等、Serein、补刀翁
【问题描述】:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe’ failed with exit code 2
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:

  1. 群友——范:范:
    卸掉所有的 pytorch torch vision torchaudio,严格按照这里的 cuda版本的安装要求来安装,命令也 严格按照run this command来==
  2. 群友——等:这个问题,我这样解决的,我把mmcv的版本降低了,然后按照up主的教程就可以实现了最后的结果。运行项目时会提示说mmcv版本不小于1.3.17上面会说在具体的文件中具体的规定,我把这里的1.3.17改成了低版本的1.3.8就可以跑通环境了。
10. nms is not compiled with GPU support

【来源】:群友——Serein
【问题描述】:nms is not compiled with GPU support
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:待解决

11. 安装mmdet时报错,关于pycocotools的错误,match 不到

【来源】:群友——时间的朋友
【问题描述】:
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:将requirement.txt 中的pycocotools 注释掉,自己手动装一下

二、工程问题

1. 在用自己的数据集测试时,图片被标满了各种目标框

【来源】:群友——🐹
【问题描述】:在训练好模型后,验证模型效果时,标出了特别多无关的目标框
【解决办法】:类别或者模型与权值文件不匹配导致

2. 训练过程中 loss好多都是nan

【来源】:群友——abu
【问题描述】:
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:待解决

3. Gradient overflow Skipping step loss scalar0 reducing scale to xxx

【来源】:群友——abu
【问题描述】:梯度爆炸,提示Gradient overflow Skipping step loss scalar0 reducing scale to xxx
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:不需要管,应该是模型在调整step,但是具体原理还有待研究。

4. TypeError ‘NoneType’ object is not subscriptable

【来源】:群友——补刀翁
【问题描述】:
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:待解决

5. 给mmdetection工程的Swin Transformer YOLOv3、Faster RCNN配置预训练权重

【来源】:群友——
【问题描述】:不使用链接的形式配置 pretrained,而是直接配置下载好的 预训练权重。
【解决办法】:

  1. 群友——mongkey-nut:把init_cfg的配置删了,加载预训练模型就相当于一个初始化的过程了。
6. data[‘category_id’] = self.cat_ids[label],IndexError: list out of range

【来源】:群友——只争朝夕
Swin Transformer Object Detection 目标检测、问题汇总
【问题描述】:data[‘category_id’] = self.cat_ids[label],IndexError: list out of range
【解决办法】:

  1. 群友——庆天:Swin-Transformer-Object-Detection/mmdet/core/evaluation/class_names.py 的coco_classes改一下,改成自己的类别
6. AssertError The num_classes dose not match the length of CLASSES

【来源】:群友——jenson
【问题描述】:
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:

  1. 群友——天才哥哥~:修改 mmdet set-packet里面mmdet的classes
7. OSError,找不到权值文件

【来源】:群友——天才哥哥~
【问题描述】:OSError,找不到权值文件
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:路径错误,如果不确定的话就绝对路径

8. 去掉工程中自带的数据翻转增强

【来源】:群友——只争朝夕
【问题描述】:想去掉自带的数据增强部分
【解决办法】:

  1. 群友——monkey-nut:
    Swin Transformer Object Detection 目标检测、问题汇总

三、数据集问题

1. 只有训练集和验证集怎么办

【问题描述】:我只有训练集和测试集或者只有训练集和验证集,该怎么办
【解决办法】:可以直接把验证集和测试集使用同一份文件(工程里面默认也是这么做的),配置的时候数据集路径和文件对应上就可以。

2. VOC转COCO、LabelMe转COCO

【问题描述】:我该如何转换,有没有提供脚本
【解决方法】:

  1. LabelMe转COCO:视频中提到了如何用LabelMe转COCO,但是视频中的教程有一点小问题,自己改一点点,原本生成的 json文件中格式为 “file_name”: “JPEGImages\000001.jpg” ,需要想办法把前面的 JPEGImages\ 去掉。方法一:尝试改igthub上那个脚本。方法二:尝试或者自己写脚本去掉这部分内容
    Swin Transformer Object Detection 目标检测、问题汇总
  2. VOC转COCO:我的课程资料中提供了一个转换脚本,需要改成自己的目录就可以了

注意:这两个脚本都没办法自动划分测试集验证集和训练集,需要自己转3次。

3. The testing result of the whole datasets is empty

【问题详情】:train可以跑起来,但是不打印loss等信息,会报 mmdet The testing result of the whole datasets is empty 的错误
【解决方法】:检查一下数据集路径配置,类别数组,类别个数等地方,也很有可能是数据集格式不对

4. num_classes dose not matches the length of ‘CLASSES’

【来源】:群友——补刀翁
【问题详情】:在训练时报如下错误
【解决方法】:大概率因为数据集中的类别数(json文件中的类别部分)和工程中写的(num_classes)不一致,如一个是3一个是4。
群友补充:可能是标签没有文件名(待核实)
Swin Transformer Object Detection 目标检测、问题汇总

5. The testing result of the whole datasets is empty

【来源】:群友——🐹

Swin Transformer Object Detection 目标检测、问题汇总

6. list index out of range

【来源】:群友——abu、补刀翁
【问题描述】:训练了几个epoch后,在if isinstance(segms[i][‘count’)时报list index out of range,如下图:
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:

  1. 检查是不是数据集json的segmentation字段是空的,或者图片和json文件对应不上,有缺失。
  2. 群友——只争朝夕:mmdet的目录指向不明,导致类别读错,因为我之前训练都手动导入环境,mmdet指向的环境,你pip list看目录,他会有个安装路径,我每次导入的是当前工程下的路径,这样不会出问题,export PATHONPATH=…
  3. 群友——补刀翁:把最后那行错误相关的代码屏蔽掉就行了,共四行
    Swin Transformer Object Detection 目标检测、问题汇总
7. 视频中的数据集去哪下载,天池没找到

【来源】:Beyonderwei
【问题描述】:想要下载视频中的数据集自己做一下测试
【解决办法】:去Kaggle下载,天池审核没过,不用特殊方法下载速度会稍慢,地址:examination-paper-mark-trace

8. 有没有什么好的数据增强方法推荐

【来源】:群友——只争朝夕
【问题描述】:想对数据集做一下增强,有没有推荐方法
【解决办法】:torchvision、albumentations、transform、imgaug、SMOTE等

9. TypeError function takes exactly exactly 5 arguments

【来源】:群友——OHhahaaa
【问题描述】:TypeError function takes exactly exactly 5 arguments
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:标签 有中文,解码出问题了

10. ValueError:need at least one array to concatenate: indices = np.concatenate(indics)

【来源】:群友——
Swin Transformer Object Detection 目标检测、问题汇总
【问题描述】:ValueError:need at least one array to concatenate: indices = np.concatenate(indics)
【解决办法】:

  1. 群友——肖X炜:voc2coco 数据集转换导致的问题,建议使用资料中的脚本。
11. LabelMe转COCO报QT4 Version的错误

【来源】:群友——钱X
【问题描述】:
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:待解决,可尝试将QT4更新到QT5。
Swin Transformer Object Detection 目标检测、问题汇总

12. 训练时 acc很高,map没有什么提升

【来源】:群友——只争朝夕
【问题描述】:训练时 acc很高,map没有什么提升
Swin Transformer Object Detection 目标检测、问题汇总
【解决办法】:没办法,大概率是因为数据集不适用于该模型,目标太小,据说YOLOv5效果不错,或者使用更大输入的 Swin V2。

致谢

      感谢上述提出或提供解决办法的朋友们。如有需要可以私信提供CSDN账号主页链接,我会在下面位置添加。排名不分先后。

关于作者:

  • 个人网站:https://beyonderwei.com
  • 邮箱:beyonderwei@gmail.com

Swin Transformer Object Detection 目标检测、问题汇总

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。