最近做雷达视觉前融合算法,在笔记本/服务器搭建深度学习环境,并运行模型验证,这里记录下过程和经验教训。

1、windows下环境配置

        笔记本是联想拯救者Y7000P,有一颗4060的GPU,8G显存,可以用来做基础验证。

        第1步,下载安装visual studio 2017专业版,可以某宝上购买密钥,购买后会给一个下载地址,安装完软件以后,打开软件,在帮助菜单找到,注册产品,输入密钥即可激活。

        第2步,安装anaconda最新版,安装教程参考:windows下的anaconda详细安装教程https://blog.csdn.net/weixin_52677672/article/details/133632708?ops_request_misc=%257B%2522request%255Fid%2522%253A%25223dab03433e664aabcad91eb43ffdc139%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=3dab03433e664aabcad91eb43ffdc139&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-133632708-null-null.142^v102^pc_search_result_base2&utm_term=windows%E5%AE%89%E8%A3%85anaconda&spm=1018.2226.3001.4187        注意,添加环境变量时由于C盘文件隐藏,需要显示可见。

        第3步,安装显卡驱动,在命令提示符中输入nvidia-smi可以看到gpu信息,这里系统自带,不需要安装:        

        第4步,下载cuda11.8并安装,安装成功后nvcc -V有显示

        安装过程可参考下面的博文:超详细win安装深度学习环境https://blog.csdn.net/imok1234567/article/details/140251769?ops_request_misc=%257B%2522request%255Fid%2522%253A%25221a782fed2be5bbb3ef01aa4ea12aceca%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=1a782fed2be5bbb3ef01aa4ea12aceca&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-140251769-null-null.142^v102^pc_search_result_base2&utm_term=windows%E5%AE%89%E8%A3%85cuda11.8&spm=1018.2226.3001.4187        第5步,打开anaconda,使用命令行创建深度学习环境rcbev,配置完成后进入工程目录,运行conda activate rcbev进行激活,最后使用命令得到推理结果:

python bevdepth\exps\nuscenes\mv\bev_depth_lss_r50_256x704_128x128_24e_2key.py --ckpt_path outputs\bev_depth_lss_r50_256x704_128x128_24e_2key\lightning_logs\version_0\checkpoints\epoch=23-step=10560.ckpt -e -b 1 --gpus 1

        结果生成在viz文件夹,需要删除才会生成新的。

        第6步,配置环境验证FastBEV进行配置,出现版本不兼容问题,无法解决,因此放弃。

2、ubuntu20.04下环境配置

        第1步,重装系统,参考如下博客:

超详细安装Ubuntu系统https://blog.csdn.net/qq_42108414/article/details/139417686       

        安装完成后,可以正常运行系统,但开机弹出ACPI错误,主要影响电源使用,电脑不能睡眠,否则无法启动,只能开机、关机。

        尝试多次重装系统,包括使用Ultra ISO制作引导盘、使用RUFUS制作引导盘,更新ubuntu系统,修改系统命令等,均无法解决ACPI问题,最终放弃。

        电脑只能处于开机、锁定和关机状态,不能合上屏幕,也不能挂起,否则不能正常使用。

        第2步,安装英伟达驱动,可参考如下博文:
【ubuntu20.04环境搭建】(驱动、CUDA、CUDNN、Anaconda安装)一文全搞定https://blog.csdn.net/qdu_zty/article/details/136584139?ops_request_misc=elastic_search_misc&request_id=67baabc2eb9e0a56303817c9de37216f&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-136584139-null-null.142

        然后安装cuda11.8,因为4060的最低版本是这个,安装可参考如下:

安装cuda11.8https://blog.csdn.net/2201_75663877/article/details/145207222?ops_request_misc=elastic_search_misc&request_id=c14981a808c7727afa483409f44c4115&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-145207222-null-null.142^v102^pc_search_result_base9&utm_term=cuda%E5%AE%89%E8%A3%8511.8&spm=1018.2226.3001.4187        cuda下载链接为:https://developer.nvidia.com/cuda-toolkit-archive

        第3步,安装anaconda,配置虚拟环境,这个比较简单,需要注意添加环境变量,如果有多个版本也可用如下方式进行切换:

3、FastBEV复现

        代码复现可以参考这篇博文,写得很详细。

