1. DeiT概述
1.1 項目簡介
Deit(Data-efficient image Transformers)是由Facebook與索邦大學(xué)的Matthieu Cord教授合作開發(fā)的圖像分類模型。作為一種基于Transformer架構(gòu)的深度學(xué)習(xí)模型,DeiT在保持高性能的同時,能夠大大提高數(shù)據(jù)效率,為圖像識別領(lǐng)域帶來了顛覆性的變化。
與傳統(tǒng)的CNN不同,DeiT模型采用了Transformer的自注意力機制,將圖像分割成若干個固定大小的塊,并對每個塊進行編碼,捕捉圖像中的長程依賴關(guān)系。
本文將為大家介紹如何將DeiT移植到算能BM1684X平臺上。
1.2 模型介紹
DeiT目前有3個版本的模型(tiny, small, base),均由12個Attention結(jié)構(gòu)組成,模型區(qū)別在于輸入的header個數(shù)及embed_dim不同。
Attention結(jié)構(gòu)如下圖所示:
attention
不同版本的模型具體參數(shù)區(qū)別如下表:
version
2. 模型移植
以下部分介紹如何將DeiT移植到算能BM1684X平臺上。
2.1 模型trace
原始DeiT模型基于Pytorch框架訓(xùn)練及推理。算能TPU-MLIR工具鏈可以編譯通過jit trace過的靜態(tài)模型。
首先進行模型trace,命令如下,需要修改原推理代碼。
trace
2.2 模型編譯
以下介紹如何使用算能TPU-MLIR工具鏈將上一步trace過的模型編譯成可以在算能BM1684X上推理的bmodel。在模型移植過程中遇到一些算子邊界的處理問題,均已修復(fù)。
transformdeploy
2.3 精度測試
DeiT為分類模型,精度測試采用topk來進行。
精度測試及性能測試結(jié)果如下:
precision
3 小結(jié)
總體看移植過程相對順利,在解決了部分算子邊界問題之后可以成功編譯出bmodel。F32精度基本可與原始框架對齊。由于第一個Conv stride > 15,在進行F16/BF16轉(zhuǎn)換時遇到比對問題,這部分代碼目前仍在重構(gòu),生成bmodel過程中這部分采用F32混精度處理。
-
圖像
+關(guān)注
關(guān)注
2文章
1086瀏覽量
40494 -
模型
+關(guān)注
關(guān)注
1文章
3255瀏覽量
48899 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5506瀏覽量
121255
發(fā)布評論請先 登錄
相關(guān)推薦
評論