目录

1. 环境版本

VS2019
CUDA10.2+cudnn7.6.5
Pytorch1.7.1
Detectron2-0.5

2. 安装CUDA

Windows下边安装CUDA还是比较简单的,步骤:
安装VS2019→安装CUDA和cudnn→安装anaconda
(1) 安装VS2019
编译Detectron2,最好还是用VS2019,VS2019社区版就够用了,下载:https://visualstudio.microsoft.com/zh-hans/vs/,然后安装的时候我选择了两个安装内容,大概空间需要8.5GB。
这是我已经安装后的截图
(2) 安装CUDA
Detectron2-0.5的话是需要CUDA10.2以上的版本了,然后我选择了CUDA10.2+cudnn7.6.5,具体下载地址:CUDAcudnn,cudnn下载需要注册\登录账户。
然后如果电脑里边已经有低版本的CUDA,也可以不用卸载,让多个版本并存,具体参考“windows下同一个显卡配置多个CUDA工具包以及它们之间的切换
(3) 安装Anaconda
也比较简单,这里提供镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

3.安装Pytorch

安装Pytorch还是比较简单的,具体步骤:
(1)在cmd窗口中创建新的虚拟环境,然后进入虚拟环境

conda create -n torch(环境名) python==3.8.3
activate torch

(2)添加镜像源,这样安装快一些

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

(3)安装Pythorch

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.2

完成以后可以测试一下,在窗口里依次输入

python
import torch
print(torch.cuda.is_available())

若返回True,就安装成功了,像这样:
在这里插入图片描述

4. 安装其他库:cocoapi、fvcore等

(1) 安装cocoapi
点击https://github.com/philferriere/cocoapi下载,然后执行以下指令,另外还需要先安装Cython

pip install Cython -i https://pypi.tuna.tsinghua.edu.cn/simple
cd coco/PythonAPI
python setup.py build_ext --inplace
python setup.py build_ext install

(2) 安装fvcore
点击https://github.com/facebookresearch/fvcore下载,切换到setup.py所在目录,然后执行指令

python setup.py build --force develop

(3) 安装ninja

conda install ninja

5. 安装Detectron2

(1) 下载Detectron2,链接:https://github.com/facebookresearch/detectron2
(2) 修改文件内容
Anaconda安装路径\envs\torch\Lib\site-packages\torch\utils\cpp_extension.py,第283行,注释的是原语句,后一行是改后的

# match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode().strip()
match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode(' gbk').strip()

Anaconda安装位置\envs\detectron2\Lib\site-packages\torch\include\torch\csrc\jit\runtime\argument_spec.h ,第160行

// static constexpr size_t ARG_SPEC_DEPTH_LIMIT = 128;
static const size_t ARG_SPEC_DEPTH_LIMIT = 128;

Detectron2文件夹下\detectron2\layers\csrc\ROIAlignRotated\ROIAlignRotated_cuda.cu,将所有的ceil改为ceilf
Detectron2文件夹下\detectron2\detectron2\layers\csrc\deformable\deform_conv_cuda_kernel.cu,将所有的floor改为floorf。
D:\software\Anaconda3\envs\torch\Lib\site-packages\torch\include\torch\csrc\jit\ir\ir.h,将1347行注释掉

// static constexpr Symbol Kind = ::c10::prim::profile_optional

Detectron2文件夹下\detectron2\layers\csrc\cocoeval\cocoeval.cpp,修改第487行

// localtime_r(&rawtime, &local_time); 
localtime_s(&local_time,&rawtime);

(3) 编译,在Detectron2文件夹下,执行以下代码

python setup.py build develop

这样就编译成功啦
在这里插入图片描述
编译完成后,执行demo.py文件,可以检验环境是否安装成功,可能会出现某些模块缺失报错,安装就行了。

6. 部分报错解决方法

(1) 如果出现command ‘…\bin\HostX86\x64\cl.exe’ failed with exit status 2’的问题,用如下指令:

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"   (对应自己文件的路径)
set DISTUTILS_USE_SDK=1

(2) 如果报错error: Could not find suitable distribution for Requirement.parse('......')之类的,是因为网络原因,检查下网络,再试试。
(3) 如果出现ModuleNotFoundError:No module name 'win32con',可以重新安装下 ‘win32con’,然后可能还会有其他错误,所以可以执行以下指令:

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

然后可以执行

python
import win32con

没有出现报错就说明可以了,大功告成啦!

7. 其他

整个安装过程还是有很多坑,我足足折腾了两天,如果下载了更新版本的Detectron2,建议使用更高版本的CUDA和Pytorch。如果在编译过程中出现Failed,一定要注意报错后边的提示信息,挨着解决就可以了。
这是我第一次写博客,感谢观看使用啦!

参考

在安装过程中,参考了许许多多的博客,其中我觉得比较有用的,比较正确的有以下四条,感谢这些博主,大家也可以在这里边找到其他的问题解决方法:
win10安装detectron2,亲测有效
Windows10下安装detectron2超详细教程(小白视角)
Win10安装Detectron2纪实
Win10编译Detectron2和TensorMask

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