FastBEV代码复现https://blog.csdn.net/qq_41920323/article/details/144486606?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-144486606-blog-129190315.235^v43^control&spm=1001.2101.3001.4242.1&utm_relevant_index=4        本人实践时安装的是cuda11.8,但创建cuda虚拟环境后安装的是一样的cuda11.3,一样能正常使用。

        有几处不一样的点,列举如下:

        第1点,复现生成数据时,运行

python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes --workers 10 --version v1.0-mini

        出现错误,这里需要安装ipdb库

        第2点,训练时缺少timm库,需要安装

        第3点,会报错,TypeError: FormatCode() got an unexpected keyword argument 'verify',解决方法参考下面第一个,成功运行训练

TypeError问题解决https://blog.csdn.net/m0_50758340/article/details/140634934?ops_request_misc=elastic_search_misc&request_id=a7135e8f9f2eb98bf8b15f1d46c06f1e&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-140634934-null-null.142^v102^pc_search_result_base9&utm_term=TypeError%3A%20FormatCode%28%29%20got%20an%20unexpected%20keyword%20argument%20verify&spm=1018.2226.3001.4187

4、LSS复现

        环境安装参考第3节FastBEV复现的内容,conda、python、torch可以一样,只是因为FastBEV中安装了额外的库,会与LSS冲突,所以需要重新建一个,并不需要下载新的cuda和torch。 但需要安装依赖包,下载源代码和数据,按照github的操作执行训练、推理等任务即可

LSS代码的复现与详细解读https://blog.csdn.net/zyw2002/article/details/128319169?ops_request_misc=elastic_search_misc&request_id=9d88e6c384ff0ca8b1115f5a9cf5de27&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-128319169-null-null.142^v102^pc_search_result_base9&utm_term=lss%E5%A4%8D%E7%8E%B0&spm=1018.2226.3001.4187

LSS代码仓https://github.com/nv-tlabs/lift-splat-shoot

        安装好环境后,主要是两个命令,评估性能用:

python main.py eval_model_iou mini --modelf=./model525000.pt --dataroot=./data/nuscenes --gpuid=0

        显示结果用:

python main.py viz_model_preds mini --modelf=./model525000.pt --dataroot=./data/nuscenes --map_folder=./data/nuscenes/mini --gpuid=0

5、升级驱动和cuda版本

        由于服务器H20的cuda版本为12.6,因此将cuda11.8升级,同时驱动不支持也要卸载重装,参考如下博文:

Ubuntu上卸载旧驱动重新安装NVIDIA驱动https://blog.csdn.net/ou1531037815/article/details/143563986?ops_request_misc=&request_id=&biz_id=102&utm_term=ubuntu%E4%B8%8A%E5%8D%B8%E8%BD%BD%E6%97%A7%E9%A9%B1%E5%8A%A8&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-143563986.nonecase&spm=1018.2226.3001.4187        测试发现LSS可以直接运行,FastBEV出现版本兼容问题,python3.8和cuda12.6不兼容。

        然后从MMCV官网找到,mmcv目前只支持python3.10,cuda到11.8,实际测试也是有问题,因此最终决定放弃,使用cuda11.8。

6、CRN复现

        CRN模型目前没有相关博文,可参考原始代码库:       CRN代码仓https://github.com/youngskkim/CRN

        使用4060显卡按照步骤安装cuda11.8成功,但后面安装 pytorch-lightning 报错
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html

        这里尝试把torch和cuda版本修改为FastBEV一样,可以正常安装,后续没有问题,也即

pip install torch==1.10.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install torchvision==0.11.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html

        后续注意几点:

        第1点,使用mini数据集,将mini改为trainval,如下面所示:

CRN
├── data
│   ├── nuScenes
│   │   ├── nuscenes_infos_train.pkl
│   │   ├── nuscenes_infos_val.pkl
│   │   ├── maps
│   │   ├── samples
│   │   ├── sweeps
|   |   ├── depth_gt
|   |   ├── radar_bev_filter  # temporary folder, safe to delete
|   |   ├── radar_pv_filter
|   |   ├── v1.0-trainval

        第2点,注意第4步下载雷达数据,否则会报错

        第3点,训练和评估时,-b表示batch_size,--gpus表示gpu数量,这里都设置为1,4060显存8G,如果有其他应用占用可以先关掉,否则可能会因为显存不够运行失败

python [EXP_PATH] --amp_backend native -b 4 --gpus 4

        最后调用显示命令,可以看到效果不行,需要大量训练

更多推荐