Ubuntu下HoiTransformer复现pytorch环境搭建+解决问题

一、准备工作

论文:End-to-End Human Object Interaction Detection with HOI Transformer

代码:GitHub - bbepoch/HoiTransformer: This is the code for HOI Transformer 

二、环境搭建

硬件/系统:服务器GPU3090,Ubuntu20.。。(忘记了),CUDA11.2

虚拟环境:python3.6,torch1.10.0+cu113,torchaudio0.10.0+cu113,torchvision0.11.1+cu113  

虚拟环境创建过程略

三、复现过程

1.克隆代码(github难以直接克隆于是去gitee克隆了,最好克隆不要直接下载压缩包)

git clone https://gitee.com/hoi_xd/HoiTransformer

2.下载预训练模型

cd data/detr_coco && bash download_model.sh

3.下载注释文件

cd data && bash download_annotations.sh

4. 下载数据集

cd data && bash download_images.sh

5.安装相关依赖

pip install -r requirements.txt

6.可以把数据移到服务器机械硬盘上,只在目录下映射一个地址(可省略)

mv data /home/hoi/
ln -s /home/hoi/data data

7.训练模型

# Train on HICO-DET.
python3 -m torch.distributed.launch --nproc_per_node=8 --use_env main.py --epochs=150 --lr_drop=110 --dataset_file=hico --batch_size=2 --backbone=resnet50

# Train on HOI-A.
python3 -m torch.distributed.launch --nproc_per_node=8 --use_env main.py --epochs=150 --lr_drop=110 --dataset_file=hoia --batch_size=2 --backbone=resnet50

# Train on V-COCO.
python3 -m torch.distributed.launch --nproc_per_node=8 --use_env main.py --epochs=150 --lr_drop=110 --dataset_file=vcoco --batch_size=2 --backbone=resnet50

# Training longer can get even better performance.

8.测试模型

python3 test.py --backbone=resnet50 --batch_size=1 --dataset_file=vcoco --log_dir=./ --model_path=checkpoint/p_202205242249/checkpoint.pth 

 四、相关问题

1、下载注释文件、部分数据集的时候,都是在driver.google上下载,会失败

解决方法:这里训练了vcoco2014,没有训练其他数据集,所有需要下载的部分直接在本机上下载好传到服务器,下载了以下三个文件,

vcoco压缩包为注释文件,挂梯子下载20M左右,网址:https://drive.google.com/uc?id=1vWVScXPsu0KVMtXW8QdLjb25NGLzEPhN

另两个数据集,可以直接下载,网址:

# File name: train2014.zip,16G
http://images.cocodataset.org/zips/train2014.zip
# File name: val2014.zip,6G
http://images.cocodataset.org/zips/val2014.zip

2、按以下目录结构,步骤6做了之后,地址会映射过来,目录结构不变

    HoiTransformer/
    ├── data/
    │   ├── detr_coco/
    │   ├── hico/
    │   │   ├── eval/
    │   │   └── images/
    │   │       ├── train2015/
    │   │       └── test2015/
    │   ├── hoia/
    │   │   ├── eval/
    │   │   └── images/
    │   │       ├── trainval/
    │   │       └── test/
    │   └── vcoco/
    │       ├── eval/
    │       └── images/
    │           ├── train2014/
    │           └── val2014/
    ├── datasets/
    ├── models/
    ├── tools/
    ├── util/
    ├── engin.py
    ├── main.py
    └── test.py

3、GPU和 pytorch算力不匹配

pytorch capability sm_86 is not compatible with the current PyTorch installation

解决方法,3090GPU,CUDA11.2 匹配pytorch版本也要高一点

所以下载cu113版本的pytorch,不用pip3下载会下载到实际anaconda环境,用pip下载

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

4、out of memory

GPU并行模式没调整好,学习怎么弄并行模式,或者直接关闭并行模式训练

# Train on V-COCO.
python main.py --epochs=150 --lr_drop=110 --dataset_file=vcoco --batch_size=2 --backbone=resnet50

经过学习学会了用分布式训练:

# 查看空余GPU,比如3,4,5,6四张卡空余
nvidia-smi
# 选择空余GPU训练
CUDA_VISIBLE_DEVICES=3,4,5,6 python3 -m torch.distributed.launch --nproc_per_node=4 --use_env main.py --epochs=150 --lr_drop=110 --dataset_file=vcoco --batch_size=2 --backbone=resnet101

并行模式学习参考:

PyTorch分布式DPP的基本概念(node&rank&local_rank&nnodes&node_rank&nproc_per_node&world_size)_hxxjxw的博客-CSDN博客_nproc_per_node 

​​​​​​Pytorch中多GPU并行计算教程_太阳花的小绿豆的博客-CSDN博客_pytorch多gpu训练

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值