Transformer:ViT、Swim、NesT

1.Vision Transformer
整体框架
在这里插入图片描述
算法流程

  1. 使用大小为P的区块将H*W*C的二维图像分为N个P*P*C的区块(patch),N=H*W/(P*P)
  2. 将区块使用线性变换转为D维特征向量,再加上位置编码向量
  3. Transformer Encoder过程执行的任务加入了LayerNorm、Multi-Head Attention和MLP
  4. 分类头很简单,加入了LayerNorm和两层全连接层实现的,采用的是GELU激活函数

效果
在这里插入图片描述

2.Swim Transformer
整体框架
在这里插入图片描述
算法流程
整个模型一共包含4个Stage,每个stage都会缩小输入特征图的分辨率,类似CNN逐层扩大感受野。

  1. 在输入开始的时候,做了一个Patch Embedding,将图片切成一个个图块,并嵌入到Embedding。
  2. 在每个Stage里,由Patch Merging和多个Block组成。
  3. 其中Patch Merging模块主要在每个Stage一开始降低图片分辨率。
  4. 而Block具体结构如右图所示,主要是LayerNorm,MLP,Window Attention 和 Shifted Window Attention组成

效果
在这里插入图片描述

与Vit的不同之处

  • Vit在输入会给embedding进行位置编码。而Swin-T这里则是作为一个可选项,Swin-T是在计算Attention的时候做了一个相对位置编码
  • Vit会单独加上一个可学习参数,作为分类的token。而Swin-T则是直接做平均,输出分类,有点类似CNMM最后的全局平均池化层

3.Aggregating Nested Transformers
整体框架
在这里插入图片描述
算法流程

  1. 图像分块(patch)处理、平展
  2. 每个图像块内,简单堆叠多个transformer层,每个层包含一个多头自注意力(MSA)后接全连接层与跳过连接、LayerNorm,可训练的位置嵌入向量将倍加到所有序列向量中以编码空间位置信息
  3. 采用所提块集成构建一个分层嵌套:即每四个空域相邻的块合并为一个块

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

参考文献:
1.https://zhuanlan.zhihu.com/p/317756159
2.https://zhuanlan.zhihu.com/p/367111046
3.https://baijiahao.baidu.com/s?id=1701234040616039586&wfr=spider&for=pc

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值