精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用TPU-MLIR進行模型轉換

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-21 10:41 ? 次閱讀

使用TPU-MLIR進行模型轉換的時候我們會在各個階段對比模型每一層輸出的相似度,以確保模型轉換的正確性,同時也能夠在適配過程中更方便地定位問題來源。

但我們并不知道轉換后的模型精度如何,特別是INT8量化后的模型輸出,往往與原模型輸出存在較大的區別(當然這個區別是在可接受的范圍內的),光靠對比輸出的相似度我們并不能看出INT8模型的表現究竟怎么樣。所以,TPU-MLIR也提供了精度驗證的接口,來檢驗轉換后的模型表現。

在進行精度驗證前,首先我們需要準備好用于驗證的數據集,因為TPU-MLIR里沒有自帶完整的測試集,所以用于精度驗證的數據集需要大家自行下載,對于分類網絡主要使用的是IMAGENET2012的驗證集,一共有5w張圖片,而目標檢測網絡使用的是COCO2017的驗證集,共5k張圖。TPU-MLIR后續還會逐步支持更多類型,例如NLP領域的網絡,未來也會開放。

另外,對于分類數據集的擺放方式,是將5w張圖片分別放在1000個子目錄中,對應imagenet里的1000個類別,每個類別下有50張屬于該類別的圖片,這類擺放方式自然就不再需要額外的標簽文件;

對于COCO數據集的話相對比較簡單,所有的圖片都是放在一個目錄下,每張圖片的類別信息都會從對應的json文件中提取;

wKgaomTeyfWAJ1I5AAIyc10Ac1Y100.jpg

準備好數據集后,我們就可以直接使用model_eval這一接口對mlir模型進行精度驗證,主要會用到這五個參數

model_file與dataset參數用于提供模型與數據集路徑

count用于明確我們要用來驗證精度的圖片數量,默認情況下是使用整個目錄下的數據集

dataset_type則是根據驗證的模型類型用于指定對應數據集的加載方式

postprocess_type則是用來明確輸出的后處理方式,然后用相應的metrics來計算精度

那這里不需要提供預處理信息嗎?

其實在mlir模型的input_op里就已經包含了對數據的預處理信息,主要包括mean, scale, resize的尺寸與resize時是否保持高寬比, 輸入圖片數據的pixel_format等,其中Mean和scale用于對輸入的pixel value進行線性變換,與大家常用的mean與std相似,只不過它把normalize的部分融合進了mean與std中。

而對于模型的評估方式,分類網絡我們主要使用的是Top1與Top5 accuracy,也就是看模型輸出的概率中排序最高與前五的類別里是否包含了正確的類別,而目標檢測網絡我們使用的則是COCO官方的12個評估指標,從不同方面去驗證mlir模型的精度。

先將模型輸出的檢測框經過non-maximum suppression剔除掉重疊與概率較低的候選框后再用剩下的計算與ground truth bounding box的IoU,然后根據不同指標的計算規則計算出相應的average precision與average recall。比如第一個指標是指從IoU=0.5到0.95每間隔0.05計算一次模型針對單個類別的precision, 然后取平均數,再將所有類別的precision累加起來取平均數,這其實就是mAP的其中一種計算方式,而其它兩個指標只采用了單個IoU threshold來計算AP。

COCO數據集還會按照物體所占的像素數量來區分大中小物體,TPU-MLIR也會分別對這些不同尺寸物體的檢測結果計算AP與AR來驗證mlir模型在檢測大中小物體上的精度

至于這個AR max=1,10和100指的是分別限制每張圖片只有1,10和100個概率最高的檢測結果,然后與第一個AP的計算方式相似,按照IoU threshold從0.5到0.95,每隔0.05計算一次單個類別的AR,先取AR在不同IoU下的平均值,再取AR在不同類別下的平均值。

TPU-MLIR目前在github上發布了一系列待解決的問題,非常歡迎對AI編譯器感興趣且想要在空閑時間豐富自己開源項目經歷的朋友們來參與,與我們一起完善TPU-MLIR這個新一代的AI編譯器。

審核編輯:彭菁

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 網絡
    +關注

    關注

    14

    文章

    7386

    瀏覽量

    88207
  • 數據集
    +關注

    關注

    4

    文章

    1197

    瀏覽量

    24531
  • 模型轉換
    +關注

    關注

    0

    文章

    3

    瀏覽量

    5180
  • nlp
    nlp
    +關注

    關注

    1

    文章

    481

    瀏覽量

    21932
