色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

FP32推理TensorRT演示

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:OpenCV學堂 ? 2022-09-23 14:47 ? 次閱讀

引言

YOLOv5最新版本的6.x已經支持直接導出engine文件并部署到TensorRT上了。

FP32推理TensorRT演示

可能很多人不知道YOLOv5新版本6.x中已經支持一鍵導出Tensor支持engine文件,而且只需要一條命令行就可以完成:演示如下:

python export.py --weights yolov5s.pt --include onnx engine --device 0

其中onnx表示導出onnx格式的模型文件,支持部署到:

- OpenCV DNN- OpenVINO- TensorRT- ONNXRUNTIME
但是在TensorRT上推理想要速度快,必須轉換為它自己的engine格式文件,參數engine就是這個作用。上面的命令行執行完成之后,就會得到onnx格式模型文件與engine格式模型文件。--device 0參數表示GPU 0,因為我只有一張卡!上述導出的FP32的engine文件。

使用tensorRT推理 YOLOv5 6.x中很簡單,一條命令行搞定了,直接執行:

python detect.py --weights yolov5s.engine --view-img --source data/images/zidane.jpg

FP16推理TensorRT演示

在上面的導出命令行中修改為如下

python export.py --weights yolov5s.onnx --include engine --half --device 0
其中就是把輸入的權重文件改成onnx格式,然后再添加一個新的參 --half 表示導出半精度的engine文件。就這樣直接執行該命令行就可以導出生成了,圖示如下:

02d33e88-3af3-11ed-9e49-dac502259ad0.png

03edd9f4-3af3-11ed-9e49-dac502259ad0.png

對比可以發現相比FP32大小的engine文件,FP16的engine文件比FP32的engine大小減少一半左右,整個文件只有17MB大小左右。

推理執行的命令跟FP32的相同,直接運行,顯示結果如下:

對比發現FP32跟FP16版本相比,速度提升了但是精度幾乎不受影響!

INT8量化與推理TensorRT演示

TensorRT的INT量化支持要稍微復雜那么一點點,最簡單的就是訓練后量化。只要完成Calibrator這個接口支持,我用的TensorRT版本是8.4.0.x的,它支持以下幾種Calibrator:

07b38d90-3af3-11ed-9e49-dac502259ad0.png

不同的量化策略,得到的結果可能稍有差異,另外高版本上的INT8量化之后到低版本的TensorRT機器上可能無法運行,我就遇到過!所以建議不同平臺要統一TensorRT版本之后,再量化部署會比較好。上面的Calibrator都必須完成四個方法,分別是:

#使用calibrator驗證時候每次張數,跟顯存有關系,最少1張get_batch_size  #獲取每個批次的圖像數據,組裝成CUDA內存數據get_batch  #如果以前運行過保存過,可以直接讀取量化,低碳給國家省電read_calibration_cache#保存calibration文件,量化時候會用到write_calibration_cache

這塊對函數集成不懂建議參考TensorRT自帶的例子:

TensorRT-8.4.0.6samplespythonint8_caffe_mnist
幾乎是可以直接用的!Copy過來改改就好了!

搞定了Calibrator之后,需要一個驗證數據集,對YOLOv5來說,其默認coco128數據集就是一個很好的驗證數據,在data文件夾下有一個coco128.yaml文件,最后一行就是就是數據集的下載URL,直接通過URL下載就好啦。

完成自定義YOLOv5的Calibrator之后,就可以直接讀取onnx模型文件,跟之前的官方轉換腳本非常相似了,直接在上面改改,最重要的配置與生成量化的代碼如下:

# build trt enginebuilder.max_batch_size = 1config.max_workspace_size = 1 << 30config.set_flag(trt.BuilderFlag.INT8)config.int8_calibrator = calibratorprint('Int8 mode enabled')plan = builder.build_serialized_network(network, config)
主要就是設置config中的flag為INT8,然后直接運行,得到plan對象,反向序列化為engine文件,保存即可。最終得到的INT8量化engine文件的大小在9MB左右。

07d00024-3af3-11ed-9e49-dac502259ad0.png

數據太少,只有128張, INT8量化之后的YOLOv5s模型推理結果并不盡如人意。但是我也懶得再去下載COCO數據集, COCO訓練集一半數據作為驗證完成的量化效果是非常好。 這里,我基于YOLOv5s模型自定義數據集訓練飛鳥跟無人機,對得到模型,直接用訓練集270張數據做完INT8量化之后的推理效果如下

