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