MMDetection环境配置与使用

在安装MMDetection时,耗费了近一天时间,其实安装很简单,只要保证环境对应即可(这不是废话吗),总而言之,只要严格按照步骤Windows下环境配置就是可行的。

Window环境配置

基础环境

CUDA为10.1

MMDetection环境配置与使用_第1张图片

创建Conda环境

conda create -n mmdet python=3.7
activate mmdet

安装pytorch

pytorch官网

根据CUDA版本确定pytorch按照版本

pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

MMDetection环境配置与使用_第2张图片
若是使用cuda安装可能会报错:

ImportError: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory

安装mmdet

cd E:\graduate\programsnew\mmdetection
pip install -r requirements/build.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

安装MMCV

MMCV安装教程

pip install mmcv==2.0.0rc4 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.8/index.html

MMDetection环境配置与使用_第3张图片
如果安装的mmcv版本不对,则会报错:

 File "/home/ubuntu/.local/lib/python3.8/site-packages/mmcv/utils/ext_loader.py", line 13, in load_ext
    ext = importlib.import_module('mmcv.' + name)
  File "/usr/local/miniconda3/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)

pip list

最终安装完后的环境依赖包如下图所示:

MMDetection环境配置与使用_第4张图片

简单调试

首先是train.py的运行,指定config文件与保存路径

parser.add_argument('--config',
                        default="E:/graduate/program/mmdetection/configs/faster_rcnn/faster-rcnn_r50_fpn_2x_coco.py",
                        help='train config file path')
    parser.add_argument('--work-dir',default="outputs", help='the dir to save logs and models')

修改数据集地址,MMDetection默认使用的数据集格式为COCO

MMDetection环境配置与使用_第5张图片
随后运行:

MMDetection环境配置与使用_第6张图片

随后报错:显存溢出

File “D:\Anaconda\envs\mmdet\lib\site-packages\mmcv\ops\roi_align.py”,
line 110, in backward
grad_input = grad_output.new_zeros(ctx.input_shape) RuntimeError: CUDA out of memory. Tried to allocate 132.00 MiB (GPU 0; 4.00 GiB
total capacity; 3.20 GiB already allocated; 0 bytes free; 3.49 GiB
reserved in total by PyTorch)

更换数据集:WiderPerson

训练自定义数据集

这里我替换了数据集后,运行报错:

f’class {obj_cls.__name__} in ’ # type: ignore ValueError: class
EpochBasedTrainLoop in mmengine/runner/loops.py: class CocoDataset
in mmdet/datasets/coco.py: need at least one array to concatenate

找到这个目录下的文件,修改文件里的 num_classes=2 ,修改成自己的类别数目。

configs_base_/models/faster-rcnn_r50_fpn.py

MMDetection环境配置与使用_第7张图片

修改我们的类别名,两个文件需要修改,第一个文件是:

mmdet/core/evaluation/class_names.py

修改里边的def coco_classes(): ,将return内容修改成自己的类别。

第二个文件:

mmdet/datasets/coco.py

修改里边的class CocoDataset(CustomDataset): ,将 CLASSES = () 修改成自己的类别。

至此,修改结束,我们还需要重新编译一遍,这样才能生效,在mmdetection目录下运行:

python setup.py install

其他问题

ERROR: Could not find a version that satisfies the requirement regex;
sys_platform == “win32” (from mmcv) (from versions: none) ERROR: No
matching distribution found for regex; sys_platform == “win32”

解决方法:

pip install pypiwin32 -i https://pypi.tuna.tsinghua.edu.cn/simple

Linux环境配置

基础环境,博主是在服务器上配置的。

MMDetection环境配置与使用_第8张图片

创建Conda环境

conda create -n mmdet python=3.7
activate mmdet

pytorch安装

本想安装pytorch1.12版本的但国内服务器没有安装成功,换了pytorch1.9,国内服务器时常存在这个问题,在访问外网时速度较慢。

pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

安装mmdet

cd E:\graduate\programsnew\mmdetection
pip install -r requirements/build.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

安装MMCV

与Windows一样,保证版本对应即可

pip install mmcv==2.0.0rc4 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9/index.html

随后便是一些细枝末节的配置了,基本与Windows下相同,这里就不再赘述了。

你可能感兴趣的:(环境配置,python,开发语言)