win11配置mmdetection2.13
windows11+cuda10.2+mmdetection2.13.0+mmcv1.3.8+pytorch1.8+anaconda(爆肝两天终于在win11上跑通了mmdetection2.0,文中链接来自于其他用户,非原创)
Q&A
注意:整个过程中遇到的问题主要是mmcv和pytorch和mmdetection之间的版本不匹配问题,因此需要在安装前提前看好版本对应关系
- mmdetection版本不匹配mmcv的话可以直接删掉mmdetection的文件夹,重新下载匹配的mmdetection重新安装一下即可
- 不要安装多个版本的mmcv即便是不同conda环境仍然有问题(可能是我自己装混乱了)
- VS请选择2017或2019,一开始装的2022后来报错,但是跳的太快,瞟到一眼说VS版本必须在2019-x之间(x没看清),于是果断卸载2022,重装2019,没有任何问题
- conda建议换源,北外或者北交(14条消息) anaconda 换源大全(清华源很慢)_Lejeune的博客-CSDN博客_anaconda换源之后还是慢
- conda和pip可以混用,都可以装到当前环境
- 需要使用powershell,cmd不行
安装cuda10.2
上官网即可
安装VS2019
上官网即可,尽量选择2017,或者2019版本比较稳定
安装anaconda
上官网即可,基本没有问题
安装pytorch
注意:mmcv=1.3.x对应torch=1.x.0
Pytorch官网Previous PyTorch Versions | PyTorch
例如# CUDA 10.2
conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=10.2 -c pytorch #-c -torch即使用官网源码编译,若使用清华源等则不用写
安装mmcv
推荐官网用源码安装(这里直接安装mmcv-full最全的版本,官网有精简版)
准备工作
-
准备 MMCV 源代码(注意:切记要去github找对应pytorch版本的mmcv版本,否则默认最新版,会报版本不匹配错误错)
git clone https://github.com/open-mmlab/mmcv.git #可以直接从github上下载指定版 cd mmcv-1.x.0 #本的mmcv,解压后就能得到一个 #mmcv-1.x.0的文件夹
-
安装所需 Python 依赖包
pip3 install -r requirements/runtime.txt
-
建议安装
ninja
以加快编译速度(非必须,有些低版本mmcv根本没有optional.txt因此不安装也没关系)pip install -r requirements/optional.txt
-
设置 MSVC 编译器
设置环境变量。添加
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64
到系统环境变量中的PATH
,则cl.exe
可以在命令行中运行,如下所示。(windows命令行不会直接更新,重新打开cmd就可以了)(base) PS C:\Users\xxx> cl Microsoft (R) C/C++ Optimizing Compiler Version 19.27.29111 for x64 Copyright (C) Microsoft Corporation. All rights reserved. usage: cl [ option... ] filename... [ / link linkoption... ]
设置环境变量
-
设置环境变量(我自己的电脑是1050ti因此设置的MAX_JOBS为4,官网默认给的8)
$env:MMCV_WITH_OPS = 1 $env:MAX_JOBS = 4 # 根据你可用CPU以及内存量进行设置
检查
CUDA_PATH
或者CUDA_HOME
环境变量已经存在在envs
之中(base) PS C:\Users\WRH> ls env: Name Value ---- ----- CUDA_PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2 CUDA_PATH_V10_1 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 CUDA_PATH_V10_2 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
如果没有,你可以按照下面的步骤设置
$env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2" # 或者 $env:CUDA_HOME = $env:CUDA_PATH_V10_2 # CUDA_PATH_V10_2 已经在环境变量中
-
设置 CUDA 的目标架构
$env:TORCH_CUDA_ARCH_LIST="6.1" # 支持 GTX 1080 #建议直接用这个 # 或者用所有支持的版本,但可能会变得很慢 $env:TORCH_CUDA_ARCH_LIST="3.5 3.7 5.0 5.2 6.0 6.1 7.0 7.5"
编译安装
-
安装
$env:MMCV_WITH_OPS = 1 $env:MAX_JOBS = 4 # 根据你可用CPU以及内存量进行设置 conda activate mmcv # 激活环境 cd mmcv # 改变路径 python setup.py build_ext # 如果成功, cl 将被启动用于编译算子 python setup.py develop # 安装 pip list # 检查是否安装成功
安装mmdetection
注意:mmdetection对mmcv版本有要求,且仍然建议用源码安装
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xv2ASstL-1641968985464)(F:\知识总结\图片\v2-c8cb58dffa9bea374d11837600e16065_r.jpg)]
在官网找到合适版本的源码下载然后解压会得到一个文件夹
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ySfj7yoh-1641968985465)(F:\知识总结\图片\image-20220112141436317.png)]
cd mmdetection-2.x.0
pip install -r requirements/build.txt
pip install -v -e .
测试
首先需要在mmdetection目录下新建一个checkpoints目录,下载FasterRcnn的权重到这个文件夹中,下载的地址是:
在命令行中cd到mmdetection的路径,执行下列代码
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