Windows10下安装detectron2超详细教程(小白视角)
深度学习中遇到的问题总结DAY 2
前言
在查了半天的资料,踩了无数的坑后,我来给大家总结下windows10下安装detectron2的超详细教程(最终亲测成功)。关于anaconda3与pytorch安装百度很多了,这里就不介绍了。
NVIDIA显卡驱动
这里官方文档介绍采用CUDA10.1(其他旧版本驱动未测试)。
因此如果目前cuda的版本不是10.1或10.1以上,就卸载掉,然后安装cuda10.1。
cuda10.1完成以后,新增系统环境变量:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
安装vs2019
1)detectron2需要vs2019最新的编译器,安装vs2019的社区/专业/企业版本均可,因为社区版较为简单,因此这里以社区版为例。
下载地址:https://visualstudio.microsoft.com/zh-hans/vs/ 点击跳转.
2)detectron2需要vs2019当中的cl.exe,因此你需要配置cl.exe的系统环境
参照我的:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx64\x64
注意记住这里的版本号14.27,后面用到,每个人可能不一样
配置好系统环境后请务必保证在打开cmd输入cl显示如下内容:
3)如果之前电脑上已经装了vs的其他版本,重新设置vs2019的编译器,操作如下:
SET MSSdk=1
SET DISTUTILS_USE_SDK=1
call “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat” amd64 -vcvars_ver=14.27
每个人的vcvarsall.bat路径和版本不一样,找到自己的路径和版本,然后替换掉上面的。
操作完毕显示内容如下:
安装cocoapi(windows)
下载以下链接的cocoapi,因为cocoapi官方暂不支持Windows
https://github.com/philferriere/cocoapi 点击跳转.
然后用以下指令安装
cd coco/PythonAPI
python setup.py build_ext --inplace
python setup.py build_ext install
如果报cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp” 和 cl: 命令行 error D8021 :无效的数值参数“/Wno-unused-function”,则打开setup.py,删除如下参数
打开cmd输入
import pycocotools;
from pycocotools.coco import COCO
没报错即成功
安装fvcore:
下载链接:https://github.com/facebookresearch/fvcore 点击跳转.
然后cd到setup.py所在目录,用以下指令安装
python setup.py build --force develop
打开cmd输入 import fvcore 没报错即成功
安装detectron2
在安装detectron2前需要先修改detectron2与pytorch的代码以保证顺利安装。
下载地址:https://github.com/conansherry/detectron2 点击跳转.
1)根据官方文档对pytorch进行如下修改(觉得难找可以下载Everything)
file1:
{your evn path}\Lib\site-packages\torch\include\torch\csrc\jit\argument_spec.h
example:
{C:\Miniconda3\envs\py36}\Lib\site-packages\torch\include\torch\csrc\jit\argument_spec.h(190)
static constexpr size_t DEPTH_LIMIT = 128;
change to -->
static const size_t DEPTH_LIMIT = 128;
file2:
{your evn path}\Lib\site-packages\torch\include\pybind11\cast.h
example:
{C:\Miniconda3\envs\py36}\Lib\site-packages\torch\include\pybind11\cast.h(1449)
explicit operator type&() { return *(this->value); }
change to -->
explicit operator type&() { return ((type)this->value); }
第一个文件的位置有变动为:{your evn path}\Lib\site-packages\torch\include\torch\csrc\jit\runtime\argumenta_spec.h
2)将detectron2\detectron2\layers\csrc\deformable 文件夹下三个文件中全部的 AT_CHECK 全部替换为 TORCH_CHECK
3)安装detectron2
//进入解压后setup.py的路径
cd detectron2
//安装
python setup.py build --force develop
安装成功显示如下:
pip list查看结果
最后来总结一些坑,以及坑产生的原因与解决方案
错误产生原因以及解决方案
1)执行call “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat” amd64 -vcvars_ver=14.24后,报如下错误
产生原因:amd64 -vcvars_ver=14.24 版本不一致,我的是14.27。
解决方案:查看自身版本
- 在执行python setup.py build --force develop后,报如下错误
error: command ‘C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\cl.exe’ failed with exit status 2
产生原因:存在多版本vs,未设置vs2019的编译器。
解决方案:
SET MSSdk=1
SET DISTUTILS_USE_SDK=1
call “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat” amd64 -vcvars_ver=14.27
3)在执行python setup.py build --force develop后,报如下错误
解决方案:
将detectron2\detectron2\layers\csrc\deformable 文件夹下三个文件中全部的 AT_CHECK 全部替换为 TORCH_CHECK
4)如果遇到编码错误问题请参照以下解决方案(本人暂未遇到)
打开你环境下的cpp_extension.py, 找到如下代码段的位置,在decode() 的括号中添加 ’ gbk’ (注意gbk前面有空格)
if sys.platform.startswith('darwin'):
# There is no particular minimum version we need for clang, so we're good here.
return True
try:
if sys.platform.startswith('linux'):
minimum_required_version = MINIMUM_GCC_VERSION
version = subprocess.check_output([compiler, '-dumpfullversion', '-dumpversion'])
//修改处1
version = version.decode(' gbk').strip().split('.')
else:
minimum_required_version = MINIMUM_MSVC_VERSION
compiler_info = subprocess.check_output(compiler, stderr=subprocess.STDOUT)
//修改处2
match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode(' gbk').strip())
version = (0, 0, 0) if match is None else match.groups()
except Exception:
_, error, _ = sys.exc_info()
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
return False
以上就是我对Windows10下安装detectron2的总结以及一些常见的坑的解决方案,我也是第一次安装,查了半天的资料才完成,亲测有效,希望能够帮助各位少走弯路。如文章中出现错误,请大佬指出。
上一篇: 烤鱼配方都有什么?
下一篇: 炒蛋要不要加水?鸡蛋怎么挑选?
推荐阅读
-
Windows10下安装detectron2超详细教程(小白视角)
-
win10 tensorflow安装教程 超详细 小白手把手教程
-
Windows10下安装配置 perl 环境的详细教程
-
CentOS7 64位下载配置与安装教程(超详细图文教程)
-
最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)
-
CentOS6.4 下安装SVN的详细教程(超详细)
-
centos7环境下安装JDK8之详细教程(超详细)
-
windows10下安装搭建django1.10.3和Apache2.4的详细教程
-
Windows10下安装Django+vue+MySQL的详细安装说明,一文解决(小白也适用),附上安装过程中容易碰到的一系列错误及解决方法
-
CentOS7 64位下载配置与安装教程(超详细图文教程)