整体架构
整个“金字塔”架构分为4个stage,每个stage内的基础结构是相似的,即:
Patch Embedding:目的在于将信息分块,降低单张图的图片大小,但会增加数据的深度
Transformer Encoder:目的在于计算图片的attention value,由于深度变大了,计算复杂度会变大,所以在这里作者使用了Special Reduction来减小计算复杂度
具体模块
Patch Embedding
Patch Embedding部分与ViT中对与图片的分块操作是一样的,即:
将原图切成总数为pi×pip_i\times p_ipi×pi的patches
具体操作: 使用卷积操作,kernal_size=Hpi,stride=Hpi\mathrm{kernal\_size}=\frac{H}{p_i},\mathrm{stride}=\frac{H}{p_i}kernal_size=piH,stride=piH
将每个patch内的数据拉平,然后进行LayerNorm,此时每个patch内的数据大小为Hi−1Wi−1pi2×Ci\frac{H_{i-1}W_{i-1}}{p_i^2}\times C_ipi2Hi−1W