环境:拯救者R9000P 3070显卡 ubuntu20.4
步骤:1:安装显卡驱动
安装完系统后先检查是否有显卡图形驱动,在安装ubuntu20.4的时候连接网络,直接按下面选择安装三方软件和驱动即可自动安装显卡图形驱动
安装成功可用nvidia-smi查看是否成功。
如果没有则可以按win搜索software在Addtional Drivers中安装
步骤 2:安装anaconda
步骤 3:安装cuda11.1
注意:如果已经安装的别的版本的cuda,可以直接下载新版本的进行安装覆盖。可以进入/usr/local目录下查看cuda的软链接
经查修改这个这个软链接和bashrc可以实现多个cuda版本共存,nvcc -V查看版本。
步骤 4:新建conda环境,(注意pytorch和cuda一定是如下面严格对应的)
安装pytorch1.8,最好用官方的,如果实在慢的受不了试换清华源
附:清华源,可以直接放在~/.condarc下
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
步骤 5:按照官网下载对应的代码,依赖,然后编译即可
注意:在安装numba时候建议安装0.49.0版本,及pip install numba==0.49.0
编译:sh build_and_install.sh时候报错
error: identifier “THCState_getCurrentStream“ is undefined
将src/cuda/dcn_v2_cuda.cu 文件中的THCState_getCurrentStream(state)都替换为c10::cuda::getCurrentCUDAStream()
error: ‘AT_CHECK’ was not declared in this scope
错误原因:AT_CHECK is deprecated in torch 1.5
高版本的pytorch不再使用AT_CHECK,而是使用 TORCH_CHECK。
快速推理的结果:
附录,完整conda环境
---------------------------------------------------------------------------------------------------------------------------------
测试完后发现预测结果好像和kitti数据集的标签有很大出路,明显车多了很多,
于是接着可视化看标签结果和预测结果的对比
可视化:
按照作者的要求安装环境
注意:这里我的python换成了3.6版本,安装3.7版本的时候报了下面的错误
AttributeError: module 'vtkmodules.all' has no attribute 'vtkGenericRenderWindowInteractor'
目录组织:
在PointRCNN/data/KITTI/object/training新建一个pred并ln -s 软链接到pointrcnn的预测目录
在Kitti_vis/kitti_object_vis/data/object软链接到PointRCNN/data/KITTI/object
python3 kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes -p
在终端按回车进行切换图片
有些标签没打的车也被识别出来了,绿色是标签,红色是预测(当然有很多也是误识别)
---------------------------------------------------------------------------------------------------------------
下面是训练和tensorboard的曲线查看
参考这篇 过程没有问题
先训练150个epoch个rpn网络产生下面的文件
python generate_gt_database.py --class_name 'Car' --split train
python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 8 --train_mode rpn --epochs 200
安装tensorflow(不知道是不是必须的)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu
进PointRCNN/output/rpn/default
打开终端 ,
tensorboard --logdir tensorboard
注意这里我只训练和rpn网络,所以先看这个
下面进行RCNN网络训练
python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 2 --train_mode rcnn --epochs 70 --ckpt_save_interval 2 --rpn_ckpt ../output/rpn/default/ckpt/checkpoint_epoch_150.pth
我观察到损失趋于问题,我就在epoch等于20的时候停止了
接下来使用自己的训练的进行推理
python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt ../output/rcnn/default/ckpt/checkpoint_epoch_20.pth --batch_size 2 --eval_mode rcnn
结果在上面的out file
----------------------------------------------------------------------------------------------------------------
下面是错误过程经历:
尝试了 cuda10.0 cuda10.1 搭配 pytorch1.00 ,1.20 1.40 1.70 全部都在不同的环节出错或者运行推算的代码直接卡在导入数据环节。网上大部分方法均试过,无效。cuda11也报错。
常见错误1 :
nvcc fatal : Unsupported gpu architecture ‘compute_86‘
CUDA算力高于当前PyTorch版本支持的CUDA算力
export TORCH_CUDA_ARCH_LIST="7.5" or 8.0无效
安装 cuda11.1 可解决。
注意:这里一定不要忘了在bashrc中加入下面命令,且版本要对好。
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
常见错误2 :'iou3d_cuda问题,试过很多解决办法,最后只能换cuda和pytorch版本解决
常见错误3 :终端编译报错进入Pycharm中编译成功