Transformer

1、Transformer 结构
模型由三个模块组成:
Linear Projection of Flattened Patches(Embedding层)
Transformer Encoder(图右侧有给出更加详细的结构)
MLP Head(最终用于分类的层结构)
ViT结构图

参考文章:
Vision Transformer详解
2、Embedding层中cls_token和Positional Encoding
对于标准的Transformer模块,要求输入的是token(向量)序列,即二维矩阵[num_token, token_dim],在对图形进行变换后,输入TE模块前需要加上[class]token以及Position Embedding。
cls_token作用
若将图片化分为9个小图像块,无cls_token时,输入9个类别向量,输出9个类别向量,无法判别用哪个输出变量进行分类,设置cls_token放在首位置,经过训练,考虑所有的patch feature,得到image feature, 也就是对所有的token做了信息汇聚,用于后续分类。
**另:**对n个token做平均作为要分类的特征,也是一种全局特征聚合的方式,但它相较于采用attention机制来做全局特征聚合而言表达能力较弱。
参考文章:
vit 中的 cls_token 与 position_embed 理解
ViT为何引入cls_token
Positional Encoding:
对于传统CNN、RNN模型,因其处理机制模型本身已经具备很强的捕捉位置信息的特性,所以position embedding属于锦上添花;
使用attention机制取代cnn、rnn的如transformer、bert模型,本身是一个n*n不包含任何位置信息的词袋模型;
所以需要和字embedding 相加。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值