-
CNN 的局限性:传统的 CNN 通过局部卷积核提取特征,虽然可以通过堆叠多层卷积扩大感受野,但仍然依赖于局部信息的逐步聚合,难以直接建模全局依赖关系。
-
ViT 的优势:ViT 使用自注意力机制(Self-Attention),能够直接捕捉图像中所有 patch(图像块)之间的全局关系。这种全局建模能力在处理需要长距离依赖的任务(如图像分类、目标检测)时表现更好。
全流程
-
图像预处理+分块
-
图像尺寸标准化,如(224*224)
-
分块操作,将图像分为等大小非重叠的块(Patch)
-
-
块嵌入(Patch embedding)
-
展平成一维,然后过一个Linear映射成d_model,或者直接卷积操也能达到相同效果。
-
类别标记,[class Toekn] 在块嵌入序列前添加可学习的类别标记,用于最终的分类任务 【这个比如说分成了196个bacth,那么此时的张量形状应该是(batch_size,patch_num,patchH*patchW)】,这个加类别相当于patch_num+1,作为类别标记
-
-
位置编码,将位置嵌入添加到嵌入前边
-
Transformer Encoder处理
-
编码器堆叠,含类别标记的嵌入经过多个transformer Encoder处理,出来一个增强表示
-
transformer里边的MLP通常拓展4倍维度
-
PyTorch实现Vision Transformer详解

最低0.47元/天 解锁文章
1398

被折叠的 条评论
为什么被折叠?



