mit BEVFusion最强环境安装,部署复现( 二 )


(2)创建虚拟环境并安装torch
conda create -n bevfusion_mit python=3.8#在安装torch的时候指定cuda版本,不容易出问题,cu113指cuda 11.3pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html
(3)安装下列...
#安装mmcv的时候同样指定cuda和torch版本,cu113指cuda 11.3pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.htmlpip install mmdet==2.20.0conda install openmpiconda install mpi4pypip install Pillow==8.4.0pip install tqdmpip install torchpackpip install nuscenes-devkitpip install ninjapip install numpy==1.19.5pip install numba==0.48.0pip install shapely==1.8.0
(4)下载代码并做一些小修改
git clone https://github.com/mit-han-lab/bevfusion.git
1.把/ops//src/.cu里面的4096都改成256
2.对于编译脚本 setup.py,需要把显卡算力改成自己对应的 。在下面这个链接里查出你的显卡对应的算力,然后选择用哪一行:
【mitBEVFusion最强环境安装,部署复现】"-=arch=,code=sm_70"
"-=arch=,code=sm_75"
"-=arch=,code=sm_80"
"-=arch=,code=sm_86"
CUDA GPUs -|查到3060显卡的算力为86.
3.开始编译
python setup.py develop
4.数据准备
(1)下载数据集,如果有需要就下载完整版,学习代码可以下载mini
官网:
(2) 把文件夹格式改成下面这个样子,注意这个单词全部小写 。
#正常版本,结构如下:bevfusion-mit├── tools├── configs├── data│├── nuscenes││├── maps││├── samples││├── sweeps││├── lidarseg (optional)││├── v1.0-test||├── v1.0-trainval#如果下载的是mini版本,结构如下:bevfusion-mit├── tools├── configs├── data│├── nuscenes││├── maps││├── samples││├── sweeps││├── v1.0-mini
注意:还要下载Mappack(v1.3) 然后解压到maps文件夹中 。否则后面运行的时候会报错!
(3)接下来运行数据转换的脚本
#同样的,如果是正常版本,运行:python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes#如果是mini版本,运行:python tools/create_data.pynuscenes --root-path ./data/nuscenes/ --version v1.0-mini --out-dir data/nuscenes/ --extra-tag nuscenes
转换的过程如下所示:
完成之后,文件夹是这样的,增加了几个.pkl文件和 。
#正常版本:├── data│├── nuscenes││├── maps││├── samples││├── sweeps││├── lidarseg (optional)││├── v1.0-test||├── v1.0-trainval││├── nuscenes_database││├── nuscenes_infos_train.pkl││├── nuscenes_infos_val.pkl││├── nuscenes_infos_test.pkl││├── nuscenes_dbinfos_train.pkl#mini版本├── data│├── nuscenes││├── maps││├── samples││├── sweeps││├── v1.0-mini││├── nuscenes_database││├── nuscenes_infos_train.pkl││├── nuscenes_infos_val.pkl││├── nuscenes_dbinfos_train.pkl
我用的是mini,全部完成之后是这样的:
(4)下载预训练权重
5.终端训练与测试(1)训练,官方给的是分布式训练:
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
训练结束
训练时如果报显存溢出,把这两个调到最小: