mmdetection3d环境配置过程error大全

最近在研究点云的3d detection,发现一个挺好的框架:mmdet3d,入坑了。配置环境过程中遇到了一系列的问题,现记录下来:
1.undefined symbol: _ZN3c107Warning4warnENS_14SourceLocationERKSsb
应该是mmcv-full、pytorch、cuda这些版本不匹配原因
尝试过
torch1.3.1+mmcv-full1.3.1 ×
torch1.7.1+mmcv-full1.3.1 ×
最后按recommend的
conda install pytorch1.5.0 cudatoolkit=10.1 torchvision0.6.0 -c pytorch
即torch1.5.1+mmcv-full1.3.1 √

2.import pycocotools._mask as _mask
File “pycocotools/_mask.pyx”, line 1, in init pycocotools._mask
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

应该是pycocotools的问题,按照重新配置了一下numpy的版本,原本是1.19

pycocotools==2.0.2
numpy==1.20.2

3.ImportError: cannot import name ‘ball_query_ext’ from ‘mmdet3d.ops.ball_query’ (/opt/sdatmp/lq/project/gitproject/mmdetection3d/mmdet3d/ops/ball_query/init.py)
感觉是编译的时候,目录应该多一级/src/:
warning: no files found matching ‘mmdet3d/ops//*.cpp’
warning: no files found matching 'mmdet3d/ops/
/.cu’
warning: no files found matching 'mmdet3d/ops/**/
.h’
warning: no files found matching ‘mmdet3d/ops/**/*.cc’
warning: no files found matching ‘mmdet3d/VERSION’

替换gcc版本为5.5,ubuntu18.04下安装多个版本的gcc并随时替换,然后重新运行pip install -v -e .
import报同样的错,编译时报的错稍有不同
在这里插入图片描述
编译时有很多 changing mode 755的输出
在这里插入图片描述

运行mmdet3d.utils.collect_env.py时,输出的环境信息如下:
在这里插入图片描述
可能是因为mmdet是用gcc7.3编译的,和mmdet3d用gcc5.5不一致,于是重新创建一个虚拟环境,从头开始配置一遍试试
还是不行
难道是g++也要修改版本?
知乎大佬说g++也要5.4,好吧,开始我的第三次尝试

sudo apt install gcc-5 g++-5

查看路径下是否存在多版本的gcc/g++

ls /usr/bin/gcc*
ls /usr/bin/g++*

指定软连接gcc-5和g+±5

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 80 --slave /usr/bin/g++ g++ /usr/bin/g++-5

最后测试一下,分别都是对应版本5.5.0

gcc -v
g++ -v

终于successful了,喜极而泣啊!!!!
在这里插入图片描述
最后

多个版本cuda,当想使用其中某个版本时,为其创建软连接:

sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda

后来运行过程中依然报错:
在这里插入图片描述

可能的问题:安装cuda的时候用的gcc编译版本和后面安装mmdet的时候不一致
解决方案:在gcc5.5、g++5.5的环境下重新安装cuda11.1,
在这里插入图片描述
安装cuda11.1过程:
直接在官网上安装deb包,用dpkg会报一系列的版本依赖错误,所以改用安装.run文件,并按照Ubuntu18.04安装cuda11.1方法安装
在这里插入图片描述
在这里插入图片描述
cuda教程中配置环境变量时少了一条,整体应该是:

# cuda 11.1
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-11.1

接着安装pytorch1.8.1

conda install pytorch torchvision torchaudio cudatoolkit=11.1

open3d的版本要装0.11的,0.12会报错
‘NoneType’ object has no attribute ‘point_size’

最后就装好啦,运行一下demo试试

在这里插入图片描述
总结:
运行python ./mmdet3d/utils/collect_env.py,查看当前的环境
在这里插入图片描述

  • 11
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值