Swin Transformer的基础架构示意图 Swin Transformer中最重要的模块是基于移动窗口构建的注意力模块,其内部结构如下图所示,包含了一个基于移动窗口的多头自注意力模块(shifted windows multi-head self attention, SW-MSA)和基于窗口的多头自注意力模块(W-MSA),其他的归一化层和两层的MLP与原来保持一致,并使用了GELU...
Swin是在Window当中单独去做Window Attention。与Vit不同,本Window内的Visual Tokens去算自己内部的attention,这和Vit的Multi-head attention没有本质区别。但这里Windows之间是没有交互的。Window 1中的元素,看不到Window 4的信息。 Only W-MSA 注意:如果windows之间不交互信息,即window不做Shifted window,可能会有影...
如果说Shifted Window是Swin Transformer的精华,那么Attention Mask则可以算作是Shifted Window的精华。Attention Mask主要干的事就是设置合理的mask,使得Shifted Window Attention在与Window Attention相同的窗口个数下,得到等价的计算结果。如下图所示,分别给SWA和WA加上index后,再计算window attention的时候,希望有相...
Swin Transformer另一个贡献是提出了shifted window,如下图所示,在L层进行local-window的self-attention计算,在L+1层,会先对window进行移位操作,这样相临windows之间就有了交互。(因为移位之后有了不规则的块,不利于矩阵计算,后面作者用了一种技巧来做batch计算) 相关工作 略,本部分内容和Vit类似。 方法 上图展示...
图(b)描绘了Swin Transformer block做的事情:输入数据先正常在窗口范围内做attention(W-MSA, W表示Window),然后经过LN和MLP一系列模块后,又做了一次移动窗口的attention(SW-MSA, SW表示Shifted Window),然后才是最终的输出结果。因此你可以发现演示图中的block都是偶数的。因为两个相连的block要依次完成W-MSA和SW...
transformer应用到CV的优势全局的感受野(计算量很大),可实现平移不变,但无法做到尺度不变,猜测这也是DETR对小目标检测效果不太好的原因。 鉴于以上分析,Swin transformer (Shiftedwindowtransformer, 暂且简称SWTR)构造了层次结构网络、window multi-head self-attention,构造新的CV backbone。
而Block具体结构如右图所示,主要是LayerNorm,MLP,Window Attention和Shifted Window Attention组成 (为了方便讲解,我会省略掉一些参数) class SwinTransformer(nn.Module): def __init__(...): super().__init__() ... # absolute position embedding ...
Swin Transformer引入了两个关键概念来解决原始ViT面临的问题——层次化特征映射和窗口注意力转换。事实上,Swin Transformer的名字来自于“Shifted window Transformer”。Swin Transformer的总体架构如下所示。 Swin Transformer总体架,' patch partition '被用作第一个块。为了简单起见,我使用“patch merging’”作为图中...
SwinTransformer Block 在Swin Transformer Block中,最重要的莫过于Window Attention(W-MSA)与Shifted Window Attention(SW-MSA)传统的Transformer都是基于全局来计算注意力的,因此计算复杂度十分高。而Swin Transformer则将注意力的计算限制在每个窗口内,进而减少了计算量。其计算公式如下: ...
在每个 Stage 里(除第一个 Stage ),均由Patch Merging和多个Swin Transformer Block组成。 其中Patch Merging模块主要在每个 Stage 一开始降低图片分辨率,进行下采样的操作。 而Swin Transformer Block具体结构如右图所示,主要是LayerNorm,Window Attention,Shifted Window Attention和MLP组成。 从代码的角度: 在微软亚洲...