使用TPU-MLIR進行模型轉(zhuǎn)換的時候我們會在各個階段對比模型每一層輸出的相似度,以確保模型轉(zhuǎn)換的正確性,同時也能夠在適配過程中更方便地定位問題來源。
但我們并不知道轉(zhuǎn)換后的模型精度如何,特別是INT8量化后的模型輸出,往往與原模型輸出存在較大的區(qū)別(當然這個區(qū)別是在可接受的范圍內(nèi)的),光靠對比輸出的相似度我們并不能看出INT8模型的表現(xiàn)究竟怎么樣。所以,TPU-MLIR也提供了精度驗證的接口,來檢驗轉(zhuǎn)換后的模型表現(xiàn)。
在進行精度驗證前,首先我們需要準備好用于驗證的數(shù)據(jù)集,因為TPU-MLIR里沒有自帶完整的測試集,所以用于精度驗證的數(shù)據(jù)集需要大家自行下載,對于分類網(wǎng)絡(luò)主要使用的是IMAGENET2012的驗證集,一共有5w張圖片,而目標檢測網(wǎng)絡(luò)使用的是COCO2017的驗證集,共5k張圖。TPU-MLIR后續(xù)還會逐步支持更多類型,例如NLP領(lǐng)域的網(wǎng)絡(luò),未來也會開放。
另外,對于分類數(shù)據(jù)集的擺放方式,是將5w張圖片分別放在1000個子目錄中,對應(yīng)imagenet里的1000個類別,每個類別下有50張屬于該類別的圖片,這類擺放方式自然就不再需要額外的標簽文件;
對于COCO數(shù)據(jù)集的話相對比較簡單,所有的圖片都是放在一個目錄下,每張圖片的類別信息都會從對應(yīng)的json文件中提取;
準備好數(shù)據(jù)集后,我們就可以直接使用model_eval這一接口對mlir模型進行精度驗證,主要會用到這五個參數(shù):
model_file與dataset參數(shù)用于提供模型與數(shù)據(jù)集路徑
count用于明確我們要用來驗證精度的圖片數(shù)量,默認情況下是使用整個目錄下的數(shù)據(jù)集
dataset_type則是根據(jù)驗證的模型類型用于指定對應(yīng)數(shù)據(jù)集的加載方式
postprocess_type則是用來明確輸出的后處理方式,然后用相應(yīng)的metrics來計算精度
那這里不需要提供預(yù)處理信息嗎?
其實在mlir模型的input_op里就已經(jīng)包含了對數(shù)據(jù)的預(yù)處理信息,主要包括mean, scale, resize的尺寸與resize時是否保持高寬比, 輸入圖片數(shù)據(jù)的pixel_format等,其中Mean和scale用于對輸入的pixel value進行線性變換,與大家常用的mean與std相似,只不過它把normalize的部分融合進了mean與std中。
而對于模型的評估方式,分類網(wǎng)絡(luò)我們主要使用的是Top1與Top5 accuracy,也就是看模型輸出的概率中排序最高與前五的類別里是否包含了正確的類別,而目標檢測網(wǎng)絡(luò)我們使用的則是COCO官方的12個評估指標,從不同方面去驗證mlir模型的精度。
先將模型輸出的檢測框經(jīng)過non-maximum suppression剔除掉重疊與概率較低的候選框后再用剩下的計算與ground truth bounding box的IoU,然后根據(jù)不同指標的計算規(guī)則計算出相應(yīng)的average precision與average recall。比如第一個指標是指從IoU=0.5到0.95每間隔0.05計算一次模型針對單個類別的precision, 然后取平均數(shù),再將所有類別的precision累加起來取平均數(shù),這其實就是mAP的其中一種計算方式,而其它兩個指標只采用了單個IoU threshold來計算AP。
COCO數(shù)據(jù)集還會按照物體所占的像素數(shù)量來區(qū)分大中小物體,TPU-MLIR也會分別對這些不同尺寸物體的檢測結(jié)果計算AP與AR來驗證mlir模型在檢測大中小物體上的精度
至于這個AR max=1,10和100指的是分別限制每張圖片只有1,10和100個概率最高的檢測結(jié)果,然后與第一個AP的計算方式相似,按照IoU threshold從0.5到0.95,每隔0.05計算一次單個類別的AR,先取AR在不同IoU下的平均值,再取AR在不同類別下的平均值。
TPU-MLIR目前在github上發(fā)布了一系列待解決的問題,非常歡迎對AI編譯器感興趣且想要在空閑時間豐富自己開源項目經(jīng)歷的朋友們來參與,與我們一起完善TPU-MLIR這個新一代的AI編譯器。
審核編輯:彭菁
-
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7713瀏覽量
90135 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1221瀏覽量
25193 -
模型轉(zhuǎn)換
+關(guān)注
關(guān)注
0文章
4瀏覽量
5263 -
nlp
+關(guān)注
關(guān)注
1文章
490瀏覽量
22414
發(fā)布評論請先 登錄
相關(guān)推薦
TPU-MLIR開發(fā)環(huán)境配置時出現(xiàn)的各種問題求解
FP16轉(zhuǎn)換報錯的原因?
【算能RADXA微服務(wù)器試用體驗】+ GPT語音與視覺交互:2,圖像識別
在“model_transform.py”添加參數(shù)“--resize_dims 640,640”是否表示tpu會自動resize的?
TPU和GPU的帶寬模型
TPU-MLIR量化敏感層分析,提升模型推理精度

如何適配新架構(gòu)?TPU-MLIR代碼生成CodeGen全解析!

模糊圖像變高清:TPU-MLIR引領(lǐng)EDSR向MDSR的智能轉(zhuǎn)換!

深入學(xué)習(xí)和掌握TPU硬件架構(gòu)有困難?TDB助力你快速上手!

重塑翻譯與識別技術(shù):開源語音識別模型Whisper的編譯優(yōu)化與部署

如何高效處理LMEM中的數(shù)據(jù)?這篇文章帶你學(xué)會!

評論