Swin Transformer基于windows 10复现源码实现图像分类

目录

前言

准备工作

环境搭建

数据集预处理

ImageNet-1k数据集

缩减版数据集

修改参数

运行 


前言

小编的本科毕业设计题目是Transformer在计算机视觉中应用的研究。小编在做毕设过程中也复现了Swin Transformer的源码实现了图像分类模型的预训练,预训练的模型是Swin-T。如果也有想要复现源码的小伙伴,希望小编的这篇小小之作能够在看的读者带来帮助。

准备工作

小编使用的数据集是官方使用的ImageNet-1k,但是由于硬件条件当然是有限了,所以我删除了原数据集中的500个类别。使用的系统是win10,使用的显卡是RTX3090,显存24G。当然如果硬件不支持的话,也可以使用ImageNet-tiny即缩减版数据集,小编在下面放了两个数据集的链接,读者可以根据自己情况来下载数据集。

环境搭建

1、在GitHub上边下载Swin Transformer的官方源码并解压。

2、使用anaconda创建python3.7版本虚拟环境。

3、安装CUDA和CUDNN

CUDA需要版本为11.1,然后去安装匹配11.1CUDA的CUDNN,如何安装请看以下链接:

https://blog.csdn.net/wobushizhainanyu/article/details/107736090?spm=1001.2014.3001.5501

4、安装pytorch和torchvision

这里已经给大家准备好了适应版本的pytorch和torchvision的百度网盘链接

Torch:

链接:https://pan.baidu.com/s/1nwdlrJoI7xoBubZ_VbCP_A

提取码:1111

Torchvision:

链接:https://pan.baidu.com/s/1vjYhrrL3XD7rfEGt13cgSg

提取码:1111

先激活swin-sort 环境

Swin Transformer基于windows 10复现源码实现图像分类_第1张图片

       切换到torch和torchvision所下载的目录下

       然后直接pip install torch安装包的名字,如图

 同理安装torchvision,如图。

5、 接下来将要安装一个比较坑的东西apex。

(1)首先我们先要到GitHub官网去下载一个apex,得到一个 apex-master.zip,下载到哪里无所谓,自己解压就行了。

(2)命令行切换到apex-master的目录下,然后如下图将安装apex之前的一些依赖项安装上

(3) 安装好了依赖项之后,直接安装,如下图

6、 接下来就是安装Swin Transformer实现图像分类所需要的其他的包了。

pip install timm==0.4.12

pip install opencv-python==4.4.0.46

termcolor==1.1.0 yacs==0.1.8

我一开始弄的时候感觉老复杂了,后来弄完了又弄了一次发现原来如此简单。

数据集预处理

ImageNet-1k数据集

1、数据集的下载

我使用的是ImageNet-1k数据集,当然了也有小规模的简版数据集。我最开始测试能不能运行用的是简版数据集,并且使用简版数据集预训练了一个模型,成功之后我才使用的是ImageNet-1k数据集。

数据集的链接如下:

链接:https://pan.baidu.com/s/18dPPvpknZcefFNbygiX84w

提取码:1111

2、数据集的处理

主要是数据集的规模太大了,我就删了500个类别。

下载ImageNet-1k数据集压缩包,共计137G,下载完成后进行解压,删除训练集后500个类别之后余下500个类别的压缩包,如下图所示。

Swin Transformer基于windows 10复现源码实现图像分类_第2张图片

 数据解压的代码已经放在刚才的网盘了,大家可以更改成自己的路径,直接运行就可以,我估计解压可能得需要很长时间,毕竟500个压缩包呢,当然如果小伙伴们的硬件支持的话,可以直接用完整的ImageNet-1k数据集。解压完成后如图。Swin Transformer基于windows 10复现源码实现图像分类_第3张图片 

对于val数据集我们需要做一下归类整理,代码也已经放在刚才网盘的val文件夹下面了。

整理完如图。

Swin Transformer基于windows 10复现源码实现图像分类_第4张图片

 整理好数据集之后我们需要把train和val放在同一个文件夹下,文件夹的名字命名为imagenet,imagenet文件夹需要放在Swin Transformer-main目录下。

缩减版数据集

Imagenet-tiny

链接:https://pan.baidu.com/s/1U1_uYjWDqm5iPLKF8nA

提取码:1111

这个数据集应该是已经整理好的了,大家直接下载然后放在Swin Transformer-main目录下就行。

修改参数

数据集整理好了,那接下来我们就要修改参数了。

由于是基于win10复现swin Transformer源码,所以我们需要更改一下main.py文件下的一行代码,302行更改为如下图。

运行 

命令行切换到啊Swin Transformer-mian 项目目录下,输入以下命令进行运行。

python main.py --cfg configs/swin/swin_tiny_patch4_window7_224.yaml --local_rank 0 --batch-size 10

如图所示。

Swin Transformer基于windows 10复现源码实现图像分类_第5张图片

运行过程如图

Swin Transformer基于windows 10复现源码实现图像分类_第6张图片

如果这篇文章对您有帮助的话,就麻烦您点个赞吧,小编也不容易啊。 

你可能感兴趣的:(Transformer,transformer,深度学习,人工智能)