Swin Transformer学习记录

1.整体结构

 

 70dd8f5ec77946f0950df383dab7e175.jpg

 

 897e2ad1de8b4083b876214e21969391.png

 

Swim Transformer分为以下几个模块,Patch Partition模块,Patch Merging模块,W-MSA模块,SW-MSA模块,Relative position bias机制

2.Patch Partition和Liner Embedding

cda151c5ae3645c58e55f53989028efe.jpg

 Patch Partition + Liner Embedding的实现是通过nn.Conv2d,将kernel_size和stride设置为 patch_size(将图像分为几块,这里为4)大小。其实就是一个2d卷积实现。

 

3.Patch Merging

de67f05444d541f9a0e7b567bd1e6c36.jpg

 如上图所示,假设输入Patch Merging的是一个6x6大小的单通道特征图(feature map),Patch Merging会将每个3x3的相邻像素划分为一个patch,然后将每个patch中相同位置(同一颜色)像素给拼在一起就得到了4个feature map。接着将这四个feature map在深度方向进行concat拼接,然后在通过一个LayerNorm层。

作用:是在每个Stage开始前做降采样,用于缩小分辨率,调整通道数 进而形成层次化的设计,同时也能节省一定运算量

4.Swin Transformer Block

81bb4e17486f40eaa87d6edaef5fc5d8.jpg

block由两部分组成,W-MSA和SW-MSA。

 4.1. W-MSA

244e3f7aaf08441ba0b96f55832f2269.jpg

555106876b1a4aebbf1ff92ab1a3bc2c.jpg

a460dcbc0db74f5ca14f37bece6dda0b.jpg

 

MSA 是 Multi Head Self-Attention 的缩写,在 MSA 中,会对每一个像素去求它的q、k、v,然后对于每个像素它所求得的 q,会和特征图当中的每一个像素的 k 进行匹配,然后再进行 softmax 以及后续的和 v 加权求和,也就是说特征矩阵当中的每一个像素都会和其它像素进行信息的沟通,它是全局的。然后再看一下 Swin Transformer 中提出的 Windows Multi Head Self-Attention,它首先会对特征图按照分成一个个的 Window(图例中是将特征矩阵分成大小的窗口),然后对每个窗口的内部进行 MSA 的计算。

 Swin Transformer 中提出的 Windows Multi Head Self-Attention,它首先会对特征图按照分成一个个的 Window(图例中是将特征矩阵分成大小的窗口),然后对每个窗口的内部进行 MSA 的计算。

 4.2.SW-MSA

4.1的Window Attention是在每个窗口下计算注意力的,为了更好的和其他window进行信息交互,Swin Transformer还引入了shifted window操作。

f67a2e327aba43db8f7d2915f96168a1.jpg

做一个循环移位(cyclic shift),先AC移下来,再AB移到右边。就又可以分成四宫格得到四个窗口。移位前四个,移位后也是四个,窗口数量数量固定。(未完)

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Swin Transformer是一种基于移动窗口的Hierarchical Vision Transformer。它的目标是实现Vision Transformer在非自然场景下的迁移学习。Swing Transformer的设计灵感主要来自于CNN,它融合了CNN的一些思想并将其应用于Transformer模型中。通过引入移动窗口的概念,Swin Transformer能够实现多尺度的特征提取,这使得它可以作为一个通用的backbone,为检测、分割等计算机视觉下游任务提供更好的支持。Swing Transformer在非自然场景下的迁移学习表现较好,这是因为Transformer本身不需要过多的inductive bias,并且已有的一些工作已经证明了将NLP预训练模型直接应用于计算机视觉任务的有效性。因此,我认为Swin Transformer具有较好的迁移学习能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Swin-Transformer学习整理](https://blog.csdn.net/weixin_43856821/article/details/123243178)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Swin Transformer 学习笔记](https://blog.csdn.net/qq_36936443/article/details/124296075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值