一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Yolo系列模型的部署、精度對齊與int8量化加速

jf_pmFSk4VX ? 來源:GiantPandaCV ? 2023-11-23 16:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Yolo系列模型的部署、精度對齊與int8量化加速

大家好,我是海濱。寫這篇文章的目的是為宣傳我在23年初到現(xiàn)在完成的一項工作---Yolo系列模型在TensorRT上的部署與量化加速,目前以通過視頻的形式在B站發(fā)布(不收費,只圖一個一劍三連)。

麻雀雖小但五臟俱全,本項目系統(tǒng)介紹了YOLO系列模型在TensorRT上的量化方案,工程型較強,我們給出的工具可以實現(xiàn)不同量化方案在Yolo系列模型的量化部署,無論是工程實踐還是學(xué)術(shù)實驗,相信都會對你帶來一定的幫助。

B站地址(求關(guān)注和三連):https://www.bilibili.com/video/BV1Ds4y1k7yr/

Github開源地址(求star):https://github.com/thb1314/mmyolo_tensorrt/

當(dāng)時想做這個的目的是是為了總結(jié)一下目標(biāo)檢測模型的量化加速到底會遇到什么坑,只是沒想到不量化坑都會很多。

比如即使是以FP32形式推理,由于TensorRT算子參數(shù)的一些限制和TRT和torch內(nèi)部實現(xiàn)的不同,導(dǎo)致torch推理結(jié)果會和TensorRT推理結(jié)果天然的不統(tǒng)一,至于為什么不統(tǒng)一這里賣個關(guān)子大家感興趣可以看下視頻。

下面說一下我們這個項目做了哪些事情

YOLO系列模型在tensorrt上的部署與精度對齊

該項目詳細(xì)介紹了Yolo系列模型在TensorRT上的FP32的精度部署,基于mmyolo框架導(dǎo)出各種yolo模型的onnx,在coco val數(shù)據(jù)集上對齊torch版本與TensorRT版本的精度。

在此過程中我們發(fā)現(xiàn),由于TopK算子限制和NMS算子實現(xiàn)上的不同,我們無法完全對齊torch和yolo模型的精度,不過這種風(fēng)險是可解釋且可控的。

詳解TensorRT量化的三種實現(xiàn)方式

TensorRT量化的三種實現(xiàn)方式包括trt7自帶量化、dynamic range api,trt8引入的QDQ算子。

Dynamic range api會在采用基于MQbench框架做PTQ時講解。

TensorRT引入的QDQ算子方式在針對Yolo模型的PTQ和QAT方式時都有詳細(xì)的闡述,當(dāng)然這個過程也沒有那么順利。

在基于PytorchQuantization導(dǎo)出的含有QDQ節(jié)點的onnx時,我們發(fā)現(xiàn)盡管量化版本的torch模型精度很高,但是在TensorRT部署時精度卻很低,TRT部署收精度損失很嚴(yán)重,通過可視化其他量化形式的engine和問題engine進(jìn)行對比,我們發(fā)現(xiàn)是一些層的int8量化會出問題,由此找出問題量化節(jié)點解決。

詳解MQbench量化工具包在TensorRT上的應(yīng)用

我們研究了基于MQbench框架的普通PTQ算法和包括Adaround高階PTQ算法,且啟發(fā)于Adaround高階PTQ算法。

我們將torch版本中的HistogramObserver引入到MQBench中,activation采用HistogramObserverweight采用MinMaxObserver,在PTQ過程中,weight的校準(zhǔn)前向傳播一次,activation的校準(zhǔn)需要多次因此我們將weight的PTQ過程和activation的PTQ過程分開進(jìn)行,加速PTQ量化。實踐證明,我們采用上述配置的分離PTQ量化在yolov8上可以取得基本不掉點的int8量化精度。

針對YoloV6這種難量化模型,分別采用部分量化和QAT來彌補量化精度損失

在部分量化階段,我們采用量化敏感層分析技術(shù)來判斷哪些層最需要恢復(fù)原始精度,給出各種metric的量化敏感層實現(xiàn)。

在QAT階段,不同于原始Yolov6論文中蒸餾+RepOPT的方式,我們直接采用上述部分量化后的模型做出初始模型進(jìn)行finetune,結(jié)果發(fā)現(xiàn)finetune后的模型依然取得不錯效果。

針對旋轉(zhuǎn)目標(biāo)檢測,我們同樣給出一種端到端方案,最后的輸出就是NMS后的結(jié)果。通過將TensorRT中的EfficientNMS Plugin和mmcv中旋轉(zhuǎn)框iou計算的cuda實現(xiàn)相結(jié)合,給出EfficientNMS for rotated box版本,經(jīng)過簡單驗證我們的TRT版本與Torch版本模型輸出基本對齊。

以上就是我們這個項目做的事情,歡迎各位看官關(guān)注b站和一劍三連。同時,如果各位有更好的想法也歡迎給我們的git倉庫提PR。

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

    關(guān)注

    23

    文章

    4710

    瀏覽量

    95403
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3521

    瀏覽量

    50431
  • 精度
    +關(guān)注

    關(guān)注

    0

    文章

    265

    瀏覽量

    20463

原文標(biāo)題:Yolo系列模型的部署、精度對齊與int8量化加速

