文章目录
1. 基础环境
MIT的bevfusion
训练代码对pytorch有要求,所以需要找到对应的CUDA版本,这里我安装的是11.3版本。
- Linux(Ubuntu 18.04)
- CUDA version:11.3
2. openmpi安装
下载安装openmpi,要不然会报mpi错误。
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.4.tar.gz
解压
cd openmpi-4.1.4
./configure –prefix=/usr/local/openmpi
make -j8
sudo make install
~/.bashrc文件里添加环境变量:
MPI_HOME=/usr/local/openmpi
OMPI_MCA_opal_cuda_support=true
export PATH=${MPI_HOME}/bin:$PATH
export LD_LIBRARY_PATH=${MPI_HOME}/lib:$LD_LIBRARY_PATH
export MANPATH=${MPI_HOME}/share/man:$MANPATH
测试安装是否成功:
cd openmpi-x.x.x/examples
make
mpirun -np 4 hello_c
3. python类环境安装
照抄就行,经过验证。如果你的cuda不是11.03,可以进入pytorch官网查询需要安装的torch版本。
# 1 创建虚拟环境
conda create -n bevfusion python=3.8
# 2 激活虚拟环境
conda activate bevfusion
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge
pip install Pillow==8.4.0 tqdm torchpack nuscenes-devkit mpi4py==3.0.3 numba==0.48.0 setuptools==58.0.4 ninja==1.11.1 numpy==1.23.4 opencv-python==4.8.0.74 opencv-python-headless==4.8.0.74 yapf==0.40.1
# mmcv安装,注意cuda和torch版本号
# 可以进官网查询相应版本:https://mmcv.readthedocs.io/zh-cn/latest/get_started/installation.html#pip
pip install mmcv==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10/index.html
# 安装mmdet==2.20.0
pip install mmdet==2.20.0
4. 训练与评测
(1)数据预处理
#如果是正常版本,运行:
python tools/create_data.py nuscenes \
--root-path ./data/nuscenes \
--out-dir ./data/nuscenes \
--workers 16 \
--extra-tag nuscenes
#如果是mini版本,运行:
python tools/create_data.py nuscenes --root-path ./data/nuscenes/ --version v1.0-mini --out-dir data/nuscenes/ --extra-tag nuscenes
(2) 训练
torchpack dist-run -np 8 python tools/train.py \
configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/convfuser.yaml \
--model.encoders.camera.backbone.init_cfg.checkpoint \
pretrained/swint-nuimages-pretrained.pth \
--load_from pretrained/lidar-only-det.pth
成功后效果如下:
(3) 评测
torchpack dist-run -np 8 python tools/test.py \
configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/convfuser.yaml \
pretrained/bevfusion-det.pth \
--eval bbox
5. 报错及解决
(1)yapf版本问题
报错信息
:
TypeError: FormatCode() got an unexpected keyword argument ‘verify’
解决
:yapf包的版本问题,降低为yapf==0.40.1
pip install yapf==0.40.1
(2)setuptools版本问题
报错信息
:
AttributeError: module ‘distutils’ has no attribute ‘version’
解决
:setuptools版本过高导致
pip install setuptools==58.0.4
(3)spconv版本问题
报错信息
:
N > 0 assert faild. CUDA kernel launch blocks must be positive, but got N= 0
解决
:setuptools版本过高导致
# cuda是10.2版本
pip install spconv-cu102
# cuda是11.3版本
pip install spconv-cu113
也可能是cuda与torch版本不匹配,需要进pytorch官网查询对应版本。
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge