mmdetection旧版安装指南

在研究他人论文时需要在安装指定版本的mmdetection,出现了一些问题,故开此贴记录一下。

首先推荐用conda新开一个环境,本人在这里使用了python3.7.

接着到github克隆代码。

查看作者的文档得知,需要安装mmdet的版本为2.24.1,首先查看openmmlab官网的文档:
依赖 — MMDetection 2.24.0 文档

由于版本更新,新版的mmcv对应旧版的mmcv-full,新版的mmcv-lite对应旧版的mmcv,本人通过此文档确定安装mmcv-full==1.3.17。

可以看到在安装之前,需要这些依赖,在这里我选择使用pytorch1.8.0+CUDA111(本人设备是CUDA113,但在我安装了pytorch1.12.1cu113后发现不能兼容,故选择此版本)

安装完pytorch后,接着安装mim(旧版无需安装mmengine)。

pip install -U openmim

接着安装对应版本的mmcv-full.

我这里安装:
 

mim install mmcv-full==1.3.17

接着安装mmdet,请注意,这里一定要使用源码安装,也就是使用你克隆的那个仓库的代码进行安装,而不是再去克隆mmdetection的代码,本人在这里踩了坑。

进入到你克隆的项目:

pip install -v -e .

接下来,再查看你克隆的项目的readme文档,使用pip install -r 安装所需的项目依赖。

然后,开始训练python tools/train.py config_file.py

发现报错:
OSError: libstdc++.so.6: cannot open shared object file: No such file or directory
研究后发现是linux环境缺少该依赖导致,可以通过此命令:
 

conda install libgcc

安装所需依赖,conda会将对应文件下载到对应的python环境下的miniconda3/envs/env_name/lib/中去(将env_name替换为你的环境名称),接着我们可以使用命令:
 

export LD_LIBRARY_PATH=/your/system/dir/miniconda3/envs/env_name/lib:$LD_LIBRARY_PATH

设置环境变量(请替换为你自己的miniconda路径),请注意,这个命令是临时的,当你关闭当前ssh会话后,就会失效。

再次运行,接着遇到了问题:
FormatCode() got an unexpected keyword argument 'verify',经查询,需要安装yapf==0.40.1,故卸载旧版本的包,使用pip安装此版本。

最后,终于启动了,但是在训练时又报错:

AssertionError: The `num_classes` (1) in Shared2FCBBoxHead of MMDataParallel does not matches the length of `CLASSES` 80) in CocoDataset

这是因为我们的数据集种类与coco数据集种类数目不一致导致的,我们首先需要确保模型的配置文件中num_classes=实际的种类数,然后修改下述py文件:
 

'../_base_/default_runtime.py'
# custom_hooks = [dict(type='NumClassCheckHook')]

将这行注释掉,然后修改mmdet/core/evaluation/class_names.py的函数

def coco_classes():
将其中的类别注释掉,写上我们数据集的类别,注意最好在最后一个类别后面加上逗号,不然容易报错
接着修改文件mmdet/datasets/coco.py
class CocoDataset(CustomDataset):

将其中的CLASSES = 同理进行修改即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值