什么是 Wheel 包?
Python *.whl 文件或者叫 Wheel 包,是一個(gè) Python 生態(tài)系統(tǒng)組件,可簡(jiǎn)化包的安裝。它在包分發(fā)過(guò)程中提供更快的安裝時(shí)間和更高的可靠性。該格式包含只需要移動(dòng)到要安裝的目標(biāo)系統(tǒng)上的正確位置的文件和元數(shù)據(jù)。如果你使用 pip 安裝 Python 包,它很可能是一個(gè) wheel 包。
本文將教讀者從零開始從OpenVINO 的主分支制作一個(gè)openvino.whl 文件以便于安裝OpenVINO。
已經(jīng)有穩(wěn)定版本,為什么我還需要從主分支構(gòu)建Wheel包?
有時(shí),出于以下原因,需要從當(dāng)前主分支構(gòu)建安裝包(the bleeding-edge build):
1. 即使在穩(wěn)定版本中也存在錯(cuò)誤。如果您已經(jīng)不能等到下一個(gè)版本,急需已修復(fù)這些錯(cuò)誤的安裝包 —— 唯一的解決方案是從主分支自行構(gòu)建 Wheel 包。
2. 你需要一個(gè)已經(jīng)實(shí)現(xiàn)但等待正式發(fā)布的新特性——手動(dòng)從主分支自行構(gòu)建 Wheel 包。
3. 你的資源是有限的。因此,您需要一個(gè)僅包含所需模塊的自定義包 —— 自定義編譯并構(gòu)建主分支 Wheel 包。
4.因?yàn)樗情_源的,你可以 DIY
如何編譯 OpenVINO 并構(gòu)建 Python 包?
要構(gòu)建 OpenVINO 工具套件,您可以使用干凈的 Ubuntu 20.04 或 Ubuntu 18.04。為避免依賴性問(wèn)題,我們建議在您現(xiàn)有的操作系統(tǒng)環(huán)境中使用 Docker。本文的全部步驟在12代Intel酷睿處理器 i3-12100F 和 Ubuntu 20.04.4LTS 上完成測(cè)試,如圖1-1所示?,F(xiàn)在,讓我們開始吧!
圖1-1測(cè)試環(huán)境
第一步:安裝并設(shè)置 Docker。請(qǐng)按照官方 Docker 文檔安裝Docker和 Linux 安裝后的說(shuō)明解決權(quán)限問(wèn)題。我們還建議您為 8 核計(jì)算機(jī)分配至少 8GB 的 RAM。如果您運(yùn)行編譯錯(cuò)誤,請(qǐng)?jiān)黾?RAM 大小并重新運(yùn)行腳本。安裝和配置過(guò)程完成后,讓我們運(yùn)行:docker run hello world 檢查一下 Docker 是否正常工作,如圖1-2所示。
圖1-2 Docker 安裝成功并運(yùn)行正常!
接下來(lái),請(qǐng)下載并運(yùn)行 Ubuntu 容器。您可以使用 18.04 或 20.04。如果您希望您的軟件包更便攜并與舊版本的 Ubuntu 一起使用,請(qǐng)使用 Ubuntu 18.04。
運(yùn)行命令:
sudo docker pull ubuntu:20.04sudo docker run -it ubuntu:20.04
下載并運(yùn)行 ubuntur20.04 容器,如圖1-3所示。
圖1-3下載并運(yùn)行Ubuntu 20.04容器
恭喜!您已經(jīng)在新的 Ubuntu20.04 容器里面了。此階段的最后一步是在 Docker 中安裝 git 和 sudo,并將目錄更改為 /opt。
運(yùn)行命令:
apt updateapt install git sudocd /opt
完成安裝 git 和 sudo,并將目錄更改為 /opt,如圖1-4所示。
圖1-4進(jìn)入/opt目錄
注意!接下來(lái)的所有步驟都在上述這個(gè) Docker 容器中運(yùn)行。
第二步:克隆 OpenVINO 的代碼倉(cāng)和子代碼倉(cāng)。OpenVINO 使用 oneDNN和 OpenCV等軟件包。在代碼檢出(checkout)時(shí),您將從它們中檢索出最新的源代碼。由于 OpenVINO 代碼倉(cāng)有很多子模塊,因此請(qǐng)確保使用 --recurse-submodules 標(biāo)志運(yùn)行。這可能需要一段時(shí)間,具體取決于您的互聯(lián)網(wǎng)連接。
使用命令:
git clone --recurse-submodules --single-branch --branch=master https://github.com/openvinotoolkit/openvino.git
完成克隆 OpenVINO 代碼倉(cāng)和子代碼倉(cāng)到本地,如圖1-5所示。
圖1-5克隆OpenVINO代碼倉(cāng)到本地
改用下面的命令:
提示:如果使用一次 git submodule update 這行命令,可能會(huì)遇到中途 clone 中斷,無(wú)法滿足 clone 某些 submodule 的目的??梢栽俅芜\(yùn)行這條命令,直到所有 submodule 都被 clone 為止。
克隆子模塊成功后,如圖1-6所示。
圖1-6克隆子模塊
第三步:安裝構(gòu)建(Build)依賴項(xiàng)。下面是一個(gè)有用的腳本,但它不會(huì)為 Python 安裝依賴項(xiàng),因此需要額外的步驟。
cd openvino./install_build_dependencies.shapt install cython3pip3 install --upgrade pippip3 install -r src/bindings/python/wheel/requirements-dev.txt
如果要構(gòu)建 GPU 插件(支持集成 GPU),則必須為 OpenCL 安裝計(jì)算運(yùn)行時(shí)。如果您發(fā)現(xiàn)任何錯(cuò)誤,請(qǐng)參閱此處的說(shuō)明:
apt install intel-opencl-icd
第四步:編譯源代碼。到此,您的開發(fā)環(huán)境現(xiàn)已準(zhǔn)備就緒,您可以在啟用 Python 和 wheel 選項(xiàng)的情況下配置和運(yùn)行 cmake。這將創(chuàng)建.wheel 文件和所有其他可用于發(fā)布的 C++ 二進(jìn)制文件。
輸入命令:
mkdir build && cd buildcmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON -DENABLE_SYSTEM_PUGIXML=OFF -DENABLE_WHEEL=ON ..
確保顯示以下選項(xiàng),如圖1-7所示,表示將構(gòu)建 CPU、GPU 和 VPU 的插件,以及 Python 支持(本例中為 Python 3.8.10)。若要針對(duì)其他版本的 Python 進(jìn)行編譯,請(qǐng)使用附加選項(xiàng):
-DPYTHON_EXECUTABLE、-DPYTHON_LIBRARY 和 -DPYTHON_INCLUDE_DIR 選項(xiàng)。
圖1-7cmake選項(xiàng)
接著運(yùn)行以最大線程數(shù)運(yùn)行 Make,并等待 15 到 30 分鐘(取決于您的機(jī)器),命令如下:
make --jobs=$(nproc --all)
在極少數(shù)情況下,操作系統(tǒng)可能會(huì)終止您的編譯。如果您遇到這種情況,如所示,請(qǐng)?jiān)黾幽?RAM或同時(shí)使用較少的 jobs 重新 make 。
圖1-8內(nèi)存不足
在一切編譯完成后,您可以在“build”文件夾下的“wheels”目錄中找到 wheel 包,既有 OpenVINO Runtime 包也有 OpenVINO development 包,如圖1-9所示。
圖1-9編譯成功獲得wheel安裝包
需要注意的是,如圖1-9所示的 wheel 包在您的 docker 容器中。您需要做的最后一件事是將它們復(fù)制到您的主機(jī)上。
請(qǐng)先按 Ctrl+P,再按 Ctrl+Q 退出容器而不停止它;接著運(yùn)行 docker ps 以獲取容器的 id ,并通過(guò)容器 id 將容器中的 wheel 文件復(fù)制到您的主機(jī)。
docker ps -adocker cp:/opt/openvino/build/wheels/openvino_dev-2022.3.0-000-py3-none-any.whl .docker cp :/opt/openvino/build/wheels/openvino-2022.3.0-000-cp38-cp38-manylinux_2_31_x86_64.whl .
到此,恭喜您,您已經(jīng)獲得了最新的OpenVINO wheel安裝包了!
在目標(biāo)機(jī)器上
使用最新的 OpenVINO wheel 安裝包
創(chuàng)建一個(gè)新的虛擬環(huán)境并在其中安裝 openvino-dev。您應(yīng)該使用與編譯 OpenVINO 時(shí)的相同版本的 Python 和 Ubuntu 操作系統(tǒng)。
python3.8 -m venv venvsource venv/bin/activatepip install --upgrade pippip install openvino-2022.3.0-000-cp38-cp38-manylinux_2_31_x86_64.whl pip install openvino_dev-2022.3.0-000-py3-none-any.whl
讓我們運(yùn)行一個(gè)基準(zhǔn)測(cè)試,看看是否一切正常。讓它成為在 CPU 上運(yùn)行的 Open Model Zoo中的人員檢測(cè)模型。您可能還需要使用 apt 安裝 libgl-dev。
omz_downloader --name person-detection-0200benchmark_app -m intel/person-detection-0200/FP16-INT8/person-detection-0200.xml -d CPU -t 10
看,它正常工作了!到此,現(xiàn)在您已準(zhǔn)備好導(dǎo)入 OpenVINO并在 Python(本例中為 Python 3.8.10)中運(yùn)行您的代碼。
Python 3.8.10 (default, Jun 22 2022, 20:18:18) [GCC 9.4.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import openvino>>>
審核編輯:劉清
-
處理器
+關(guān)注
關(guān)注
68文章
19893瀏覽量
235170 -
Ubuntu
+關(guān)注
關(guān)注
5文章
592瀏覽量
31225 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86728
原文標(biāo)題:如何從 OpenVINO? 的主分支構(gòu)建 OpenVINO? Wheel 包? | 開發(fā)者實(shí)戰(zhàn)
文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
無(wú)法將Openvino? 2025.0與onnx運(yùn)行時(shí)Openvino? 執(zhí)行提供程序 1.16.2 結(jié)合使用,怎么處理?
為什么無(wú)法通過(guò)“pip install openvino-dev==2025.0.0”安裝 2025.0 OpenVINO??
在CentOS從源代碼構(gòu)建OpenVINO?時(shí),無(wú)法找到設(shè)置腳本怎么解決?
使用PyQt5自動(dòng)初始化OpenVINO?環(huán)境出現(xiàn)報(bào)錯(cuò)怎么解決?
如何部署OpenVINO?工具套件應(yīng)用程序?
請(qǐng)問(wèn)使用2022.2時(shí)是否可以讀取模型OpenVINO?層?
在Raspberry Pi上從源代碼構(gòu)建OpenVINO? ARM插件失敗了,怎么解決?
創(chuàng)建OpenVINO? Python腳本,運(yùn)行可執(zhí)行文件時(shí)遇到的報(bào)錯(cuò)怎么解決?
安裝OpenVINO? 2023.2使用pip install openvino-dev命令的開發(fā)工具后報(bào)錯(cuò)怎么解決?
為什么無(wú)法在OpenVINO? 2021.3源中使用CMAKE編譯ONNX模型?
通過(guò)Docker映像OpenVINO? DL Workbench OpenVINO?安裝,無(wú)法上傳模型怎么解決?
C#集成OpenVINO?:簡(jiǎn)化AI模型部署

評(píng)論