Java教程

TraDes代码复现

本文主要是介绍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。

写在最后

如有疑问或者文中出错,可以交流一下。

这篇关于TraDes代码复现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!