MMDetection 2.0安装笔记

最新更新:手滑不小心删掉了Anaconda文件夹,导致创建好的环境都没了。重新安装的时候干脆装了个最新版


## 一、下载安装包 在GitHub上下载mmdetection的官方安装包,链接为[https://github.com/open-mmlab/mmdetection.git](https://github.com/open-mmlab/mmdetection.git) 由于直接下载速度较慢,可以在码云里新建工程并导入,从码云下载压缩包,下载zip文件并解压。 ## 二、配置环境

MMDetection官方提供的install.md文件包含了详细的配置过程,可以进行参考。具体步骤如下:

1、创建虚拟环境

conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab

注意:我的电脑不能直接运行conda activate,需要运行source activate才可以,但单运行过source activate后在同一个terminal下再运行conda activate就不报错了。

如果新创建的环境想要直接继承旧环境,可以使用conda的拷贝功能:

conda create -n 新环境 --clone 旧环境

另外,如果这个环境不小心搞废了,可以使用conda remove -n open-mmlab --all直接删除,从头再来(流泪)。

2、安装PyTorch

官方提供的安装语句

conda install pytorch torchvision -c pytorch

由于是从官网下载,因此速度极慢,可以去掉-c运行。有时下载时遇到conda下载中断问题,可以参考https://blog.csdn.net/weixin_41010198/article/details/87912152这篇文章解决。

我使用了同事给的安装包离线下载,语句如下。

pip install /home/*mypath*/torch-1.4.0-cp37-cp37m-manylinux1_x86_64.whl

检验pytorch是否安装成功:

$ python
>>> import torch

此时报错:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/XXX/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/__init__.py", line 81, in <module>
    from torch._C import *
ImportError: numpy.core.multiarray failed to import

其问题在于numpy的版本不对,使用语句pip install numpy==1.18.5将numpy版本从1.19降低至1.18.5后解决问题。

同理,包安装torchvision:

pip install torchvision==0.5.0

PS.之前用的同事给的离线包安装的,居然有问题,后面运行test.py的时候报错,以为是版本不对,鼓捣半天,发现pip install就没问题,有点小坑。

完成pytorch的安装,后续可以在conda list中查看。

3、安装mmcv

安装mmcv时要注意一定要和自己的cuda版本、pytorch版本匹配。
这里有一个问题,安装的时候可以选择安装mmcv和mmcv-full,关于二者的区别,官网给出的README.md给出了解释:

mmcv: lite, without CUDA ops but all other features, similar to mmcv<1.0.0. It is useful when you do not need those CUDA ops.
mmcv-full: comprehensive, with full features and various CUDA ops out of box. It takes longer time to build.

最后还给出了一个提示:

Note: Do not install both versions in the same environment, otherwise you may encounter errors like ModuleNotFound. You need to uninstall one before installing the other.

意思是不要进行重复安装,但是据说两个都装也没有什么问题,我决定两个都装试一下。
mmcv-full可以使用官网提供的语句进行安装:

pip install mmcv-full==latest+torch1.4.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html

mmcv我是使用的离线安装包。我之前因为版本不匹配的问题,安装总是不成功,同事给了我一个验证可行的mmcv包,解压后在该文件夹路径下打开终端运行:

pip install -e .

成功安装mmcv-full和mmcv,后续如果因为不兼容而出现问题,就随机挑选一个幸运安装包删掉(躺平)。

4、安装mmdet

使用官方给出的安装方式,先安装需要的包,后安装mmdet。cd进入mmdetection所在文件夹:

pip install -r requirements/build.txt
pip install -v -e .  # or "python setup.py develop"

如果需要卸载重装,需要安装给出的方法,不能仅仅uninstall mmdet包:

pip uninstall mmdet
rm -rf ./build
find . -name "*.so" | xargs rm

三、测试MMDetection

运行MMDetection自带的Test.py,报如下错误:

import torchvision
ModuleNotFoundError: No module named 'torchvision'

经检查,不是由于同时安装了mmcv和mmcv-full导致的,也不是版本问题,而是torchvision离线包有问题,改为使用pip install 安装即可解决。

之后再运行,又遇到新的错误:

No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda'
usage: test.py [-h] [--out OUT] [--fuse-conv-bn] [--format-only]
               [--eval EVAL [EVAL ...]] [--show] [--show-dir SHOW_DIR]
               [--show-score-thr SHOW_SCORE_THR] [--gpu-collect]
               [--tmpdir TMPDIR] [--cfg-options CFG_OPTIONS [CFG_OPTIONS ...]]
               [--options OPTIONS [OPTIONS ...]]
               [--eval-options EVAL_OPTIONS [EVAL_OPTIONS ...]]
               [--launcher {none,pytorch,slurm,mpi}] [--local_rank LOCAL_RANK]
               config checkpoint
test.py: error: the following arguments are required: config, checkpoint

加入断点检查程序,import可以正常导入所有需要的包,程序报错的主要原因是没有给出所需的输入。但第一行的提示No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda'值得注意。经过检查,发现原来此时驱动掉了,输入nvidia-smi没有输出,重新安装驱动(安装方法参考https://blog.csdn.net/jiraiya_wl/article/details/108997663),不再提示这一句。
由于数据集还没有准备好,所以使用官方提供的单张图测试程序进行测试:

python demo/image_demo.py demo/demo.jpg configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \
    checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth --device cpu

最后一项的--device cpu可以忽略。

最终程序跑通(撒花)~

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值