整理在windows系统上运行GRNet源码时遇到的问题以及解决方法

最近在复现GRNet这篇文章的源码,好多问题搞得心态有点爆炸,好在最后完美解决了,记录一下这个过程。

刚开始报错是:

d:\Anaconda3\envs\torch\lib\site-packages\torch\utils\cpp_extension.py:189: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。

d:\Anaconda3\envs\torch\lib\site-packages\torch\utils\cpp_extension.py:189: UserWarning: Error checking compiler version for cl: ‘utf-8’ codec can’t decode byte 0xd3 in position 0: invalid continuation byte

参考下面这篇文章,发现是utf-8格式不支持python与c++的混合编译格式,

https://blog.csdn.net/tanmx219/article/details/100829920

下面是解决方法:

首先是call:

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

然后:

vs2019的C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64 添加到了环境变量中,以及cl.exe也添加到了环境变量中。

然后:

要修改D:\Anaconda3\envs\torch36\Lib\site-packages\torch\utils\cpp_extension.py里的编译编码格式,在cpp_extension.py里的180行左右,添加match = re.search(r’(\d+).(\d+).(\d+)’, compiler_info.decode(’ gbk’).strip()) [注意gbk前面有个空格]

现在编码格式正确了,但是新的问题来了:

error: command ‘C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\nvcc.exe’ failed 这是个什么玩意儿啊喂!!!

参考这里找到了一种我也不明白原理的方法:

https://github.com/NVIDIAGameWorks/kaolin/issues/135

it could resolve these 5 error. and for pytorch 1.4.0, additionally change 4 “constexpr” into “const” in
/python37/lib/site-packages/torch/include\torch/csrc/jit/script/module.h

pytorch change:
​
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); }

现在:

将上述3个文件中进行修改之后完美运行了python setup.py install以及python setup.py develop,这里重点是修改上述三个文件,一定要耐着性子去修改。

然鹅,新的问题是:

fatal error C1083: 无法打开包括文件: “bits/stdc++.h”: No such file or directory

这个少了头文件的好解决一点:

参考这里解决了这个问题:

https://blog.csdn.net/weixin_44983545/article/details/107166104

接下来就是数据集的下载了,按照GitHub上面GRNet作者的流程跑就没有问题。

参考一下我的配置:CUDA10.1 // cudnn8.0.5 // python3.7.0 // pytorch1.4.0 // vs 2019 社区版,其他的按照requirement.txt配置就可以

我的文章里给出的是我在配置GRNet过程中遇到问题的全过程,具体解决方法可以参考链接里面,比我的要详细,复现这个GRNet还是比较吃力的,主要之前没有接触过混合编译,这一块的原理我也不是很明白,希望未来再去搞懂吧。

你可能感兴趣的:(解决问题心得,windows,python,pytorch)