目录
- 写在前面的话
- Bug 汇总
- 1. python版本
- 2. cuda版本
- 3. mmdet3d版本
- 4. mmcv版本
- 5. mmdet版本
- 后期工作(看到numpy说明成功一半)
- 6. numpy版本
- 7. timm安装
- 8. yapf 版本
写在前面的话
主要的问题还是mmcv库的问题,这个版本维护太差了,新版本跟旧版本之间经常会有大改动,要跑通前几年的代码都要搞半天。
官方链接:BEVFusion Github链接
Bug 汇总
1. python版本
官方推荐 python=3.8.3
conda create -n bevf python=3.8.3
conda activate bevf
就按官方的来,因为python跟很多包的版本依赖相关。
2. cuda版本
这个版本指定的是安装torch时候的cudatookit版本,与nvcc -V那个无关,dddd。
按照官方推荐的torch版本是1.7.0,选择cuda10.1版本进行安装
# CUDA 10.1
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch
后面可能会遇到报错:
NVIDlA GeForce RTX 4090 D with CUDA capability sm_89
大致原因是cuda4090d 可以支持更高的算力,但是cuda过低限制了能力。要把这个限制改掉即可。
3. mmdet3d版本
注意: 这个要提前弄,要不后面更换版本又要重头弄一遍。
没使用下面命令编译mmdet3d的话会报错:Cannot import name ‘ball_query_ext’
python setup.py develop
编译的时候cuda版本过高会编译失败。
4. mmcv版本
工程简易版本是mmcv==1.4.0,但是运行报错
ModuieNotFoundError: No module named 'mmcv. ext
安装最新的mmcv==2.2.0,报错
ImportError: cannot import name ‘Config’ from ‘mmcv’
直接安装mmcv-full==1.4.0,成功
5. mmdet版本
使用工程自带的mmdetection-2.11.0文件夹进行编译即可:
cd mmdetection-2.11.0
pip install -r requirements/build.txt
pip install -v -e . # or "python setup.py develop"
后期工作(看到numpy说明成功一半)
6. numpy版本
AttributeError: module 'numpy’has no attribute long
版本大于1.19.5就会报错
pip install numpy==1.19.2
7. timm安装
ModuleNotFoundError: No module named ‘timm’
注意:这个安装会更新torch环境,危险系数很高!!
但是貌似没有解决的方法,很离谱。
pip install timm 安装会默认最新的,目前是1.0.9,同时会把我的torch更新到2.3,然后会有下面的报错:
ImpartError: /home/b12/anacanda3/envs/bevf lib/pvthan3.8/site-packaes/mcv. ext.cpython-38-x86 64-linux-gnu.so: undefined swmbol: Z2at6Tensor7is cudaE
# CUDA 10.1
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch
只能等timm安装完成再重装回来。但是timm版本不能太高,我使用1.0.9版本会报错,需要指定为0.4.5版本才行,我考虑到bevfusion论文是在2022年发表,版本需要往前推。否则汇报下面的错误:
AttributeError: module "torch’has no attribute ‘_running_with_deploy’
8. yapf 版本
我的当前版本是0.40.2,需要降到0.30.0,否则会有如下的报错
TypeError: FormatCode() got an unexpected keyword argument ‘verify’
pip install yapf==0.30.0