Win10下安装Detectron2超详细教程
目录
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,具体下载地址:CUDA和cudnn,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