在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TPU-MLIR中的融合處理

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-18 11:29 ? 次閱讀

通常,模型的輸入是 預(yù)處理過的NCHW 格式的張量,但有時(shí)我們可能希望直接將原始圖像輸入模型。 在這種情況下,我們需要將預(yù)處理操作作為模型的一部分。我們目前支持這些類型的圖像輸入,它們對(duì)應(yīng)不同的像素和通道格式。 其中一些是專門針對(duì) CV 系列芯片的,所以這部分我們暫且先不深入探討。

對(duì)于預(yù)處理類型,我們目前可以做一些典型的預(yù)處理操作,包括中心裁剪、轉(zhuǎn)置、像素格式變換和歸一化,更多類型的操作會(huì)在未來完成。

wKgZomTeycOAUSK6AAIQT2P_8cE172.jpg

那么,我們?cè)鯓硬拍艿玫揭粋€(gè)包含預(yù)處理操作的bmodel呢?

首先,我們像往常一樣進(jìn)行 model_transform 以獲得Top層的mlir 文件。但是在 model_deploy 步驟中,我們需要指定 fuse-preprocess 參數(shù)。 一旦指定了這個(gè)參數(shù),test_input 應(yīng)該是一個(gè)圖像而不是 numpy 數(shù)組。對(duì)于自定義格式,如果不指定,它會(huì)被默認(rèn)設(shè)置為和preprocesse infor一致。

wKgaomTeycWAPE53AAIHHvI1EpE147.jpg

在我們將它提供給模型之前,我們?nèi)匀恍枰獙?duì)圖像數(shù)據(jù)做一些工作,包括:

調(diào)整圖像到指定尺寸。

將數(shù)據(jù)擴(kuò)展為4維。

并轉(zhuǎn)換為ui8 numpy 數(shù)組。這里數(shù)據(jù)格式是 unsinged int8,因?yàn)橄袼刂捣秶?到255的整數(shù)值。

通過運(yùn)行帶有 fuse-preprocess 參數(shù)的 model_deploy 接口,TPU-MLIR 將從 inputOp 收集所有必要的預(yù)處理和校準(zhǔn)信息,然后將它們保存在 InputOp 之后的 preprocessOp 中。

如果沒有提供校準(zhǔn)表,這意味著我們得到一個(gè)不需要任何校準(zhǔn)信息的純浮點(diǎn)型bmodel,在這種情況下我們實(shí)際上也不需要任何校準(zhǔn)信息。

接下來,我們會(huì)對(duì)InputOp進(jìn)行修改,特別是Type,由于模型的輸入是unsigned INT8張量,所以我們需要將其設(shè)置為ui8的均勻量化類型。 您會(huì)發(fā)現(xiàn)量化參數(shù)只是單純?cè)O(shè)置為 1,因?yàn)槲覀儗⒄鎸?shí)的校準(zhǔn)信息保存在preprocessOp中了。接著,func type也要修改,以保證其和inputOp的Type一致。完成所有這些工作后,該模型的輸入現(xiàn)在已修改為圖像。

wKgZomTeyceAeh7nAALZuYPa_Xw814.jpg

這里我們便可以開始lower到 Tpu Dialect。

在這個(gè)階段,如果我們處于F32等浮點(diǎn)量化模式,在 InputOp 之后會(huì)插入一個(gè) CastOp,將數(shù)據(jù)從整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù),以確保類型的一致性。由于 inputOp 的量化參數(shù)已經(jīng)被設(shè)置為 1。對(duì)于 f32,我們就相當(dāng)于只是單純進(jìn)行類型轉(zhuǎn)換。

接下來,我們將開始插入算子,首先在模型中設(shè)置插入點(diǎn),然后在輸入圖像為NHWC格式時(shí)插入permuteOp。當(dāng)resize_dim與模型輸入形狀不同時(shí),SliceOp 會(huì)被用來進(jìn)行裁剪的工作。

wKgZomTeycmAF4Z_AALBsWTbMWM808.jpg

之后我們會(huì)在CastOp后設(shè)置一個(gè)新的插入點(diǎn),ScaleOp在這里會(huì)被用來完成歸一化操作。然后,我們還將添加 swapChannelOp 以進(jìn)行 RGB 和 BGR之間的轉(zhuǎn)換。完成所有算子插入工作后,我們將刪除 preprocessOp,它就像一個(gè)占位符一樣,利用完后就該跟它說再見了。

但是預(yù)處理融合工作還沒有完成,這里我們還可以做一些優(yōu)化。

