OpenPCDet——环境配置和训练测试(升级系统、Nvidia驱动、cuda11.3、cudnn8.2)
文章目录
笔记本显卡驱动NVIDIA 418,cuda9.0 比较旧,和工作环境不兼容,导致tensorRT装版本也不一致,决定把显卡升级到最新的驱动
机器型号
系统:升级到ubuntu18
笔记本显卡型号:GTX1070
cuda:cuda9.2升级到cuda11.3
升级系统
由ubuntu16升级到ubuntu18
- 更新资源
sudo apt-get update
sudo apt-get upgrade
sudo apt dist-upgrade
- 安装update-manager-core
sudo apt-get install update-manager-core
- 更新16.04到18.04
sudo do-release-upgrade
执行上一步命令后,会自动升级系统。
- 清理无用的安装包
sudo apt-get remove
- 查看版本信息
sudo lsb_release -a
NVIDIA 驱动升级
sudo apt-get remove --purge nvidia*
sudo sh NVIDIA-Linux-x86_64-418.56.run --uninstall
禁用nouveau
sudo gedit /etc/modprobe.d/blacklist.conf
在文末添加:blacklist nouveau
保存后执行:
sudo update-initramfs -u
重启,重启会出现屏幕尺寸不正常,因为禁用了ubuntu自带的图形处理
reboot
若无输出代表禁用nouveau生效
lsmod | grep nouveau
查看当前显卡型号,及推荐安装的驱动
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
ubuntu-drivers devices
这里我没有用推荐的显卡驱动,直接去官网下载最新:https://www.nvidia.cn/geforce/drivers/
点击开始搜索,下载最新的驱动安装
sudo chmod a+x NVIDIA-Linux-x86_64-510.68.02.run
sudo ./NVIDIA-Linux-x86_64-510.68.02.run -no-x-check -no-nouveau-check -no-opengl-files
-
-no-x-check:安装驱动时关闭X服务
-
-no-nouveau-check:安装驱动时禁用nouveau
-
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
挂载Nvidia驱动:
modprobe nvidia
检查驱动是否安装成功:
nvidia-smi
重启下:
sudo reboot
cuda安装
先卸载旧cuda
sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove --autoremove nvidia-cuda-toolkit
然后切换到CUDA所在目录:
cd /usr/local/
删除CUDA-9.0目录:
sudo rm -rf cuda-9.0/
查看cuda和NVIDIA驱动的对应关系:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
看pytorch最新只支持cuda11.3,这里我下载cuda11.3
cuda下载:
下载cuda11.3安装
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
sudo sh cuda_11.3.0_465.19.01_linux.run
添加环境变量
sudo vim ~/.bashrc
文件末尾添加:
#CUDA
export PATH=/usr/local/cuda-11.3/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH
保存退出后激活
source ~/.bashrc
创建链接文件
sudo vim /etc/ld.so.conf.d/cuda.conf
# 文件添加:
/usr/local/cuda-11.3/lib64
# 保存退出后执行:
sudo ldconfig
查看cuda版本:
nvcc -V
也可以测试下:
cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
cudnn安装
https://developer.nvidia.com/rdp/cudnn-download
下载cudnn-11.3-linux-x64-v8.2.0.53.tgz
安装
tar -zxvf cudnn-11.3-linux-x64-v8.2.0.53.tgz
sudo cp cuda/lib64/* /usr/local/cuda/lib64/
sudo cp cuda/include/* /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
**测试cudnn**
- 复制cudnn_samples_v8到home下
```bash
cp -r /usr/src/cudnn_samples_v8 ~/
- 进入mnistCUDNN目录下编译并测试
cd ~/cudnn_samples_v8/mnistCUDNN/
make clean && make -j8
./mnistCUDNN
若出现Test passed!,则表示cudnn安装成功
conda安装
下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh
安装:
bash Anaconda3-2021.11-Linux-x86_64.sh
将anaconda添加到用户环境变量中
export PATH="/home/xiaohu/anaconda3/bin:$PATH"
conda create -n cuda11.3_python3.7 python=3.7
conda activate cuda11.3_python3.7
其他conda命令:
# 退出环境
conda deactivate
# 重命名环境将 --clone 后面的环境重命名成 -n 后面的名字)
conda create -n python37 --clone python3.7
# 列举虚拟环境
conda env list
pytorch安装
https://pytorch.org/get-started/locally/
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
后续安装opcdet安装会出现如下问题:
升级到ubuntu18,就出现这问题,THC/THC.h: 没有那个文件或目录
发现时pytorch在最新的版(1.11)本中将THC/THC.h文件删除,降低pytorch版本为1.10
改装pytorch1.10.1
# conda install pytorch torchvision -c pytorch
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
pytorch下载很慢,去清华镜像源下载对应版本的pytorch,下载后conda本地安装
conda install --use-local ~/下载/pytorch-1.10.1-py3.7_cuda11.3_cudnn8.2.0_0.tar.bz2
conda install --use-local ~/下载/torchvision-0.11.2-py37_cu113.tar.bz2
再次执行
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
升级cmake
下载cmake:官方下载地址为:https://cmake.org/download/
tar -xvzf cmake-3.22.4-linux-x86_64.tar.gz
sudo mv cmake-3.22.4-linux-x86_64 /opt/cmake-3.22.4
# 创建软链接
sudo ln -sf /opt/cmake-3.22.4/bin/* /usr/bin/
查看cmake版本:
cmake --version
安装spconv
pip install spconv-cu113
git clone https://github.com/traveller59/spconv.git --recursive
cd spconv/
安装pccm模块
pip install pccm
python setup.py bdist_wheel
cd ./dist
pip install *
检验spconv是否安装成功,无报错即可
OpenPCDet安装
git clone https://github.com/open-mmlab/OpenPCDet.git
cd OpenPCDet
# 下载会比较慢,换成清华源快速安装依赖python包
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python setup.py develop
检验是否安装成功
python
import pcdet
kitti训练和测试
下载数据:http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d
百度云链接: https://pan.baidu.com/s/1ByW3OA-wEShdUcuetNf-5g 提取码: u16i
准备数据
1.建立软连接
cd OpenPCDet/data/kitti
ln -s /media/xiaohu/xiaohu/new\ start/数据集/激光/object/training training
ln -s /media/xiaohu/xiaohu/new\ start/数据集/激光/object/testing testing
数据集格式
├── ImageSets
│ ├── test.txt
│ ├── train.txt
│ └── val.txt
├── testing -> /media/xiaohu/xiaohu/new start/数据集/激光/object/testing
└── training -> /media/xiaohu/xiaohu/new start/数据集/激光/object/training
# training
├── calib
├── image_2
├── label_2
└── velodyne
# testing
├── calib
├── image_2
└── velodyne
数据预处理
2.准备数据:
生成数据pkl文件和gt_database文件夹
python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml
训练
- 单卡训练
cd tools
python train.py --cfg_file cfgs/kitti_models/pointpillar.yaml
# 多卡训练
CUDA_VISIBLE_DEVICES=5,6,7 python -m torch.distributed.launch --nproc_per_node=3 tools/train.py --cfg_file tools/cfgs/kitti_models/pointpillar.yaml --launcher pytorch
sh scripts/dist_train.sh 8 --cfg_file tools/cfgs/kitti_models/pointpillar.yaml
没有roadplane数据,设置下pointpillar.yaml中USE_ROAD_PLANE字段:
USE_ROAD_PLANE: False
tensorBoard可视化:
cd output/kitti_models/pointpillar/default/
tensorboard --logdir tensorboard/
笔记本显卡不行,我这里就不训练了
测试
先安装VTK和mayavi
pip安装太慢了,离线下载mayavi安装:https://pypi.org/project/mayavi/#files
pip install vtk==8.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
python3 -m pip install ~/下载/mayavi-4.7.4.tar.gz -i https://pypi.tuna.tsinghua.edu.cn/simple
验证模型
运行test.py脚本验证模型在测试集上的性能
#inside the OpenPCDet project
cd tools
python test.py --cfg_file cfgs/kitti_models/pointpillar.yaml --batch_size 4 --ckpt ../output/kitti_models/pointpillar/default/ckpt/checkpoint_epoch_80.pth
运行demo.py可视化模型在测试集上的推理效果
python demo.py --cfg_file cfgs/kitti_models/pointpillar.yaml --data_path ../data/kitti/testing/velodyne/000099.bin --ckpt ../output/kitti_models/pointpillar/default/ckpt/checkpoint_epoch_80.pth
nuscenes训练和测试
数据预处理
1.链接数据
OpenPCDet
├── data
│ ├── nuscenes
│ │ │── v1.0-trainval (or v1.0-mini if you use mini)
│ │ │ │── samples
│ │ │ │── sweeps
│ │ │ │── maps
│ │ │ │── v1.0-trainval
├── pcdet
├── tools
2.准备数据:
生成数据pkl文件和gt_database文件夹
python -m pcdet.datasets.nuscenes.nuscenes_dataset --func create_nuscenes_infos \
--cfg_file tools/cfgs/dataset_configs/nuscenes_dataset.yaml \
--version v1.0-trainval
训练
# 单卡训练
cd tools
python train.py --cfg_file cfgs/nuscenes_models/cbgs_voxel0075_res3d_centerpoint.yaml
# 多卡训练
CUDA_VISIBLE_DEVICES=5,6,7 python -m torch.distributed.launch --nproc_per_node=3 tools/train.py --cfg_file tools/nuscenes_models/cbgs_voxel0075_res3d_centerpoint.yaml --launcher pytorch
测试
运行test.py脚本验证模型在测试集上的性能
#inside the OpenPCDet project
cd tools
python test.py --cfg_file cfgs/nuscenes_models/cbgs_voxel0075_res3d_centerpoint.yaml --batch_size 4 --ckpt ../output/nuscenes_models/cbgs_voxel0075_res3d_centerpoint/default/ckpt/checkpoint_epoch_20.pth
onnx
pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnxsim -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnxruntime -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install ~/3D/TensorRT-8.2.3.0/graphsurgeon/graphsurgeon-0.4.5-py2.py3-none-any.whl
pip install ~/3D/TensorRT-8.2.3.0/onnx_graphsurgeon/onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
更多推荐
所有评论(0)