天天看点

win10下 detectron2 安装1. 安装所需基础环境2. Win10下安装方法及常见问题

win10下 detectron2 安装

  • 1. 安装所需基础环境
  • 2. Win10下安装方法及常见问题

1. 安装所需基础环境

github官方网址介绍的所需环境。同时也说明了了这个工具包并不完全支持windows系统,因此在win10上面安装会遇到各种各样的问题。当然,既然maskrcnn-benchmark可以安装,这个工具包也可以进行安装。首先除了系统外,其他的依赖项只要按照官网上的建议安装即可。但是,pycocotools却不支持windows,因此直接pip安装会出错。关于这个工具库的安装,可借鉴[https://www.jianshu.com/p/8658cda3d553]

win10下 detectron2 安装1. 安装所需基础环境2. Win10下安装方法及常见问题
win10下 detectron2 安装1. 安装所需基础环境2. Win10下安装方法及常见问题

本方法中所用的环境具体配置为:

  1. Cuda 10.2 (cudnn 7.6.5)
  2. pytorch 1.5.0
  3. python 3.6.6
  4. Visual studio 19 (16.6.2)
  5. Gcc 8.1.0
  6. ninja 1.10.0

2. Win10下安装方法及常见问题

① 首先需要先将detectron2 clone到本地

win10下 detectron2 安装1. 安装所需基础环境2. Win10下安装方法及常见问题

② 第二步,修改pytorch代码。

外国友人提供的方法为:

win10下 detectron2 安装1. 安装所需基础环境2. Win10下安装方法及常见问题

但是,在实际的修改过程中会有些许差别,具体为:

(1) 第一个文件的位置有变动为:{your evn path}\Lib\site-packages\torch\include\torch\csrc\jit\runtime\argumenta_spec.h

(2) 代码改动位置应为161行,修改为 (其中注释掉的为原来的代码):

namespace {
//static constexpr size_t ARG_SPEC_DEPTH_LIMIT = 128;
    static const size_t ARG_SPEC_DEPTH_LIMIT = 128;
}
           

(3) 另外,如果你使用的是中文版本的win10,还需要额外添加一步修改:

打开你环境下的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'])
            version = version.decode(' gbk').strip().split('.')
        else:
            minimum_required_version = MINIMUM_MSVC_VERSION
            compiler_info = subprocess.check_output(compiler, stderr=subprocess.STDOUT)
            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
           

③ 第三步,进行安装

win10下安装的步骤为:

(1) conda activate {your env}

(2) call “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat”

此处解决的问题为,如果不实现call一下本地的vs,会造成之后的安装出现编译器错误

(3) 上述两个步骤进行完毕之后,安装还是会出现错误,此时还需要修改detectron2下的代码,具体为:

将detectron2\detectron2\layers\csrc\deformable 文件夹下三个文件中全部的 AT_CHECK 全部替换为 TORCH_CHECK (在不替换的情况下,会造成报错,error: identifier “AT_CHECK” is undefined或者 CalledProcessError: Command ‘[‘ninja’, ‘-v’]’ returned non-zero exit status 1.)

另外,需要将文件里.cu文件的的THCState_getCurrentStream(state) 替换为 at::cuda::getCurrentCUDAStream()

(4) 至此,win10下detectron安装的准备工作完成,下一步直接安装即可

cd detectron2

python setup.py build develop
           

(5) 安装完成后可使用如下代码,验证是否安装成功

win10下 detectron2 安装1. 安装所需基础环境2. Win10下安装方法及常见问题

继续阅读