wKgaomTeycuAeY21AAGNjTzlOzY493.jpg

如果模型原本的第一個(gè)算子是Conv2d,那么其filter的輸入通道一定是3,對(duì)應(yīng)輸入圖像數(shù)據(jù)的3個(gè)顏色通道。

所以我們可以通過簡(jiǎn)單地轉(zhuǎn)換filter的輸入通道來替換swapChannelOp。至此,預(yù)處理工作結(jié)束。

在INT8 量化模式下,情況就有點(diǎn)不同了,

wKgZomTeyc2AbiXDAAIIFKB6ZEE347.jpg

首先,因?yàn)樗胁僮鞫际莍nt8類型,所以不會(huì)有CastOp被插入。

其次,因?yàn)槲覀兿雽?duì)int8數(shù)據(jù)進(jìn)行歸一化操作,并且結(jié)果仍然是 int8,所以我們將插入 scalelutOp 而不是 scaleOp。

ScaleLutOp 就像我們?cè)谟貌檎冶淼姆绞竭M(jìn)行均勻量化,也就是說我們預(yù)先計(jì)算出所有 256 個(gè)可能的量化結(jié)果并保存在表中,然后我們可以在推理時(shí)直接從表中得到結(jié)果。
但是由于我們有 3 對(duì)mean和scale,所以我們必須創(chuàng)建3個(gè)表來對(duì)每個(gè)通道的元素分別進(jìn)行量化。

wKgaomTeyc-AD49vAAJa5GsK-6w323.jpg

需要注意的一點(diǎn)是,當(dāng)所有均值為零時(shí),我們假設(shè)它是unsigned int8量化,否則我們就做signed int8量化。

當(dāng)然,有時(shí)候我們會(huì)遇到所有scales_new都等于1,所有means都為0的情況。 在這種情況下,ScalelutOp 實(shí)際上對(duì)輸入數(shù)據(jù)什么都不做,所以我們將跳過這個(gè)插入部分。

wKgZomTeydGAdt3EAAKM3BIDnS0552.jpg

另外,在TPU-MLIR中我們也可能會(huì)使用mix precision模式,比如在int8量化模式下對(duì)原始的首個(gè)OP做浮點(diǎn)運(yùn)算或者在FP量化模式下對(duì)原始的首個(gè)OP做INT8運(yùn)算。

wKgaomTeydSAVovwAAJz3ae5xSY336.jpg

在前者中,將在 preprocessOp 和原始第一個(gè) op 之間插入一個(gè) CastOp,以將 INT8 數(shù)據(jù)轉(zhuǎn)換為FP,對(duì)于這種情況,fuse preprocess步驟將與 int8 量化模式下相同。

