1. 程式人生 > 其它 >【ICCV2021】Tokens-to-Token ViT: Training Vision Transformers From Scratch on ImageNet

【ICCV2021】Tokens-to-Token ViT: Training Vision Transformers From Scratch on ImageNet

部分內容來自於 GiantPandaCV 的文章

論文:https://openaccess.thecvf.com/content/ICCV2021/papers/Yuan_Tokens-to-Token_ViT_Training_Vision_Transformers_From_Scratch_on_ImageNet_ICCV_2021_paper.pdf

程式碼:https://github.com/yitu-opensource/T2T-ViT

1、Motivation

作者指出VIT的不足之處:

  • 直接將圖片分塊展開成一維向量不利於對圖片結構資訊(如邊緣,線條)建模
  • 冗餘的Attention模組限制了特徵表達,並帶來運算負擔

因此,作者提出了 Token to Token Transformer (T2T),採用類似CNN視窗的方式,將相鄰的 token 聚合,有助於建模區域性特徵。

2、Method

T2T 的流程如下圖所示,將輸入的 token 通過 reshape 操作轉化為二維,然後利用 unfold 操作,屬於同一個區域性視窗的 token 拼接成一個更長的 token,再送入下一層。

Unfold 操作其實是卷積中的 img2col 操作,將卷積視窗的向量,重排成一個列向量,示意圖如下所示:

網路整體架構如下圖所示,先經過2次Tokens to Token操作,最後給token加入用於影象分類的cls token,並給上位置編碼(position embedding),送入到 VIT backbone 當中。

更多可以檢視 Panda 的文章,程式碼講解的也非常詳細。