当前位置:   article > 正文

Swin Transformer代码讲解

swin transformer代码

Swin Transformer代码讲解

下采样是4倍,所以patch_size=4
在这里插入图片描述

在这里插入图片描述
2.
在这里插入图片描述
3.
emded_dim=96就是下面图片中的C,经过第一个Linear Embedding处理之后的通道数
在这里插入图片描述
在这里插入图片描述
4.
在这里插入图片描述

经过第一个全连接层把通道数翻为几倍
在这里插入图片描述
在这里插入图片描述
6.
在Muhlti-Head Attention中是否使用qkv——bias,这里默认是使用
在这里插入图片描述
7.

第一个drop_rate接在PatchEmbed后面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二个drop_rate在Multi-Head Attention过程中使用的
在这里插入图片描述
9.
第三个drop_rate是指在每一个Swin Transformer Blocks中使用的,它是从0慢慢增长到0.1的
在这里插入图片描述

在这里插入图片描述
10.
patch_norm默认接在PatchEmbed后面的
在这里插入图片描述
11.
默认不使用,使用的话,只是会节省内存
在这里插入图片描述
12.
对应于每一个stage中Swin Transformer Blocks的个数
在这里插入图片描述
13.
对应stage4的输出的通道的个数
在这里插入图片描述

在这里插入图片描述
14.
PatchEmbed就是把图片划分成没有重叠的patches
在这里插入图片描述
15.
PatchEmbed对应结构图中高的 Patch Partition 和Linearing Embedding
在这里插入图片描述
在这里插入图片描述
16.
Patch Partition 确实是通过一个卷积实现的
在这里插入图片描述
17.
在宽度方向右侧pad和在高度方向的底部pad
在这里插入图片描述
18.
从维度2开始展平的
在这里插入图片描述
19.
这儿是上文提到的第一个drop_rate直接接在patchEmbed后面
在这里插入图片描述
20.
针对所使用的Swin Transformer Blocks设置一个drop_path_rate。从0开始一直到drop_path_rate
在这里插入图片描述
21.
遍历生成每一个stage,而代码中的stage和论文中的stage有一点差异
在这里插入图片描述
在这里插入图片描述
对于stage4,它没有Patch Merging,只有Swin Transformer Blocks
在这里插入图片描述

在该stage层中需要堆叠的Swin Transformer Blocks的次数
在这里插入图片描述
23.
drop_rate:直接接在patchEmbed后面
attn_drop:该stage所使用的
dpr:该stage中不同Swin Traansformer Blocks所使用的
在这里插入图片描述
24.
构建前3个stage是有PatchMerging,但是最后一个stage是没有PatchMerging
在这里self.num_layers=4
在这里插入图片描述
25.
在这里插入图片描述

在这里插入图片描述
26.
在这里插入图片描述

在这里插入图片描述

在下面的Patch Merging中传入的特征矩阵的shape是x: B , H*W , C这样的
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
28.
当x的h和w不是2的整数倍时,就需要padding,需要在右边padding一列0,在下面padding一行0。
在这里插入图片描述
在这里插入图片描述
29.
在这里插入图片描述
30.
在这里插入图片描述
31.
对于分类模型就需要加上下面这部分代码
在这里插入图片描述
32.

对整个模型进行权重初始化
在这里插入图片描述
33.
进行4倍下采样
在这里插入图片描述
34.
L:H*W
在这里插入图片描述
35.
按照一定的比例进行丢失
在这里插入图片描述
36.
遍历各个stage
在这里插入图片描述

下面的代码是在搭建Swin-T模型
在这里插入图片描述

在这里插入图片描述

Swin_T在imagenet-1k上的预训练权重
在这里插入图片描述
39.

Swin_B(window7_224)
在这里插入图片描述
在这里插入图片描述

Swin_B(window7_384)

在这里插入图片描述