但是對(duì)于后者,我們可以看到兩個(gè)CastOp的作用其實(shí)相互抵消了,所以我們可以將它們刪除并再次像 int8量化模式一樣進(jìn)行fuse preprocess操作。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    51281

    瀏覽量

    427775
  • 預(yù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    10514
  • TPU
    TPU
    +關(guān)注

    關(guān)注

    0

    文章

    145

    瀏覽量

    20790
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    yolov5量化INT8出錯(cuò)怎么處理

    [Success]: tpuc-opt yolov5l_bm1684_int8_sym_tpu.mlir --mlir-disable-threading --strip-io-quant=\"
    發(fā)表于 01-10 06:40

    TPU-MLIR開發(fā)環(huán)境配置時(shí)出現(xiàn)的各種問題求解

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

    【算能RADXA微服務(wù)器試用體驗(yàn)】+ GPT語音與視覺交互:2,圖像識(shí)別

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

    TPU透明副牌.TPU副牌料.TPU抽粒廠.TPU塑膠副牌.TPU再生料.TPU低溫料

    粒子.油杯透明料.TPU低溫.溫副牌.再生改性顆粒. 透明. 白色. 港寶料.留延產(chǎn)品.溫度70--100度. 110-130度. 1.TPU透明:高透明手機(jī)套TPU料、導(dǎo)光
    發(fā)表于 11-21 17:21

    TPU副牌低溫料.TPU熱熔料.TPU溫料.TPU低溫塑膠.TPU低溫抽粒.TPU溫塑料

    .油杯透明料.TPU低溫.溫副牌.再生改性顆粒. 透明. 白色. 港寶料.留延產(chǎn)品.溫度70--100度. 110-130度.長(zhǎng)期倉庫2000噸. 穩(wěn)定供應(yīng)客戶.合作共贏. 另外采購進(jìn)口.國(guó)內(nèi).TPU廢薄膜.副牌粒子.***
    發(fā)表于 11-21 17:33

    在“model_transform.py”添加參數(shù)“--resize_dims 640,640”是否表示tpu會(huì)自動(dòng)resize的?

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

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

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

    如何使用TPU-MLIR進(jìn)行模型轉(zhuǎn)換

    TPU-MLIR之精度驗(yàn)證
    的頭像 發(fā)表于 08-21 10:41 ?788次閱讀
    如何使用<b class='flag-5'>TPU-MLIR</b>進(jìn)行模型轉(zhuǎn)換

    基于STE的QAT算法

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

    TPU-MLIR之量化感知訓(xùn)練

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

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

    背景介紹TPU-MLIR編譯器可以將機(jī)器學(xué)習(xí)模型轉(zhuǎn)換成算能芯片上運(yùn)行的bmodel模型。由于浮點(diǎn)數(shù)的計(jì)算需要消耗更多的計(jì)算資源和存儲(chǔ)空間,實(shí)際應(yīng)用往往采用量化后的模型(也稱定點(diǎn)模型)進(jìn)行推理。相比
    的頭像 發(fā)表于 10-10 10:17 ?1488次閱讀
    <b class='flag-5'>TPU-MLIR</b>量化敏感層分析,提升模型推理精度

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

    的CodeGen重構(gòu)過程。與后端的關(guān)系由于一些歷史的因素,MLIR文件的每個(gè)OP對(duì)應(yīng)的指令并不直接在TPU-MLIR工程中生成,而是需要調(diào)用后端的函數(shù)完成最終指
    的頭像 發(fā)表于 11-02 08:34 ?1857次閱讀
    如何適配新架構(gòu)?<b class='flag-5'>TPU-MLIR</b>代碼生成CodeGen全解析!

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

    TDB介紹TDB(TPUDeBugger)是針對(duì)TPU-MLIR編譯出來的BModel設(shè)計(jì)的一系列調(diào)試工具集合,可以支持對(duì)BModel反匯編、結(jié)構(gòu)可視化、單步執(zhí)行仿真等功能,使用方法靈活。能夠
    的頭像 發(fā)表于 12-22 08:33 ?818次閱讀
    深入學(xué)習(xí)和掌握<b class='flag-5'>TPU</b>硬件架構(gòu)有困難?TDB助力你快速上手!

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

    WeightReorder是TPU-MLIR的一個(gè)pass(參考TPU-MLIR編譯流程圖),其完成了對(duì)部分常量數(shù)據(jù)的Layout變化和合并。本文介紹其中ConvlotionKernel
    的頭像 發(fā)表于 01-19 08:33 ?934次閱讀
    如何高效<b class='flag-5'>處理</b>LMEM<b class='flag-5'>中</b>的數(shù)據(jù)?這篇文章帶你學(xué)會(huì)!

    基于TPU-MLIR:詳解EinSum的完整處理過程!

    、Reduce。EinSum支持任意多的輸入,只要計(jì)算只包含點(diǎn)乘(element-wise)、廣播(broadcast)、歸約求和(reductionsum)都可以使
    的頭像 發(fā)表于 02-19 13:08 ?799次閱讀
    基于<b class='flag-5'>TPU-MLIR</b>:詳解EinSum的完整<b class='flag-5'>處理</b>過程!
    主站蜘蛛池模板: 美女扒开内裤无遮挡禁18 | 福利社藏经阁 | 午夜视频在线观看免费高清 | 亚洲永久免费视频 | 看片福利| 亚洲图色视频 | 天天射天天爽 | 一级黄色片在线看 | 日韩卡1卡2卡三卡四卡二卡免 | 美国一区二区三区 | 伊人久久香 | 亚洲人成网站在线在线 | 天天拍天天操 | 国产在线色 | 91一区二区三区四区五区 | 色清片| 亚洲国产tv | 97精品久久天干天天蜜 | 免费又爽又黄1000禁片 | 99久久国产免费 - 99久久国产免费 | 色中色官网 | ts视频在线观看 | 国产精品 色 | 日本骚视频 | 欧美色图网站 | 未满十八18周岁禁止免费国产 | 97午夜精品 | 热re久久精品国产99热 | 欧美另类图片亚洲偷 | 黄色亚洲 | 久久视频精品36线视频在线观看 | a天堂中文在线 | 中文字字幕码一二区 | 永久免费观看黄网站 | 午夜影院黄 | 黄色一及毛片 | 久久免费视频精品 | 天天操狠狠操夜夜操 | 久久综合色综合 | 国内精品视频在线 | 男人天堂资源站 |