深度学习第六周

Vision Transformer

在这里插入图片描述首先将图片分为一个个patches,然后通过Embedding层得到token,输入Transformer Encoder和MLP Head得到最终的输出。
对于标准的Transformer模块,要求输入的是token(向量)序列,即二维矩阵[num_token, token_dim]
在代码实现中,直接通过一个卷积层来实现以ViT-B/16为例,使用卷积核大小为16x16,stride为16,卷积核个数为768
[224, 224, 3]-> [14, 14, 768] -> [196, 768]
在输入Transformer Encoder之前需要加上[class]token以及Position Embedding,都是可训练参数
拼接[class]token: Cat([1, 768], [196, 768]) -> [197, 768]
叠加Position Embedding: [197, 768] -> [197, 768]
在这里插入图片描述Transformer Encoder是将Encoder Block堆叠L次得到。

Swin Transformer

网络整体框架

在这里插入图片描述与ViT的不同体现在Swin Transformer具有层次性。
在这里插入图片描述

Patch Merging

在这里插入图片描述
假设输入Patch Merging的是一个4x4大小的单通道特征图(feature map),Patch Merging会将每个2x2的相邻像素划分为一个patch,然后将每个patch中相同位置(同一颜色)像素给拼在一起就得到了4个feature map。接着将这四个feature map在深度方向进行concat拼接,然后在通过一个LayerNorm层。最后通过一个全连接层在feature map的深度方向做线性变化,将feature map的深度由C变成C/2。通过这个简单的例子可以看出,通过Patch Merging层后,feature map的高和宽会减半,深度会翻倍。

W_MSA

➢MSA模块计算量
4 h w C 2 + 2 ( h w ) 2 C 4 h w C^{2}+2(\mathrm{hw})^{2} \mathrm{C} 4hwC2+2(hw)2C
➢W-MSA模块计算量
4 h w C 2 + 2 M 2 h w C 4 h w C^{2}+2 \mathrm{M}^{2} h w C 4hwC2+2M2hwC

Shifted Windows Multi-Head Self- Attention(SW_MSA)

目的:实现不同Window之间的信息交互。在这里插入图片描述

Relative Position Bias

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

感想

经过暑假这一个多月的学习,我了解了深度学习的发展历程和许多主流框架,其中有一些比较复杂的网络原理或代码我理解的还不是很透彻,开学之后会更加努力地学习,理解各种网络结构的原理以及代码实现。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值