0802faba-3af3-11ed-9e49-dac502259ad0.png

量化效果非常好,精度只有一點下降,但是速度比FP32的提升了1.5倍左右(3050Ti)。

已知問題與解決

量化過程遇到這個錯誤

[09/22/2022-2313] [TRT] [I]   Calibrated batch 127 in 0.30856 seconds.[09/22/2022-2316] [TRT] [E] 2: [quantization.cpp::70] Error Code 2: Internal Error (Assertion min_ <= max_ failed. )[09/22/2022-2316] [TRT] [E] 2: [builder.cpp::619] Error Code 2: Internal Error (Assertion engine != nullptr failed. )Failed to create the engineTraceback (most recent call last):

解決方法,把Calibrator中getBtach方法里面的代碼:

img = np.ascontiguousarray(img, dtype=np.float32)

to

img = np.ascontiguousarray(img, dtype=np.float16)

這樣就可以避免量化失敗。

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

    關注

    0

    文章

    23

    瀏覽量

    17000
  • 模型
    +關注

    關注

    1

    文章

    3462

    瀏覽量

    49789
  • 數據集
    +關注

    關注

    4

    文章

    1220

    瀏覽量

    25183

原文標題:YOLOv5模型部署TensorRT之 FP32、FP16、INT8推理

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    如何在GPU上使用TensorRT部署深度學習應用程序

    本文未涉及的一個主題是在 TensorRT 中以 INT8 精度精確地執行推理TensorRT 自動轉換 FP32 網絡以進行部署,同時降低精度損失。為了實現這一目標,
    的頭像 發表于 04-01 15:19 ?5159次閱讀
    如何在GPU上使用<b class='flag-5'>TensorRT</b>部署深度學習應用程序

    全志XR806+TinyMaix,在全志XR806上實現ML推理

    ATmega328 (32KB Flash, 2KB Ram) 都能基于TinyMaix跑mnist(手寫數字識別)支持INT8/FP32/FP16模型,實驗性地支持FP8模型,支持keras h5或
    發表于 09-21 09:56

    推斷FP32模型格式的速度比CPU上的FP16模型格式快是為什么?

    在 CPU 上推斷出 FP32 模型格式和 FP16 模型格式。 FP32 模型格式的推斷速度比 FP16 模型格式快。 無法確定推斷 FP32
    發表于 08-15 08:03

    C++演示中的推理速度比Python演示中的推理速度更快是為什么?

    在同一主機機上采用相同型號的 Ran Object Detection C++ 演示 和 對象檢測 Python 演示 。 C++ 演示中的推理速度比 Python
    發表于 08-15 06:52

    初次嘗試Tengine 適配 Ncnn FP32 模型

    初次嘗試Tengine 適配 Ncnn FP32 模型,相較于mnn,ncnn而言,這個框架對于多框架模型有著很好的支持性 – Caffe,Tensorflow,TF-Lite, M...
    發表于 02-07 11:16 ?0次下載
    初次嘗試Tengine 適配 Ncnn <b class='flag-5'>FP32</b> 模型

    NVIDIA TensorRT 8.2將推理速度提高6倍

      TensorRT 是一款高性能的深度學習推理優化器和運行時,為人工智能應用程序提供低延遲、高吞吐量推理TensorRT 用于醫療、汽車、制造、互聯網/電信服務、金融服務和能源等
    的頭像 發表于 03-31 17:10 ?1882次閱讀

    使用NVIDIA TensorRT優化T5和GPT-2

    在這篇文章中,我們向您介紹了如何將擁抱臉 PyTorch T5 和 GPT-2 模型轉換為優化的 TensorRT 推理引擎。 TensorRT 推理機用作原始 HuggingFace
    的頭像 發表于 03-31 17:25 ?3953次閱讀
    使用NVIDIA <b class='flag-5'>TensorRT</b>優化T5和GPT-2

    NVIDIA TensorRT和DLA分析

      位于 GitHub 存儲庫中的sampleMNIST演示了如何導入經過訓練的模型、構建 TensorRT 引擎、序列化和反序列化引擎,最后使用引擎執行推理
    的頭像 發表于 05-18 10:06 ?3362次閱讀

    NVIDIA T4 GPU和TensorRT提高微信搜索速度

    騰訊公司深耕模型量化開發,且長期與 NVIDIA 團隊合作,成功將深度學習模型精度從 FP32 壓縮到 FP16 以及 INT8。現在,該技術再次獲得了新的重要突破。騰訊團隊利用全新設計的 QAT
    的頭像 發表于 06-27 14:34 ?1822次閱讀

    TensorRT 8.6 C++開發環境配置與YOLOv8實例分割推理演示

    對YOLOv8實例分割TensorRT 推理代碼已經完成C++類封裝,三行代碼即可實現YOLOv8對象檢測與實例分割模型推理,不需要改任何代碼即可支持自定義數據訓練部署推理
    的頭像 發表于 04-25 10:49 ?6579次閱讀
    <b class='flag-5'>TensorRT</b> 8.6 C++開發環境配置與YOLOv8實例分割<b class='flag-5'>推理</b><b class='flag-5'>演示</b>

    三種主流模型部署框架YOLOv8推理演示

    部署。這里以YOLOv8為例,演示了YOLOv8對象檢測模型在OpenVINO、ONNXRUNTIME、TensorRT三個主流框架上C++推理演示效果。
    的頭像 發表于 08-06 11:39 ?2981次閱讀

    邊緣生成人工智能推理技術面臨的挑戰有哪些

    雖然訓練通常基于生成大量數據的 fp32fp64 浮點算法,但它不需要嚴格的延遲。功耗高,成本承受能力高。 相當不同的是推理過程。推理通常在
    發表于 10-10 09:38 ?562次閱讀
    邊緣生成人工智能<b class='flag-5'>推理</b>技術面臨的挑戰有哪些

    Torch TensorRT是一個優化PyTorch模型推理性能的工具

    那么,什么是Torch TensorRT呢?Torch是我們大家聚在一起的原因,它是一個端到端的機器學習框架。而TensorRT則是NVIDIA的高性能深度學習推理軟件工具包。Torch Te
    的頭像 發表于 01-09 16:41 ?2307次閱讀
    Torch <b class='flag-5'>TensorRT</b>是一個優化PyTorch模型<b class='flag-5'>推理</b>性能的工具

    TensorRT-LLM低精度推理優化

    本文將分享 TensorRT-LLM 中低精度量化內容,并從精度和速度角度對比 FP8 與 INT8。首先介紹性能,包括速度和精度。其次,介紹量化工具 NVIDIA TensorRT Model
    的頭像 發表于 11-19 14:29 ?948次閱讀
    <b class='flag-5'>TensorRT</b>-LLM低精度<b class='flag-5'>推理</b>優化

    解鎖NVIDIA TensorRT-LLM的卓越性能

    NVIDIA TensorRT-LLM 是一個專為優化大語言模型 (LLM) 推理而設計的庫。它提供了多種先進的優化技術,包括自定義 Attention Kernel、Inflight
    的頭像 發表于 12-17 17:47 ?570次閱讀
    主站蜘蛛池模板: 青青青青青青青草 | 精品久久久久久久国产潘金莲 | 国产成人无码区免费内射一片色欲 | 国产免费69成人精品视频 | 久久夜色撩人精品国产 | 99久久国产露脸精品麻豆 | 青草久久精品亚洲综合专区 | 好看AV中文字幕在线观看 | 撕烂衣服扒开胸罩揉爆胸 | 好吊日视频在线 | 亚洲乱码AV久久久久久久 | 麻豆精品人妻一区二区三区蜜桃 | 久久亚洲电影www电影网 | 亲胸揉胸膜下刺激视频在线观看 | 扒开老师大腿猛进AAA片邪恶 | 91蜜桃视频| 国产精品A8198V久久A片 | 亚洲 欧美 日韩 卡通 另类 | jealousvue成熟40岁| 国精产品一区一区三区有限公司 | 超碰公开在线caopon | 我和妽妽在厨房里的激情区二区 | 久久re这里视频精品15 | 亚洲男人97色综合久久久 | 欧美日韩精品不卡在线观看 | 亚洲黄色大片 | 男女久久久国产一区二区三区 | 龙岩综合频道 | 九九热在线视频精品店 | 日产日韩亚洲欧美综合搜索 | 秋霞最新高清无码鲁丝片 | 免费撕开胸罩吮胸视频 | 色婷婷综合久久久中文字幕 | 99久久久无码国产精品不卡按摩 | 神马电影我不卡4k手机在线观看 | 使劲别停好大好深好爽动态图 | 文中字幕一区二区三区视频播放 | 日韩精品卡1卡2三卡四卡乱码 | 九九热只有精品 | 欧美亚洲日韩一道免费观看 | 亚洲精品资源网在线观看 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品