VIT Adapter【Vision Transformer Adapter for Dense Predictions】代码复现

代码地址:https://github.com/czczup/ViT-Adapter.git

一、配置环境

在恒源云上租用服务器,配置如下:

 使用pytorch==1.9.0,cuda==11.1.0,python==3.8

 操作如下:

# recommended environment: torch1.9 + cuda11.1

#创造一个虚拟环境并且激活
conda create --name openmmlab python=3.8 -y
conda activate openmmlab

#安装对应的torch、torchvision、torchaudio
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

#安装对应的mmcv-full
pip install mmcv-full==1.4.2 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html

#安装其他库
pip install timm==0.4.12
pip install mmdet==2.22.0 # for Mask2Former
pip install mmsegmentation==0.20.2
pip install spicy
sudo apt install libglib2.0-dev

#clone到服务器中
cd hy-tmp
git clone https://gitclone.com/github.com/czczup/ViT-Adapter.git

#然后进入ViT-Adapter-main/segmentation中
cd /hy-tmp/ViT-Adapter/segmentation
ln -s ../detection/ops ./
cd ops
bash ./make.sh

到这如果都没有问题的话,那环境配置就成功了。

二、训练过程 

1.数据集准备

使用的是ADE20k的数据集

数据集下载链接:https://pan.baidu.com/s/1D6yI20dp64OGesYZqevC4w

提取码:vit8

然后将数据集上传到ViT-Adapter/segmentation/data/ade文件夹中并解压

2.预训练模型准备

使用的是beit_large_patch16_224_pt22k_ft22k.pth

预训练模型下载链接:https://pan.baidu.com/s/1GIK-R5swujwzpY0Ulmi9kw

提取码:vit8

然后将预训练模型上传到ViT-Adapter/segmentation/pretrained文件夹中

3.参数设置

使用的是ViT-Adapter/segmentation/configs/ade20k文件夹中的

mask2former_beit_adapter_large_640_160k_ade20k_ms.py

在146行可以修改batch size(我设置的是2)

同时还需要将train.py代码进行修改,主要是修改config、work-dir和checkpoint的路径

根据自己的路径修改25-28行

parser.add_argument('config', default='hy-tmp/ViT-Adapter/segmentation/configs/ade20k/mask2former_beit_adapter_large_640_160k_ade20k_ms.py',help='train config file path')
    parser.add_argument('--work-dir',default='output',help='the dir to save logs and models')
    parser.add_argument(
        '--load-from',default='pretrained/beit_large_patch16_224_pt22k_ft22k.pth',help='the checkpoint file to load weights from')

 改完这些地方就可以进行训练了

 训练的命令是:最后的数字是gpu数量,可自行调整。

bash ./dist_train.sh configs/ade20k/mask2former_beit_adapter_large_640_160k_ade20k_ms.py 1

  三、训练结果

  代码还正在跑,后续会将训练结果及预测结果更新

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ViTVision Transformer)是一种用于计算机视觉任务的Transformer模型。它在处理图像数据时,将图像划分为一系列的图像块,然后将这些图像块转换为序列数据,并使用Transformer编码器对其进行处理。ViT利用了Transformer的自注意力机制,通过学习将图像块之间的关系建模,从而实现对图像的特征提取和表征学习。 ViT模型的核心思想是引入了位置嵌入(position embedding)来为序列数据引入位置信息。位置嵌入是Transformer模型中的一部分,它可以将每个序列元素与其在原始图像中的位置相关联。这样,模型就可以利用位置信息来捕捉图像中不同区域的上下文关系。关于Transformer位置嵌入的详细信息,可以参考中的《【机器学习】详解 Transformer_闻韶-CSDN博客_机器学习transformer》的解读。 另外,关于ViT的更多研究论文和应用实例,可以参考中的GitHub资源,该资源收集了一些关于Transformer计算机视觉结合的论文。同时,中的《机器学习》也提供了对Transformer编码器结构的详细解释,可以进一步了解Transformer模型的工作原理。 总结起来,ViT是一种通过将图像转换为序列数据,并利用Transformer模型进行特征提取和表征学习的方法。它利用位置嵌入来引入图像中不同区域的位置信息,并通过自注意力机制来建模图像块之间的关系。通过研究论文和资源,我们可以深入了解ViT模型的原理和应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值