英特爾銳炫 顯卡+ oneAPI 和 OpenVINO 實現(xiàn)英特爾 視頻 AI 計算盒訓(xùn)推一體-上篇
AI 已成為助力千行百業(yè)智能化升級的關(guān)鍵技術(shù),然而在行業(yè)實踐中,如何在應(yīng)用現(xiàn)場高效提升 AI 模型的精度和速度,已成為 AI 模型商業(yè)化落地的一大挑戰(zhàn)。基于英特爾??視頻 AI 計算盒打造一個從模型訓(xùn)練到優(yōu)化部署的?AI 訓(xùn)推一體流水線(Train & Inference pipeline)便成為一個有效的解決方案。
?
在本文中,我們將展示搭建一個 AI 訓(xùn)推一體流水線的關(guān)鍵組件(如下圖所示),從使用基于 oneAPI 的?IPEX 實現(xiàn)模型訓(xùn)練,到使用?OpenVINO??進(jìn)行模型優(yōu)化和部署。這種端到端的方法不僅簡化了開發(fā)過程,還確保了深度學(xué)習(xí)模型的可擴(kuò)展性、可再現(xiàn)性及可維護(hù)性。

?
?
接下來,本文將在帶有英特爾銳炫??顯卡ARC??A380 來自于原基科技的 B18 完成 YOLOv7 模型訓(xùn)練。下一篇文章將接著介紹基于 OpenVINO??實現(xiàn) YOLOv7 模型推理。
?

?
?
?
?
?
安裝使用 IPEX 在 dGPU 上訓(xùn)練所需的庫
?
?
以下命令用于安裝所需的庫,以在 dGPU 上啟用訓(xùn)練,如果沒有該庫,IPEX? 就無法檢測XPU,因此無法使用 dGPU 進(jìn)行訓(xùn)練。

安裝 GPU 驅(qū)動程序和所需庫后,我們將安裝英特爾 oneAPI 基本工具包和 IPEX,用于在英特爾??獨(dú)立顯卡上執(zhí)行模型訓(xùn)練。
?
?
安裝 Intel??oneAPI Base Toolkit 2023.1
?
?
英特爾 oneAPI 基本工具包是一套核心工具和庫,用于跨各種體系結(jié)構(gòu)開發(fā)高性能、以數(shù)據(jù)為中心的應(yīng)用程序。可以使用以下命令安裝基本工具包:

?
安裝 Intel??Extension for PyTorch (IPEX)
?
?
IPEX 通過最新的功能優(yōu)化對 PyTorch 進(jìn)行擴(kuò)展,從而在英特爾??硬件上獲得額外的性能提升。優(yōu)化利用了英特爾??CPU 上的 AVX-512 矢量神經(jīng)網(wǎng)絡(luò)指令(AVX512 VNNI)和英特爾??高級矩陣擴(kuò)展(AMX)以及英特爾??獨(dú)立顯卡的 Xe?矩陣擴(kuò)展(XMX)AI 引擎。此外,通過 PyTorch XPU 設(shè)備,IPEX 為使用 PyTorch 的英特爾??獨(dú)立顯卡提供了簡單的 GPU 加速。因此,我們將使用 IPEX 在英特爾??獨(dú)立顯卡上進(jìn)行模型訓(xùn)練。IPEX 的安裝使用以下命令:

好了,現(xiàn)在已經(jīng)成功安裝了 IPEX,接下來可以利用 IPEX 來執(zhí)行模型訓(xùn)練了。注意:每次在一個新的終端窗口(cmd window)使用 IPEX 的時候,需要首先使用以下命令激活 oneAPI 環(huán)境:?
source /opt/intel/oneapi/setvars.sh
?
激活 oneAPI 的過程如下圖所示:
?

?
接下來我們可以激活創(chuàng)建的 ipex 虛擬環(huán)境,
source ipex/bin/activate
然后導(dǎo)入 IPEX 工具包如下圖所示:
?

?
?
安裝 XPU manager?
獲取 GPU 運(yùn)行的相關(guān)信息
?
我們可以使用 XPU manager 來獲取 GPU 功率、頻率、使用的 GPU 內(nèi)存、計算引擎%、復(fù)制引擎%和 throttle 原因。安裝使用以下命令:

現(xiàn)在,我們已經(jīng)在 dGPU 上設(shè)置了模型訓(xùn)練的環(huán)境。接下來將展示如何使用自定義數(shù)據(jù)集訓(xùn)練 YOLOv7 模型。
?
?
在自定義數(shù)據(jù)集上訓(xùn)練 YOLOv7
?
?
在本文中,我們將在自定義數(shù)據(jù)“Pothole”上訓(xùn)練 YOLOv7 深度學(xué)習(xí)模型。整個訓(xùn)練過程包括以下步驟:
?
?下載自定義數(shù)據(jù)集
?
使用以下命令下載:

