跑Swin-Transformer-Object-Detection过程中遇到的坑及解决

代码地址:GitHub - SwinTransformer/Swin-Transformer-Object-Detection: This is an official implementation for "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows" on Object Detection and Instance Segmentation.

BUG1:

安装mmcv报了undefined symbol的错,大概如下

undefined symbol: _ZN3c105ErrorC1ENS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

根据mmcv文档Frequently Asked Questions — MMDetection 2.19.1 documentation

跑Swin-Transformer-Object-Detection过程中遇到的坑及解决_第1张图片

但查看了pytorch版本和gcc版本都是没有问题的。但基本可以确定是版本问题。

Solve:

根据所用的cuda和pytorch版本到https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html查看和python版本也相匹配的mmcv版本,用pip安装

pip install https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/mmcv_full-1.3.9-cp36-cp36m-manylinux1_x86_64.whl

解决!

BUG2:

AssertionError: The `num_classes` (80) in FCNMaskHead of MMDataParallel does not matches the length of `CLASSES` 8) in..

FCNMaskHead检测头的类别设置不对

Solve:

在configs/swin/下用到的配置文件config.py中修改类别为8.

BUG3:

AssertionError: Default process group is not initialized

非分布式的代码用了分布式的设置

解决:

参考github的issues

Check your config file and replace all "SyncBN" entries to "BN", that should help.

BUG4:

使用cityscapes数据集训练时,在mmdet下的文件这一行seg_map=img_info['segm_file'])

报了keyrrror的错,就是说img_info中没有segm_file这个key

Solve:

数据集的问题,使用/tools/dataset_converters/cityscapes.py代码将cityscapes转换为coco格式。

BUG5:

mmdet/core/mask/mask_target.py的文件里报了typeerror的错,

TypeError: 'NoneType' object is not iterable in Python

似乎是传入的mask是NoneType

Solve:

模型用的是cascade mask rcnn,但configs/_base_/datasets/用的是cityscapes_detection的配置文件,detection设置mask为false,就是没有给模型传入mask,修改为cityscapes_instance的配置文件,解决!

大概就记得这么多,就是说,没有GITHUB和GOOGLE解决不了的BUG!

你可能感兴趣的:(机器学习,transformer,深度学习,计算机视觉)