发布时间:2023-04-20 文章分类:电脑百科 投稿人:王小丽 字号: 默认 | | 超大 打印

CUDA环境

首先我们需要打上对应版本的显卡驱动:
【亲测可用】BEV Fusion (MIT) 环境配置
接下来下载CUDA包和CUDNN包:

wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run
sudo sh cuda_11.6.2_510.47.03_linux.run
wget https://developer.nvidia.com/compute/cudnn/secure/8.4.0/local_installers/11.6/cudnn-local-repo-ubuntu2004-8.4.0.27_1.0-1_amd64.deb
sudo apt install ./cudnn-local-repo-ubuntu2004-8.4.0.27_1.0-1_amd64.deb

打开 ~/.bashrc文件,添加以下内容到最后:

export CUDA_HOME=/usr/local/cuda-11.6
export PATH="/usr/local/cuda-11.6/bin:$PATH"
export LD_LIBRARY_PATH="/usr/lcoal/cuda-11.6/lib64:$LD_LIBRARY_PATH"

前置环境(可选)

需要安装openmpi(这个我也不确定需不需要,小伙伴们可以试试)
下载openmpi安装包:

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

【亲测可用】BEV Fusion (MIT) 环境配置

conda安装

找一个Anaconda或者miniconda下载安装:

bash Anaconda3-2021.05-Linux-x86_64.sh

正式环境配置

OK,准备完毕,开始正式配环境
首先创建一个虚拟环境:

conda create -n your_env_name python=3.8
conda activate your_env_name

接下来建议完全按照我的指令来,里面的版本问题我已经踩过坑了

pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html
pip install mmdet==2.20.0
conda install openmpi
conda install mpi4py
pip install Pillow==8.4.0
pip install tqdm
pip install torchpack
pip install nuscenes-devkit
pip install ninja
pip install numpy==1.19
pip install numba==0.48.0
pip install shapely==1.8.0

参数修改

贴上MIT版本BEV FUSION的地址,clone一下代码:

git clone https://github.com/mit-han-lab/bevfusion.git

以下两处需要改!
首先是这个文件,里面的4096都改成256,否则会爆显存。

mmdet3d/ops/spconv/src/indice_cuda.cu

接下来是 项目根目录的setup.py,需要把显卡算力改成自己对应的,其余的注释掉。例如我的3080是86(具体的算力对应大家可以查查)

"-gencode=arch=compute_86,code=sm_86"

数据集准备

需要下载nuscenes数据集,大概600多GB,解压之后,把train数据集(包括地图扩展包)放到项目文件夹的data/nuscenes目录下,如下红框所示:
【亲测可用】BEV Fusion (MIT) 环境配置
回到项目根目录,运行数据集生成脚本,大概跑1小时,最后会变成上图的样子:

python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes

运行代码

首先执行配置脚本:

python setup.py develop

接下来下载预训练参数:

./tools/download_pretrained.sh

最后执行训练指令,原文readme里-np后面是8,这里要改成1(因为我们PC上跑是单GPU),不然会卡住不动

torchpack dist-run -np 1 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

【亲测可用】BEV Fusion (MIT) 环境配置