??從 GitHub 上克隆 YOLOv7 倉庫
?
使用以下命令克隆 YOLOv7 倉庫,并進(jìn)行安裝:

???為訓(xùn)練基于自定義數(shù)據(jù)集的模型生成補(bǔ)丁文件
?
由于我們將使用自定義數(shù)據(jù)集訓(xùn)練 YOLOv7 模型,因此需要對原始訓(xùn)練腳本進(jìn)行一些更改。因此,在執(zhí)行模型訓(xùn)練之前,需要生成以下補(bǔ)丁文件“yolov7_xpu.patch”。




使用如下命令使得補(bǔ)丁文件生效:
patch -p1 < yolov7_xpu.patch
?
同樣的,配置文件總的一些內(nèi)容也需要進(jìn)行相應(yīng)的修改。比如,需要生成包含如下內(nèi)容的配置文件,并保存在“data/pothole.yaml”路徑下:

以下配置文件中的相關(guān)內(nèi)容需要被修改:
## modify "nc: 80" to "nc: 1" in cfg/training/yolov7_pothole-tiny.yaml ##
?
使用如下命令使修改生效:?
cp cfg/training/yolov7-tiny.yaml cfg/training/yolov7_pothole-tiny.yaml
?
?
????下載 yolov7-tiny 模型
?
我們下載如下的 yolov7-tiny 模型,為下一步在自定義數(shù)據(jù)集上訓(xùn)練做好準(zhǔn)備。?
wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-tiny.pt
?
?
?????在自定義數(shù)據(jù)集上訓(xùn)練模型
?
使用如下命令在英特爾獨(dú)立顯卡上執(zhí)行模型訓(xùn)練:

訓(xùn)練過程如下圖所示:
?

?
訓(xùn)練完成后,具有最佳精度的模型權(quán)重將保存在“runs/train/yolov7_tiny_pothole_fixed_res/weights/best.pt”路徑下。
?
到此,已完成在英特爾??視頻 AI 計算盒上訓(xùn)練 YOLOv7 模型。以上步驟的詳細(xì)過程,可參考:(請復(fù)制地址到瀏覽器)
https://github.com/zhuo-yoyowz/training-deployment-dGPU
?
下一篇,我們將接著介紹基于已訓(xùn)練好的 YOLOv7 模型,使用 OpenVINO??實現(xiàn)模型的優(yōu)化和部署。
?
?
?
推薦閱讀
?
?
?
關(guān)于 OpenVINO??開源工具套件的詳細(xì)資料,包括其中我們提供的三百多個經(jīng)驗證并優(yōu)化的預(yù)訓(xùn)練模型的詳細(xì)資料,請您點(diǎn)擊:(請復(fù)制地址到瀏覽器)
https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html
?
除此之外,為了方便大家了解并快速掌握 OpenVINO??的使用,我們還提供了一系列開源的 Jupyter notebook demo。運(yùn)行這些 notebook,就能快速了解在不同場景下如何利用 OpenVINO??實現(xiàn)一系列、包括計算機(jī)視覺、語音及自然語言處理任務(wù)。
?
OpenVINO??notebooks 的資源可以在 Github 這里下載安裝:(請復(fù)制地址到瀏覽器)
https://github.com/openvinotoolkit/openvino_notebooks
?
?
?
關(guān)于原基科技
?
?
原基科技 (easy-base.com.cn))
?
深圳市原基科技有限公司,坐落于深圳科技新區(qū)的光明新區(qū),專注于嵌入式主板和工控電腦、AI盒子、邊緣計算服務(wù)器的研發(fā)、定制以及解決方案,是一家集研發(fā)、生產(chǎn)、銷售、服務(wù)為一體的國家高新技術(shù)型企業(yè),致力于為大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能的發(fā)展提供解決方案。
?
主要核心骨干均為從事本行業(yè)10年以上的資深人員,依據(jù)豐富的經(jīng)驗和 ISO9001 體系的指導(dǎo),設(shè)立了運(yùn)營部、產(chǎn)品部、研發(fā)部、供應(yīng)鏈、品質(zhì)部等,具備了主板的研發(fā)設(shè)計、生產(chǎn)線的 DIP、 SMT 以及整機(jī)的組裝測試的能力。目前擁有20多項自主知識產(chǎn)權(quán), 獲評為國家高新技術(shù)企業(yè)且通 ISO9001 認(rèn)證。
?
主要業(yè)務(wù)涉及智慧社區(qū)、智慧園區(qū)、智慧零售、智慧教育、智慧辦公、智慧安防、智慧工業(yè)等領(lǐng)域;憑借靈活、快速響應(yīng)的特點(diǎn),得到了客戶的大量認(rèn)可。
?
?
英特爾技術(shù)可能需要啟用硬件、軟件或服務(wù)激活。
任何產(chǎn)品或組件都不能絕對安全。
您的成本和結(jié)果可能有所不同。