说明:安装detectron2直接进到官网 detectron2源码 中找安装文档,安装安装文档一般没什么问题,但是我确实出现了问题,包括有:
gcc
版本太低:提示说需要gcc 9
及以上的版本才可以pytorch
版本不匹配:要跟nvcc -V
的输出版本对应demo
中demo.py
文件:找不到vision
这个类
问题1: GCC版本低的问题
错误提示:#error "You're trying to build PyTorch with a too old version of GCC. We need GCC 9 or later."
解决方案:可以通过sudo find / -name gcc
看看系统中有没有其他版本的gcc
- 如果没有,则安装高版本的gcc即可,这里不在赘述
- 如果有其他版本的gcc: 复制gcc路径然后-v看版本,满足的话可以通过软链接的方式修改,过程如下:
(1)看当前gcc版本路路径which gcc
和which g++
(2)查看高版本的路径,由sudo find / -name gcc
中高版本的路径得到
(3)将当前gcc版本路径的gcc 和 g++进行一个备份,备份的名称自定义,我的是后边加了版本号,路径根据(1)中实际显示路径修改,sudo mv 老路径 自定义的文件备份路径
sudo mv /usr/local/bin/gcc /usr/local/bin/gcc7.5
sudo mv /usr/local/bin/g++ /usr/local/bin/g++7.5
(4)新建软件链接,链接新的版本路径,路径根据自己实际路径进行修改,sudo ln -s 新版本路径 老版本路径
sudo ln -s /opt/software/gcc-11.2/gcc-11.2.0/bin/gcc /usr/local/bin/gcc
sudo ln -s /opt/software/gcc-11.2/gcc-11.2.0/bin/g++ /usr/local/bin/g++
(5)查看是否更新:gcc -v
和g++ -v
问题2:pytorch版本不正确
错误提示: nvcc fatal : Unsupported gpu architecture 'compute_89'
解决办法:
(1)先看看系统中需要的cuda版本:nvcc -V
, 我这里显示的11.6,但是我再pytorch的时候安装的是11.8的pytorch
(2)到pytorch官网以前版本,找到对应cuda版本的pytorch下载
问题3:没有vision类
错误提示:当安装好detectron2时,对其demo进行测试的时候,例如:python3 demo.py --config-file ../configs/COCO-Detection/faster_rcnn_R_50 _FPN_3x.yaml --input ../img/1.jpg --output ../img/1_1.jpg --opts MODEL.WEIGHTS detectron2://COCO-Detection/faster_ rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl
, 就会报错误:
from vision.fair.detectron2.demo.predictor import VisualizationDemo
ModuleNotFoundError: No module named 'vision'
其实from vision.fair.detectron2.demo.predictor import VisualizationDemo
中的VisualizationDemo
就在demo
文件夹下的predictor.py
文件中,其实不需要前面的。
解决方案:进入到demo.py文件中把from vision.fair.detectron2.demo.predictor import VisualizationDemo
修改为from predictor import VisualizationDemo
即可
问题4:“ImportError: dlopen: cannot load any more object with static TLS”
解决办法:参考博客stereopy安装记录 & 不同环境里“ImportError: dlopen: cannot load any more object with static TLS”的解决办法 超级好用