NNCF介紹
OpenVINO2023版本衍生出了一個(gè)新支持工具包NNCF(Neural Network Compression Framework – 神經(jīng)網(wǎng)絡(luò)壓縮框架),通過對(duì)OpenVINO IR格式模型的壓縮與量化更好的提升模型在OpenVINO框架上部署的推理性能。
安裝NNCF
pip install nncf
NNCF關(guān)鍵特性
訓(xùn)練后壓縮算法支持權(quán)重壓縮與量化,訓(xùn)練時(shí)壓縮算法支持感知量化、混合精度量化、二值、稀疏、過濾剪枝、運(yùn)動(dòng)剪枝等算法。圖示如下:
YOLOv8量化壓縮
基于NNCF實(shí)現(xiàn)YOLOv8預(yù)訓(xùn)練模型的訓(xùn)練后量化壓縮(PTQ),實(shí)現(xiàn)INT8量化YOLOv8模型生成。首先需要使用YOLOv8命令行工具導(dǎo)出OpenVINO格式模型,命令行如下:
yolo export model=yolov8n.pt format=openvino然后基于YOLOv8框架的函數(shù)構(gòu)建一個(gè)YOLOv8模型對(duì)應(yīng)的COCO數(shù)據(jù)集的Validator,相關(guān)的代碼如下:
官方給出的代碼里面是有個(gè)ValidatorClass,但是我發(fā)現(xiàn)YOLOv8框架早已經(jīng)不支持,這里其實(shí)主要是構(gòu)建自己的Dataset跟DataLoader而已,簡(jiǎn)單粗暴的點(diǎn)是可以自己直接構(gòu)建,就是要寫點(diǎn)代碼。我發(fā)現(xiàn)了YOLOv8框架里面有個(gè)DetectionValidator是可以用的,于是我就用這個(gè),然后直接給一個(gè)圖像文件夾就可以獲取dataloader實(shí)例了。準(zhǔn)備好驗(yàn)證數(shù)據(jù)以后,就是最后一步了,啟動(dòng)模型INT8量化,相關(guān)的代碼如下:
這樣就可以完成PTQ量化模型的生成。最后這部分的代碼,其實(shí)在GITHUB的官方教程上是有說明跟給出的,我這里再貼一下:
就是說,實(shí)際上針對(duì)自定義數(shù)據(jù)集,你自己構(gòu)建一個(gè)DataLoader即可。
量化版YOLOv8推理測(cè)試
基于量化版本,基于OpenVINO C++ SDK在不同的部署與加速方式下,最終的測(cè)試結(jié)果如下:
從此,我又相信YOLOv8+OpenVINO了。
特別說明
請(qǐng)用OpenVINO20023.1版本測(cè)試。
審核編輯:湯梓紅
-
模型
+關(guān)注
關(guān)注
1文章
3464瀏覽量
49805 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1221瀏覽量
25193 -
OpenVINO
+關(guān)注
關(guān)注
0文章
112瀏覽量
379
原文標(biāo)題:NNCF壓縮與量化YOLOv8模型與OpenVINO部署測(cè)試
文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
使用YOLOv8做目標(biāo)檢測(cè)和實(shí)例分割的演示
在C++中使用OpenVINO工具包部署YOLOv5模型
YOLOv8自定義數(shù)據(jù)集訓(xùn)練到模型部署推理簡(jiǎn)析
在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8分類模型

在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標(biāo)檢測(cè)模型

AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型

在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

教你如何用兩行代碼搞定YOLOv8各種模型推理

在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

三種主流模型部署框架YOLOv8推理演示
基于YOLOv8的自定義醫(yī)學(xué)圖像分割

基于OpenCV DNN實(shí)現(xiàn)YOLOv8的模型部署與推理演示

RV1126 yolov8訓(xùn)練部署教程

RV1126 yolov8訓(xùn)練部署教程

評(píng)論