跑通PCDet上的那些坑——复现second PV-RCNN pointpillar

1.配环境

1.1 安装显卡驱动、安装cuda、安装cudnn、卸载cuda

需要有显卡才能装驱动。驱动是装在显卡上。装了驱动才能装cuda,装了cuda才能装cudnn。

  1. 驱动安装:针对Ubuntu用户,直接在“系统设置”-->“软件更新”-->"附加驱动"中安装就好了,很省事的。建议驱动版本选择高一点的,以防后面你要
  2. cuda安装:请大家移步相关博客。注意:一定下载runfile文件,按照指示安装就好了。另外值得一提的是,我好像没有很多帖子最后提到的更改环境变量那个操作。整个过程很快的,也不麻烦。

  3. cudnn安装:先去官网下载相关文件,然后:

    tar -xzvf cudnn-9.0-linux-x64-v7.tgz # 解压
    
    sudo cp cuda/include/cudnn.h /usr/local/cuda/include # copy两个文件
    
    sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
    
    sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* # 设置文件权限

    验证是否安装成功:

    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

    如果显示下列信息,则安装成功:

    #define CUDNN_MAJOR 7
    #define CUDNN_MINOR 6
    #define CUDNN_PATCHLEVEL 2
    --
    #define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

     

  4. 多个cuda:有时候我们需要安装多个版本cuda。其实并不麻烦,大家参考这篇:安装多版本 cuda ,多版本之间切换。注意:安装多个cuda,需要安装对应的cudnn,但我们只需要安装一次驱动,这也是为什么我让大家把驱动的版本装高一点。

  5. 卸载cuda. 有的博客说可以运行一个uninstall的文件,但是我之前手残装上的cuda11.0没有这个文件,我用下面的命令卸载的。
sudo apt-get purge nvidia*
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /usr/local/cuda*

 

下面是坑:不要相信nvidia-smi命令显示的结果!!!即使是你没有装cuda,上面也有可能显示你的cuda版本是10.0或者其他版本。要查看cuda版本,请使用下列命令。

nvcc --version #查看cuda版本

1.2 安装spconv

  1. 到处是坑:pcdet要求的spconv版本为v1.0,但是目前github上已经找不到v1.0版本了。所以给大家安利另一位大神的repo:https://github.com/LittleYuanzi/spconv1.0 (写这篇博客的时候pcdet还是0.2版本,现在应该是可以使用spconv1.2版本了,安装应该比较简单)
  2. 注意git的时候一定要加 --recursive
  3. sudo apt-get install libboostall-dev 实际为 sudo apt-get install libboost-all-dev
  4. Download cmake >= 3.13.2, then add cmake executables to PATH.的意思是 pip install cmake #这一条我看了半个月没看懂
  5. 运行python setup.py bdist_wheel大概率出错。总结一下大概有一下几点:1.请把/src/spconv/all.cc中的jit::删掉;2.可能是你的pytorch版本太高或者太低,据我所知,pytorch==1.4.0应该是没有问题的。注意安装的时候加上-c pytorch,不然很可能编译报错,也就是使用命令:
    conda install pytorch==1.4.0 torchvision==0.5.0 -c pytorch

     

  6. 但是如果装的是spconv1.2就没有这么多问题。直接在https://github.com/traveller59/spconv拉下来就好了,但是也要注意pytorch的版本问题。

2.跑程序

2.1 训练

python train.py --cfg_file ./cfgs/kitti/pointpillars.yaml --batch_size 1 --epochs 40

 

2.2 验证

python test.py --cfg_file ./cfgs/kitti/pointpillars.yaml --batch_size 1 --ckpt ../output/....

3.总结 

 

你可能感兴趣的:(算法,自动驾驶,深度学习,pytorch)