NNCF介紹
OpenVINO2023版本衍生出了一個新支持工具包NNCF(Neural Network Compression Framework – 神經網絡壓縮框架),通過對OpenVINO IR格式模型的壓縮與量化更好的提升模型在OpenVINO框架上部署的推理性能。
安裝NNCF
pip install nncf
NNCF關鍵特性
訓練后壓縮算法支持權重壓縮與量化,訓練時壓縮算法支持感知量化、混合精度量化、二值、稀疏、過濾剪枝、運動剪枝等算法。圖示如下:
YOLOv8量化壓縮
基于NNCF實現YOLOv8預訓練模型的訓練后量化壓縮(PTQ),實現INT8量化YOLOv8模型生成。首先需要使用YOLOv8命令行工具導出OpenVINO格式模型,命令行如下:
yolo export model=yolov8n.pt format=openvino然后基于YOLOv8框架的函數構建一個YOLOv8模型對應的COCO數據集的Validator,相關的代碼如下:
官方給出的代碼里面是有個ValidatorClass,但是我發現YOLOv8框架早已經不支持,這里其實主要是構建自己的Dataset跟DataLoader而已,簡單粗暴的點是可以自己直接構建,就是要寫點代碼。我發現了YOLOv8框架里面有個DetectionValidator是可以用的,于是我就用這個,然后直接給一個圖像文件夾就可以獲取dataloader實例了。準備好驗證數據以后,就是最后一步了,啟動模型INT8量化,相關的代碼如下:
這樣就可以完成PTQ量化模型的生成。最后這部分的代碼,其實在GITHUB的官方教程上是有說明跟給出的,我這里再貼一下:
就是說,實際上針對自定義數據集,你自己構建一個DataLoader即可。
量化版YOLOv8推理測試
基于量化版本,基于OpenVINO C++ SDK在不同的部署與加速方式下,最終的測試結果如下:
從此,我又相信YOLOv8+OpenVINO了。
特別說明
請用OpenVINO20023.1版本測試。
審核編輯:湯梓紅
-
模型
+關注
關注
1文章
3171瀏覽量
48711 -
數據集
+關注
關注
4文章
1205瀏覽量
24641 -
OpenVINO
+關注
關注
0文章
87瀏覽量
181
原文標題:NNCF壓縮與量化YOLOv8模型與OpenVINO部署測試
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論