在这里插入图片描述
41.
原始的特征矩阵需要进行向右和向下进行移动,但是具体的向右和向下移动的距离等于:窗口的大小除以2,再向下取整
在这里插入图片描述
在这里插入图片描述
self.shift_size就是向右和向下移动的距离
在这里插入图片描述
42.
一个stage中的Swin Trasformer Blocks的个数
在这里插入图片描述

当shift_size=0:使用W-MSA
当shift_size不等于0:使用SW-MSA,shift_size = self.shift_size
在这里插入图片描述
44.
Swin Transformer Blocks有可能是W-MSA也有可能是SW-MSA。在使用的时候并不是把W-MSA和SW-MSA当成一个Swin Transformer Blocks
在这里插入图片描述
45.
depth表示下图中圈出来的数字
在这里插入图片描述
在这里插入图片描述
46.
此处的下采样是使用Patch Merging实现的
在这里插入图片描述
47.
这个实在SW-MSA时使用的
在这里插入图片描述
48.
Swin Transformer Blocks是不会改变特征矩阵的高和宽的,所以每一个SW-MSA都是一样的,所以attn_mask的大小是不会发生改变的,所以attn_mask只需要创建一次
在这里插入图片描述
49.
在这里插入图片描述
50.
这便是创建完了一个stage中的全部Swin Transformer Blocks
在这里插入图片描述
51.
这便是下采样Patch Merging,下采样高度和宽度会减小两倍
在这里插入图片描述
52.
这里的+1,是防止传入的H和W是奇数,那么就需要padding
在这里插入图片描述在这里插入图片描述
53.

在这里插入图片描述
在这里插入图片描述
54.
在这里插入图片描述
在这里插入图片描述
55.
在这里插入图片描述
56.
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
58.
在这里插入图片描述
59.
下面这两个x的shape是一样的
在这里插入图片描述

在这里插入图片描述
60.

在这里插入图片描述

在这里插入图片描述
61.
WMSA和SWMSA所使用的窗口的大小
在这里插入图片描述

第一个全连接层将channel翻多少倍
在这里插入图片描述
63.

在这里插入图片描述
64.

在这里插入图片描述
65.
每一个swin-transformer阶段中使用的,但它是从0慢慢增长到下面设置的数值
在这里插入图片描述
在这里插入图片描述
66.
在这里插入图片描述

在这里插入图片描述
68.

在这里插入图片描述
69.

在这里插入图片描述
70.

在这里插入图片描述

官方pad函数
在这里插入图片描述
72.
在这里插入图片描述

在这里插入图片描述
74.
在这里插入图片描述
75.
在这里插入图片描述
76.
在这里插入图片描述
77.
在这里插入图片描述
78.
在这里插入图片描述
79.
在这里插入图片描述
80.
在这里插入图片描述
81.
在这里插入图片描述
82.
在这里插入图片描述
83.
在这里插入图片描述
84.
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
移动的大小=窗口大小除以2,然后向下取整
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
87.
在这里插入图片描述
88.

在这里插入图片描述
89.
在这里插入图片描述
90.

无论是wmsa和swmsa,单独的它们都不会改变特征矩阵的尺寸
在这里插入图片描述

mask放在这个位置解决了多尺度训练的问题

在这里插入图片描述
92.

在这里插入图片描述
93.
运行完一个stage中的所有wmsa和swmsa
在这里插入图片描述
94.
在这里插入图片描述
95.
在这里插入图片描述

下面代码运行的最终结果如下所示
在这里插入图片描述

在这里插入图片描述
97.

在这里插入图片描述
98.
在这里插入图片描述

在这里插入图片描述
99.

在这里插入图片描述
100.

在这里插入图片描述
101.

在这里插入图片描述

在这里插入图片描述

下面两个函数属于互为逆过程
在这里插入图片描述

在这里插入图片描述
104.

在这里插入图片描述
105.
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
108.
在这里插入图片描述
109.
在这里插入图片描述
110.
在这里插入图片描述
111.

在这里插入图片描述
112.
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
115.
互为逆过程
在这里插入图片描述
在这里插入图片描述
116.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/717283
推荐阅读
相关标签
  

闽ICP备14008679号