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

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

評(píng)論