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

評論