ViT(vision transformer)原理快速入门
生活随笔
收集整理的這篇文章主要介紹了
ViT(vision transformer)原理快速入门
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本專題需要具備的基礎:
- 了解深度學習分類網絡原理。
- 了解2017年的transformer。
Transformer 技術里程碑:
ViT簡介
時間:2020年CVPR
論文全稱:《An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale》
發明人:谷歌團隊
簡介:論文中提出了 Vision Transformer (ViT),能直接利用 Transformer 對圖像進行分類,而不需要卷積網絡。(論文中也提到CNN+transformer,但效果差不多)
基本原理:將圖像劃分為16x16的小切片,轉成序列,輸入ViT中,得到分類。
ViT算法全貌
?ViT算法結構圖
?有了基礎,理解上圖不是很復雜,代碼也不是很長,記錄幾個要點:
- 圖像是怎么輸入transformer中的:用一個16x16尺度,步長為16,通道數為768的卷積,對圖像進行特征提取,這種卷積,相當于把圖片信息,分割為獨立的14*14的小切片。14x14后續會拉平,就成為NLP中序列一樣。
- 類別編碼(class token):假設你9個向量經過編碼器之后,你該選擇哪一個向量進入到最后的分類頭呢?因此這里作者給了額外的一個用于分類的向量,與輸入進行拼接。同樣這是一個可學習的變量。這東西剛開始會隨機初始化,作為圖像的類別編碼信息,然后會和圖像切片信息做通道拼接。
- 位置編碼:位置編碼有兩種方式,一種以固定算法生成,另一種是自動學習,ViT中用的自動學習。
- 怎么得到分類結果:經過transformer encoder后,數據維度為197?x 768,其中,1x768是網絡預測的類別信息,196x768是圖像每個‘切片’的信息。后續只要單獨提取出類別信息這一維度,通過全連接層(1 x 768轉成 1 x class_num)、softmax等,就能讓網絡學會給出類別索引序號。
較好的參考資料
Vision Transformer詳解_霹靂吧啦Wz-CSDN博客
總結
以上是生活随笔為你收集整理的ViT(vision transformer)原理快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CS131专题-8:图像纹理
- 下一篇: 【汇总记忆:命令、语法、函数、等】