主要素材来源链接 https://blog.csdn.net/qq_37541097?spm=1001.2014.3001.5509
模型的组成
简单而言,模型由三个模块组成:
- Linear Projection of Flattened Patches (嵌入层)
- Transformer Ecoder
- MLP Head(用于分类)
embeding层
一般的输入图像是[H,W,C]是三维的,这个格式是不符合Transformer Encoder的输入要求的。所以我们这一层的主要目的就是变换"三维矩阵变成二维矩阵"。
主要步骤:
1.将一张图片按给定的大小分成一堆patches。
2.通过线性映射将每个Patch映射到一维向量(token)中。
注意:在输入Transformer Encoder之前注意需要加上[class]token以及Position Embedding
Transformer Encoder模块
Transformer Encoder其实就是重复堆叠Encoder Block L次。
- Layer Norm (是NLP领域的,这是相对于图像领域的BN)
- Multi-Head Attention
- Dropout/DropPath
- MLP Block,如下面所所示