maskrcnn-benchmark安装过程
记录Facebookresearch发布的maskrcnn-benchmark安装过程。
3月27日更新
实验室服务器环境突然坏了,所以决定在自己电脑上配置环境。(曾经尝试把程序里的maskrcnn-benchmark换成detectron2,不出所料改得一塌糊涂然后被迫放弃。)
安装环境
Ubuntu20.04 CUDA:11.1 pytorch:1.8.0 torchvision:0.9.0
之所以按照上述安装说明无法编译maskrcnn-benchmark,是因为之前的CUDA源代码太老了,函数名和现在的对不上,所以修改函数名即可成功编译。
cuda_dir="maskrcnn_benchmark/csrc/cuda
perl -i -pe 's/AT_CHECK/TORCH_CHECK/' $cuda_dir/deform_pool_cuda.cu $cuda_dir/deform_conv_cuda.cu
python3 setup.py build develop
参考:
https://github.com/facebookresearch/maskrcnn-benchmark/issues/1274
以下是低版本Pytorch安装过程。
安装环境
Ubuntu16.04 CUDA:9.0 pytorch:1.0.1 torchvision:0.2.2
在依照bddoia_project给出的Install.md安装过程中,cocoapi和cityscapes两个包安装的都很顺利,只有编译maskrcnn-benchmark和apex过程中,出现了错误。
其中,maskrcnn-benchmark的错误是RuntimeError: Error compiling objects for extension
或者编译结束后出现ImportError: /data/repos/maskrcnn-benchmark/maskrcnn_benchmark/_C.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN2at18SparseCUDATensorIdEv
错误,这是由于torchvision版本太高(>0.3)的原因,具体参考。只需要安装低版本pytorch和torchvision,删除build文件夹后rebuild即可。
而apex在编译过程中可能会出现cuda版本过高的问题,当前Github上下载的apex应该是支持cuda>10,所以如果cuda版本过低,需要找到对应版本的apex,在这里提供一个cuda9.0使用的apex。
2022/3/10更新
今天重做了系统,遇到了几个问题。
- 重做系统后出现循环登录。
这是因为显卡驱动安装的不对,需要在sudo ./nvidia-driver.run
后面加上-no-opengl-files
,no-x-check
和-no-nouveau-check
三个参数。 - 在编译Maskrcnn和apex时候出现了新的问题:
error: command ':/usr/local/cuda-9.0/bin/nvcc' failed with exit status 1
有些博文给出的解释是CUDA环境变量出了问题,原环境变量参考了该博客的写法,参考该文修改了环境变量结果后,在终端框中不管输入什么都会报错:The command could not be located because '/usr/bin' is not included in the PATH environment variable
,查阅后知这是因为环境变量混乱造成的。解决方法是:export PATH="/usr/bin:$PATH"
即可编译成功。