CV|2. vit——vision transformer

【CV|2. vit——vision transformer】了解vit之前可以先看论文 attention is all in need,主要看论文中transformer中的encode和decode部分。
在vit中主要应用了transformer的encode部分。

vit整体的网络框架结构图
CV|2. vit——vision transformer
文章图片

vit原理讲解的很好:ViT和DeiT的原理与使用 - 知乎
vit原理:把图像使用patch(p*p*c),分隔为N等份。每份拉成一维向量D。N等份就有N*D维度。因为分隔图片的patch尺寸可能会拉成很长的一维向量(比如patch尺寸为32,3通道。拉成一位向量长度32*32*3=3072),不仅计算量较大,复杂度较高,并且存在部分冗余信息,所以会较长的一维向量转换为较低的维度(比如把3072为转换为固定128维等)。同时还会增加一个分类的embedding(比如维度128),作为后面分类维度的分类标签训练和预测使用,和图像patch的所有向量concat,放到第一个维度(如图红框)。然后把(N+1)*D加上positional embedding后放到transformer的encode编码器中进行自编码,把编码后的结果的第一维度(就是分类token的这维)信息拿取出来,过MLP head(红框里上面)后进行分类。



    推荐阅读