TraDes代码复现
作者:互联网
TraDes代码复现
2022/3/31 19:54:39 by zcb 仅以此记录
环境
- 显卡:RTX3090
- pytorch:1.7.1
- CUDA 11.0
代码下载
我直接去作者github上下载源码,直接上链接: https://github.com/JialianW/TraDeS
当然我也弄了一个百度网盘分享:
链接:https://pan.baidu.com/s/1dpTfJbAy8jNnZDPcpUUdKQ 提取码:ustb --来自百度网盘超级会员V2的分享
环境搭建
1、新建TraDes环境并激活,我的python版本是3.7:
- conda create --name TraDes python=3.7
- conda activate trades
2、Install PyTorch
论文的环境是pytorch1.3 cuda10.0,然后如果按照这个pytorch安装,接下来可能会出现DCNv2的编译问题。踩完这个坑后,我根据我的显卡是3090,能支持cuda11,以及配套的DCNv2 pytorch1.7版本比较容易找到,我选择安装pytorch1.7.1。
官网命令如下:
- conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
3、Install COCOAPI
论文需要cocoapi数据集接口,命令如下:
这个命令的问题之一是,可能会出现联网失败,所以可能多试验几次就会好吧。
- pip install cython; pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
4、Install the requirements
requirements.txt的内容如下:
- opencv-python
- Cython
- numba
- progress
- matplotlib
- easydict
- scipy
- pyquaternion
- pyyaml
- motmetrics==1.2.0
- nuscenes-devkit==1.1.2
- scikit-learn==0.21.0
如果直接pip install -r requirements.txt,应该是会安装失败的,我是没成功过。在此我贴上我各个包的版本:
- opencv-python 4.5.5.62
- cython 0.29.26
- progress 1.6
- matplotlib 3.5.1
- easydict 1.9
- scipy 1.7.3
- pyquaternion 0.9.9
- pyyaml 6.0
- motmetrics 1.2.0
- nuscenes-devkit 1.1.2
- scikit-learn 1.0.2
我在使用cv2包时出现过一个错误,libharfbuzz.so.0报错,博客上说可能是freetype too old 的问题,我没有root权限,因此我并没有解决这个问题,但是我重新装包为以上版本时,这个错误消失了。装包的过程中应该是不会出现什么问题的,极有可能还是版本问题。
5、DCNv2的编译
首先下载DCNv2,由于我们pytorch1.7.1,所以对应下载DCNv2 support pytorch1.7的版本。
直接上链接:https://github.com/lbin/DCNv2/tree/pytorch_1.7
当然也有百度网盘分享:
链接:https://pan.baidu.com/s/1DyJIt0J0J_6qLg99FcVZmw 提取码:ustb --来自百度网盘超级会员V2的分享
步骤:
- 根据代码要求,解压并将DCNv2文件夹放入TraDes/src/lib/model/networks/文件夹下。
- 执行sh make.sh 编译DCNv2
直接编译一般会报错compute86什么的,原因是3090显卡算力太高,解决方法如下:
在.bashrc文件配置一下环境变量:
#声明一下cuda_arch:
export TORCH_CUDA_ARCH_LIST="3.5;5.0;5.2;6.0;6.1;7.0;7.5;8.0;8.0+PTX"
#声明一下cuda环境变量:
export PATH="/usr/local/cuda-11.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH"
export CUDA_HOME="/usr/local/cuda-11.0"
cuda_arch这个很重要,即使编译通过了,没设置对,也会导致DCNv2代码的后续执行错误。我觉得我这个应该没毛病,可以参考一下,对应cuda11.0.
6、到此算是完成环境配置了。
在训练过程中,如果出现cuda out of memory等,可以稍加修改batch_size等,或者是其他的解决方法,这里不赘述了。
7、训练以及跑demo可以参考TraDes作者github。
写在最后
如有疑问或者文中出错,可以交流一下。
标签:DCNv2,TraDes,11.0,复现,https,com,代码,cuda 来源: https://www.cnblogs.com/zcbustb/p/16084161.html