文章出處:【微信號:GiantPandaCV,微信公眾號:GiantPandaCV】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    計算精度對比:FP64、FP32、FP16、TF32、BF16、int8

    、BF16、int8以及混合精度等。本文將淺顯易懂地介紹這些精度計算方式及其差別。什么是精度?精度,是數(shù)據(jù)表示的一個重要參數(shù),它決定了數(shù)據(jù)的
    的頭像 發(fā)表于 06-26 11:09 ?385次閱讀
    計算<b class='flag-5'>精度</b>對比:FP64、FP32、FP16、TF32、BF16、<b class='flag-5'>int8</b>

    使用 NPU 插件對量化的 Llama 3.1 8b 模型進(jìn)行推理時出現(xiàn)“從 __Int64 轉(zhuǎn)換為無符號 int 的錯誤”,怎么解決?

    推理量化的 Llama 3.1 8B 模型時遇到錯誤: Runtime error: Bad cast from __int64 to unsigned
    發(fā)表于 06-25 07:20

    將Whisper大型v3 fp32模型轉(zhuǎn)換為較低精度后,推理時間增加,怎么解決?

    將 openai/whisper-large-v3 FP32 模型轉(zhuǎn)換為 FP16、INT8INT4。 推理所花費的時間比在 FP32 上花費的時間要多
    發(fā)表于 06-24 06:23

    為什么無法在GPU上使用INT8INT4量化模型獲得輸出?

    安裝OpenVINO? 2024.0 版本。 使用 optimum-intel 程序包將 whisper-large-v3 模型轉(zhuǎn)換為 int 4 和 int8,并在 GPU 上使用 OpenVINO? 運行推理。 沒有可用的
    發(fā)表于 06-23 07:11

    i.mx95的EIQ轉(zhuǎn)換器將int8更改為uint8后出現(xiàn)報錯怎么解決?

    我有一個大型量化 tensorflow lite 模型。它包括輸入和輸出類型為 “int8” 的 “Softmax”作。 我正在運行 eIQ 模型工具版本 1.14.0 將
    發(fā)表于 04-14 07:15

    在OpenVINO?工具套件的深度學(xué)習(xí)工作臺中無法導(dǎo)出INT8模型怎么解決?

    無法在 OpenVINO? 工具套件的深度學(xué)習(xí) (DL) 工作臺中導(dǎo)出 INT8 模型
    發(fā)表于 03-06 07:54

    是否可以輸入隨機數(shù)據(jù)集來生成INT8訓(xùn)練后量化模型?

    無法確定是否可以輸入隨機數(shù)據(jù)集來生成 INT8 訓(xùn)練后量化模型
    發(fā)表于 03-06 06:45

    首個Mamba系列模型量化方案MambaQuant解讀

    MambaQuant在Mamba系列模型上實現(xiàn)了W8A8/W4A8量化的方法,精度逼近浮點,超過
    的頭像 發(fā)表于 03-05 11:10 ?584次閱讀
    首個Mamba<b class='flag-5'>系列</b><b class='flag-5'>模型</b><b class='flag-5'>量化</b>方案MambaQuant解讀

    添越智創(chuàng)基于 RK3588 開發(fā)板部署測試 DeepSeek 模型全攻略

    飆升至百分之百,滿負(fù)荷運轉(zhuǎn),而開發(fā)板強大的 NPU 卻閑置一旁,無法發(fā)揮加速運算優(yōu)勢,這在一定程度上限制了模型的運行效率與性能表現(xiàn)。 02-用RKLLM量化部署-挖掘NPU潛力
    發(fā)表于 02-14 17:42

    AI模型部署邊緣設(shè)備的奇妙之旅:如何實現(xiàn)手寫數(shù)字識別

    準(zhǔn)備工作 在進(jìn)行模型部署之前,我們首先需要確認(rèn)自己手上的模塊的支持哪些算子、支持什么類型的量化int4/int8/fp16/混合
    發(fā)表于 12-06 17:20

    助力AIoT應(yīng)用:在米爾FPGA開發(fā)板上實現(xiàn)Tiny YOLO V4

    為定點精度(例如 INT8),而非浮點數(shù)。這在維持準(zhǔn)確度的同時顯著降低計算量,尤其適合 FPGA 的固定點運算支持。 Tiny YOLO 模型在 Vivado HLS 中的層層轉(zhuǎn)化
    發(fā)表于 12-06 17:18

    TensorRT-LLM低精度推理優(yōu)化

    本文將分享 TensorRT-LLM 中低精度量化內(nèi)容,并從精度和速度角度對比 FP8INT8。首先介紹性能,包括速度和精度。其次,介
    的頭像 發(fā)表于 11-19 14:29 ?1278次閱讀
    TensorRT-LLM低<b class='flag-5'>精度</b>推理優(yōu)化

    OrangePi KunPeng Pro部署AI模型介紹

    OrangePi Kunpeng Pro是一款香橙派聯(lián)合華為精心打造的高性能板卡,搭載了鯤鵬處理器,可提供8TOPS INT8計算能力,板卡設(shè)計很精致,板載資源也非常多:
    的頭像 發(fā)表于 11-16 11:03 ?1131次閱讀
    OrangePi KunPeng Pro<b class='flag-5'>部署</b>AI<b class='flag-5'>模型</b>介紹

    【飛凌嵌入式OK3576-C開發(fā)板體驗】rkllm模型量化構(gòu)建

    ;目前 rk3576 平臺支持“w4a16”和“w8a8”兩種量化類型,rk3588 僅支持“w8a8量化類型; target_platform:
    發(fā)表于 08-27 22:50

    源2.0-M32大模型發(fā)布量化版 運行顯存僅需23GB 性能可媲美LLaMA3

    2.0-M32量化版是"源"大模型團(tuán)隊為進(jìn)一步提高模算效率,降低大模型部署運行的計算資源要求而推出的版本,通過采用領(lǐng)先的量化技術(shù),將原
    的頭像 發(fā)表于 08-25 22:06 ?679次閱讀
    源2.0-M32大<b class='flag-5'>模型</b>發(fā)布<b class='flag-5'>量化</b>版 運行顯存僅需23GB 性能可媲美LLaMA3