admin 管理员组

文章数量: 887021

maskrcnn

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

参考:


以下是低版本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更新

今天重做了系统,遇到了几个问题。

  1. 重做系统后出现循环登录。
    这是因为显卡驱动安装的不对,需要在sudo ./nvidia-driver.run后面加上-no-opengl-filesno-x-check-no-nouveau-check三个参数。
  2. 在编译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"

即可编译成功。


本文标签: maskrcnn