OpenPCDet详细安装指南+单/多GPU训练演示
前言
本人总共花了两个晚上+一个下午安装,中间因为各种版本错误、版本不兼容报各种奇奇怪怪的错,遂记录下来,也希望对想要安装PCDet的朋友有所帮助。如果你的版本和我有所出入,没关系,跟着我的过程选择适合自己的版本;如果你的cuda版本正是11.1,可以无脑跟着我的过程来。
查看cuda版本:用nvcc -V
或nvcc --version
。
个人环境一览
安装环境
操作系统:ubuntu 16.04.1 x86_64
CUDA驱动:11.1
安装的各版本
Python=3.8
torch=1.8.1+cu111
torchvision=0.9.1+cu111
torchaudio=0.8.1
spconv=cu111
1. 创建conda虚拟环境
-
conda create -n your-env-name python=3.8
Python版本很重要:spconv2要求python版本>=3.6 < 3.9,PCDet要求python版本>=3.8。所以最后我只能选择3.8。
-
进入创建好的conda虚拟环境:
conda activate your-env-name
如果需要退出当前conda虚拟环境:conda deactivate
如果需要删除某个conda虚拟环境:conda remove -n your-env-name --all
2. 安装PyTorch
- 确保进入conda虚拟环境后,输入:
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
- 安装结束后,输入:
python
,进入python环境 import torch
- 输入
torch.cuda.is_available()
,如果返回true,则说明PyTorch安装成功。
如果需要寻找其他版本,可以到PyTorch官网:PyTorch历史版本。在该页面使用快捷键ctrl+f寻找目的版本。
3. 安装spconv
- 输入:
pip install spconv-cu111
- 安装结束后,输入:
python
,进入python环境 import spconv
,如果import成功,则说明安装成功。
如果需要其他版本,可以到spconv官网:spconv。只要spconv-cuda的版本大于你自己cuda的版本就行,但建议不要相差太大;比如说,你自己的cuda是11.0,你也可以安装spconv-cu111。
4. 安装PCDet
git clone https://github.com/open-mmlab/OpenPCDet.git
cd OpenPCDet
pip install -r requirements.txt
python setup.py develop
- 安装没有报错后,输入
python
,进入python环境 import pcdet
,如果import成功,说明安装成功。
2023.6.8补充:
如果遇到以下报错,将requirement.txt
中的json和cv2改成simplejson和opencv-python就行了。
5. 数据集
- 进入KITTI官网
- 进入3d object,下载点云数据。
- 将kitti数据集放在
OpenPCDet/data
目录下
或者直接在服务器上使用
wget
命令进行下载:wget -b https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_velodyne.zip
。-b
表示在后台下载,可以通过tail -f wget-log
命令显示下载进度。
6. 训练
进入OpenPCDet/tools
目录下。
单GPU训练
CUDA_VISIBLE_DEVICES=0 python train.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml
or
python train.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml
多GPU训练
CUDA_VISIBLE_DEVICES=4,5,6,7 python -m torch.distributed.launch --nproc_per_node=4 train.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --launcher pytorch
- CUDA_VISIBLE_DEVICES:选择GPU
- torch.distributed.launch:表明利用该工具进行分布式训练
- nproc_per_node:每个物理节点(机器)上有多少GPU。如果是单机器,就是你所用GPU的数量。
- cfg_file:配置文件,在
OpenPCDet/tools/cfgs
下。 --launcher pytorch
:表明使用PyTorch架构
7. 测试
CUDA_VISIBLE_DEVICES=4,5,6,7 python -m torch.distributed.launch --nproc_per_node=4 test.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --launcher pytorch --batch_size 4 --eval_all
- eval_all:测试后面的一系列epoch
8. 其他问题
具体问题,具体分析。版本很有可能不一样,但思路大致是这样。
1
问题描述
在用命令python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml
生成KITTI数据集时,遇到如下报错。
问题解决
- 首先检查数据集文件目录是否严格按照OpenPCDet的要求。
- 如果是,大概率是路径错误,进入
OpenPCDet/pcdet/datasets/kitti/kitti_dataset.py
,将下图所示红框内的的test
改成kitti
。
2 kornia版本和torcch版本不兼容
问题描述
先安装了torch1.8.1,然后安装kornia(pip会找合适版本的包找很久,最后找出来也不行),发现版本冲突问题。
问题解决
- 方法一:先安装kornia,默认是最新版本;再安装torch,但是这样torch版本也会很高,而我的cuda最高只支持114。
- 方法二:
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
pip install kornia==0.6.12