Windows从零安装MMDetection

参考官方文档:
https://mmcv.readthedocs.io/en/latest/get_started/build.html#prerequisite
https://mmdetection.readthedocs.io/zh_CN/v2.21.0/get_started.html#mmdetection

安装环境及依赖:

Windows 10
Python 3.8 (Anaconda虚拟环境)
PyTorch 1.8.1(对应torchvision的版本为0.9.1)
cudatoolkit=11.1(尽可能与Runtime CUDA的版本保持一致)
CUDA 11.1 & cuDNN(30系以上显卡必须使用CUDA11+,其他显卡推荐使用CUDA10.2)
Microsoft Visual C++ Build Tools(Visual Studio 2019)

以上环境的安装较为简单,网上的教程比较常见,这里不过多赘述,要注意的几点就是PyTorch、torchvision、CUDA、cuDNN、cudatoolkit的版本需要尽可能地严格匹配,这样后面的安装会省力不少;以及PyTorch和torchvision的安装推荐下载适合版本的whl到本地,再pip安装,因为直接使用conda命令有可能会装上CPU版本。
PyTorch whl文件下载链接:https://download.pytorch.org/whl/torch_stable.html

虚拟环境准备:

conda create -n mmdet python=3.8
conda activate mmdet
conda install cudatoolkit=11.1 -c pytorch
pip install path/to/torch-1.8.1+cu111-cp38-cp38-win_amd64.whl        # 必须先安装torch再安装torchvision,因为torchvision依赖torch
pip install path/to/torchvision-0.9.1+cu111-cp38-cp38-win_amd64.whl  # 先安装torchvision会自动安装torch,导致版本不可控
pip install cython matplotlib opencv-python

这里可以在python中验证PyTorch是否顺利安装:

python
>>> import torch
>>> print(torch.cuda.is_available())
True
>>> a =  torch.tensor([1, 2])
>>> a.cuda()
tensor([1, 2], device='cuda:0')

环境变量配置:确保你的系统变量中包含以下路径。

系统变量
以上的CUDA_PATH和CUDA_PATH_V11_1应该会在你安装完CUDA后自动配置好。

需要在Path中手动添加Visual C++的编译器,此路径不绝对,可能在你的电脑上会不一样,该路径下应该会有一个cl.exe:

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64

配置好环境变量后,可以进入cmd,输入cl,出现以下输出即可:
在这里插入图片描述

MMCV-full安装(重点)

MMCV的安装对Windows极不友好,无论是mim安装还是pip安装都不可控,且有极大可能性报错,所以这里我们使用源码编译,确保万无一失。
打开Anaconda Powershell Prompt,注意不是Anaconda Prompt。

conda activate mmdet
cd mmcv-master (这里使用git clone和直接下载源码都可)
pip install -r .\requirments\runtime.txt
pip install -r .\requirments\optional.txt
$env:CUDA_HOME=$env:CUDA_PATH_V11_1
$env:TORCH_CUDA_ARCH_LIST="8.6" # 8.6取决于你的显卡算力,在这里查询显卡算力 https://developer.nvidia.com/cuda-gpus
$env:MMCV_WITH_OPS=1            # 安装mmcv-full必要
$env:MAX_JOBS=8                 # 如果你的CPU性能不强,推荐使用4
python setup.py build_ext
python setup.py develop

如果到这一步都没有报错失败,那么恭喜你已经离成功不远了。
再确认一下,mmcv安装成功:

python
>>> from mmcv.ops import RoIPool
>>>

如果这里import报错缺少DLL,大概率是mmcv安装失败,需要检查前置步骤是否出错,再重新编译安装mmcv。

MMDetection安装:

这一步应该确定MMDetection和MMCV的版本不冲突,可以查看此网站确认https://mmdetection.readthedocs.io/zh_CN/v2.21.0/get_started.html#mmdetection
这里我们使用的都是master分支,不太可能会出现版本冲突。

cd ..
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e .

运行Demo验证MMDetection是否安装成功:

在mmdetection-master目录下新建checkpoints目录,下载FasterRcnn权重并放入这个文件夹中,运行以下命令:

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

在这里插入图片描述
成功!

结语

我本人几乎是用一整天的时间来安装mmdetection,最后终于成功了。踩得坑包括但不限于:“conda自动安装torch-CPU版本”,“CUDA10.2不支持30系显卡”,“torch找不到Runtime CUDA”, “mmcv编译出错”, “anaconda莫名暗中切换虚拟环境”。写这样一篇博文也是希望能让别人安装得更加顺利一些,同时也防止自己以后忘了再踩一边坑T.T。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值