收藏 人收藏

    評論

    相關推薦

    TPU-MLIR開發環境配置時出現的各種問題求解

    按照 TPU-MLIR 開發指南進行環境配置: 2.1. 代碼下載? 代碼路徑: https://github.com/sophgo/tpu-mlir 克隆該代碼后, 需要在Docker中編譯
    發表于 01-10 08:02

    FP16轉換報錯的原因?

    FP32轉換正常,FP16轉換報錯(model_transform正常) 運行命令為: model_deploy.py--mlir
    發表于 01-10 08:01

    【算能RADXA微服務器試用體驗】+ GPT語音與視覺交互:2,圖像識別

    /download.sh 下載完成后,應該可以看到文件夾中出現以下模型: ./models ├── BM1684 │├── yolov8s_fp32_1b.bmodel# 使用TPU-MLIR編譯,用于
    發表于 07-14 23:36

    在“model_transform.py”添加參數“--resize_dims 640,640”是否表示tpu會自動resize的?

    resize和letterbox的處理,在“TPU-MLIR入門快速指南.pdf”里的“使用TPU做前處理”里提到了“圖像裁剪”,沒看明白,能詳細解釋下的嗎?
    發表于 09-18 07:56

    TPU和GPU的帶寬模型

    帶寬模型最大的限制就是這些計算是針對特定矩陣大小的,計算的難度在各種尺寸之間都不同。例如,如果你的batch size是128,那么GPU的速度會比TPU稍快一點。如果batch size小于128
    的頭像 發表于 10-21 09:20 ?4248次閱讀

    如何給TPU-MLIR添加新的算子

    如何給TPU-MLIR添加新的算子
    的頭像 發表于 08-18 11:29 ?574次閱讀
    如何給<b class='flag-5'>TPU-MLIR</b>添加新的算子

    TPU-MLIR中的融合處理

    TPU-MLIR中的融合處理
    的頭像 發表于 08-18 11:29 ?414次閱讀
    <b class='flag-5'>TPU-MLIR</b>中的融合處理

    基于STE的QAT算法

    TPU-MLIR之量化感知訓練(下)
    的頭像 發表于 08-21 10:46 ?559次閱讀
    基于STE的QAT算法

    TPU-MLIR之量化感知訓練

    TPU-MLIR之量化感知訓練(上)
    的頭像 發表于 08-21 10:47 ?699次閱讀
    <b class='flag-5'>TPU-MLIR</b>之量化感知訓練

    TPU-MLIR量化敏感層分析,提升模型推理精度

    背景介紹TPU-MLIR編譯器可以將機器學習模型轉換成算能芯片上運行的bmodel模型。由于浮點數的計算需要消耗更多的計算資源和存儲空間,實際應用中往往采用量化后的
    的頭像 發表于 10-10 10:17 ?1074次閱讀
    <b class='flag-5'>TPU-MLIR</b>量化敏感層分析,提升<b class='flag-5'>模型</b>推理精度

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

    背景介紹TPU-MLIR的CodeGen是BModel生成的最后一步,該過程目的是將MLIR文件轉換成最終的Bmodel。本文介紹了CodeGen的基本原理和流程,并記錄了針對BM1684X等新架構
    的頭像 發表于 11-02 08:34 ?1414次閱讀
    如何適配新架構?<b class='flag-5'>TPU-MLIR</b>代碼生成CodeGen全解析!

    模糊圖像變高清:TPU-MLIR引領EDSR向MDSR的智能轉換!

    模型介紹EDSR模型,全稱為enhanceddeepsuper-resolutionnetwork(增強的深度學習超分辨率重建網絡)。該模型可以對指定圖片進行超分辨率操作,提高清晰度。
    的頭像 發表于 12-11 17:51 ?1191次閱讀
    模糊圖像變高清:<b class='flag-5'>TPU-MLIR</b>引領EDSR向MDSR的智能<b class='flag-5'>轉換</b>!

    深入學習和掌握TPU硬件架構有困難?TDB助力你快速上手!

    快速定位BModel與原始模型推理結果不一致的問題,進而修復TPU-MLIR的編譯或模型出錯點。下圖是TDB工具集的框架。TDB主要是基于Python開發的,其核心功能
    的頭像 發表于 12-22 08:33 ?506次閱讀
    深入學習和掌握<b class='flag-5'>TPU</b>硬件架構有困難?TDB助力你快速上手!

    重塑翻譯與識別技術:開源語音識別模型Whisper的編譯優化與部署

    :通過修改TPU-MLIR編譯器代碼,可以對Whisper模型性能進行深度優化,使得模型在SOPHONBM1684X處理器上運行時間減少到原來的一半,本篇文章將帶
    的頭像 發表于 01-06 08:33 ?2798次閱讀
    重塑翻譯與識別技術:開源語音識別<b class='flag-5'>模型</b>Whisper的編譯優化與部署

    如何高效處理LMEM中的數據?這篇文章帶你學會!

    WeightReorder是TPU-MLIR的一個pass(參考TPU-MLIR編譯流程圖),其完成了對部分常量數據的Layout變化和合并。本文介紹其中ConvlotionKernel
    的頭像 發表于 01-19 08:33 ?634次閱讀
    如何高效處理LMEM中的數據?這篇文章帶你學會!