win10下 detectron2 安装

1. 安装所需基础环境

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

  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代码。

外国友人提供的方法为:
在这里插入图片描述
但是,在实际的修改过程中会有些许差别,具体为:
(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) 安装完成后可使用如下代码,验证是否安装成功
在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值