win10下 detectron2 安装

win10下 detectron2 安装

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

1. 安装所需基础环境

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

  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到本地
在这里插入图片描述
② 第二步,修改pytorch代码。

外国友人提供的方法为:
win10下 detectron2 安装_第2张图片
但是,在实际的修改过程中会有些许差别,具体为:
(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()

注:pytorch 1.7 版本之后,deformation文件夹下的上述问题官方已进行更改。然而会另外引入别的问题,具体表现在会报错:C:/Anaconda3/envs/pytorchhigh/lib/site-packages/torch/include\torch/csrc/jit/ir/ir.h(1347):error: member “torch::jit::ProfileOptionalOp::Kind” may not be initialized

为解决上述问题,可以将pytorch文件夹下对应的 ir.h文件下的对应行注释掉,安装即可完成

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

cd detectron2

python setup.py build develop

(5) 安装完成后可使用如下代码,验证是否安装成功
win10下 detectron2 安装_第3张图片

你可能感兴趣的:(pytorch,神经网络)