日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

如何从 OpenVINO 的主分支构建 Python Wheel 包

發布時間:2023/12/15 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何从 OpenVINO 的主分支构建 Python Wheel 包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:Adrian Boguszewski 和 Raymond Lo

翻譯:武卓 博士? 英特爾AI框架軟件布道師

什么是Wheel包?

Python *.whl文件或者叫Wheel包,是一個 Python 生態系統組件,可簡化包的安裝。 它在包分發過程中提供更快的安裝時間和更高的可靠性。 該格式包含只需要移動到要安裝的目標系統上的正確位置的文件和元數據。 如果你使用 pip 安裝 Python 包,它很可能是一個 wheel 包。

本文將教讀者從零開始從OpenVINO? 的主分支制作一個openvino .whl 文件以便于安裝OpenVINO?。

已經有穩定版本,為什么我還需要從主分支構建Wheel包?

有時,出于以下原因,需要從當前主分支構建安裝包(the bleeding-edge build):

1. 即使在穩定版本中也存在錯誤。 如果您已經不能等到下一個版本,急需已修復這些錯誤的安裝包 —— 唯一的解決方案是從主分支自行構建Wheel包。

2. 你需要一個已經實現但等待正式發布的新特性——手動從主分支自行構建Wheel包。

3. 你的資源是有限的。 因此,您需要一個僅包含所需模塊的自定義包 —— 自定義編譯并構建主分支Wheel包。

4. 因為它是開源的,你可以DIY😉。

如何編譯 OpenVINO? 并構建 Python 包?

要構建 OpenVINO? 工具包,您可以使用干凈的 Ubuntu 20.04 或 Ubuntu 18.04。 為避免依賴性問題,我們建議在您現有的操作系統環境中使用 Docker。本文的全部步驟在12代Intel?酷睿處理器i3-12100F和Ubuntu 20.04.4LTS上完成測試,如圖1-1所示。現在,讓我們開始吧!

?圖1-1? 測試環境

第一步:安裝并設置Docker。請按照官方 Docker 文檔安裝Docker和 Linux 安裝后的說明解決權限問題。 我們還建議您為 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.04 sudo docker run -it ubuntu:20.04

下載并運行ubuntur20.04容器,如圖1-3所示。

?圖1-3? 下載并運行Ubuntu 20.04容器

恭喜!您已經在新的Ubuntu20.04容器里面了。此階段的最后一步是在 Docker 中安裝 git 和 sudo,并將目錄更改為 /opt。

運行命令:

apt update apt install git sudo cd /opt

完成安裝git和sudo,并將目錄更改為 /opt,如圖1-4所示。

?圖1-4? 進入/opt目錄

注意!接下來的所有步驟都在上述這個Docker容器中運行。

第二步:克隆OpenVINO的代碼倉和子代碼倉。 OpenVINO? 使用 oneDNN 和 OpenCV 等軟件包。在代碼檢出(checkout)時,您將從它們中檢索出最新的源代碼。 由于OpenVINO代碼倉有很多子模塊,因此請確保使用 --recurse-submodules 標志運行。 這可能需要一段時間,具體取決于您的互聯網連接。

使用命令:

git clone --recurse-submodules --single-branch --branch=master https://github.com/openvinotoolkit/openvino.git

完成克隆OpenVINO代碼倉和子代碼倉到本地,如圖1-5所示。

?圖1-5? 克隆OpenVINO代碼倉到本地

若您在中國,請參考《clone submodules via gitee mirrors》改用下面的命令:

?克隆子模塊成功后,如圖1-6所示。

?圖1-6? 克隆子模塊

第三步:安裝構建(Build)依賴項。下面是一個有用的腳本,但它不會為 Python 安裝依賴項,因此需要額外的步驟。

cd openvino ./install_build_dependencies.sh apt install cython3 pip3 install --upgrade pip pip3 install -r src/bindings/python/wheel/requirements-dev.txt

如果要構建 GPU 插件(支持集成 GPU),則必須為 OpenCL 安裝計算運行時。 如果您發現任何錯誤,請參閱此處的說明。

?apt install intel-opencl-icd

第四步:編譯源代碼。到此,您的開發環境現已準備就緒,您可以在啟用 Python 和 wheel 選項的情況下配置和運行 cmake。 這將創建.wheel文件和所有其他可用于發布的 C++ 二進制文件。

輸入命令:

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON -DENABLE_SYSTEM_PUGIXML=OFF -DENABLE_WHEEL=ON ..

確保顯示以下選項,如圖1-7所示,表示將構建 CPU、GPU 和 VPU 的插件,以及 Python 支持(本例中為 Python 3.8.10)。若要針對其他版本的 Python 進行編譯,請使用附加選項:

?-DPYTHON_EXECUTABLE、-DPYTHON_LIBRARY 和 -DPYTHON_INCLUDE_DIR 選項。

有關更多信息,請參閱《Additional Build Options》

?圖1-7? cmake 選項

接著運行以最大線程數運行Make,并等待 15 到 30 分鐘(取決于您的機器),命令如下:

make --jobs=$(nproc --all)

在極少數情況下,操作系統可能會終止您的編譯。 如果您遇到這種情況,如所示,請增加您的 RAM 或同時使用較少的jobs重新make。

圖1-8? 內存不足

在一切編譯完成后,您可以在“build”文件夾下的”wheels”目錄中找到wheel包,既有OpenVINO Runtime包也有OpenVINO development包,如圖1-9所示。

?圖1-9? 編譯成功獲得wheel安裝包

需要注意的是,如圖1-9所示的wheel包在您的docker容器中。 您需要做的最后一件事是將它們復制到您的主機上。

請先按 Ctrl+P,再按 Ctrl+Q 退出容器而不停止它;接著運行 docker ps 以獲取容器的 id ,并通過容器id將容器中的wheel文件復制到您的主機。

docker ps -a docker cp <container_id>:/opt/openvino/build/wheels/openvino_dev-2022.3.0-000-py3-none-any.whl . docker cp <container_id>:/opt/openvino/build/wheels/openvino-2022.3.0-000-cp38-cp38-manylinux_2_31_x86_64.whl .

到此,恭喜您,您已經獲得了最新的OpenVINOTM wheel安裝包了!

在目標機器上使用最新的 OpenVINO? wheel安裝包

創建一個新的虛擬環境并在其中安裝 openvino-dev。 您應該使用與編譯 OpenVINO? 時的相同版本的 Python 和 Ubuntu 操作系統。

python3.8 -m venv venv source venv/bin/activate pip install --upgrade pip pip 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

讓我們運行一個基準測試,看看是否一切正常。 讓它成為在 CPU 上運行的 Open Model Zoo 中的人員檢測模型。 您可能還需要使用 apt 安裝 libgl-dev。

omz_downloader --name person-detection-0200 benchmark_app -m intel/person-detection-0200/FP16-INT8/person-detection-0200.xml -d CPU -t 10

看,它正常工作了!到此,現在您已準備好導入 OpenVINO? 并在 Python(本例中為 Python 3.8.10)中運行您的代碼。

Python 3.8.10 (default, Jun 22 2022, 20:18:18) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import openvino >>>

免責聲明:盡管您能夠構建和運行 OpenVINO? 的前沿技術,但請注意主分支不穩定并且可能存在未識別的錯誤。 本編譯是基于 000f5d8049fd45ddb8b070b0d7a892b2a14ebe11 提交完成的。

參考文獻

Solomon Brad, What Are Python Wheels and Why Should You Care? Available at: What Are Python Wheels and Why Should You Care? – Real Python (accessed: 23rd Aug 2022)

Docker Team, Install Docker Engine on Ubuntu. Available at: Install Docker Engine on Ubuntu | Docker Documentation (accessed: 23rd Aug 2022)

Docker Team, Post-installation steps for Linux. Available at: Post-installation steps for Linux | Docker Documentation (accessed: 23rd Aug 2022)

Docker Team, Runtime options with Memory, CPUs, and GPUs. Available at: Runtime options with Memory, CPUs, and GPUs | Docker Documentation (accessed: 23rd Aug 2022)

Intel, GPGPU Installation guide Ubuntu 20.04. Available at: GPGPU: Ubuntu 20.04 (focal) (accessed: 23rd Aug 2022)

OpenVINO Team, Building for Linux. Available at: BuildingForLinux · openvinotoolkit/openvino Wiki · GitHub (accessed: 23rd Aug 2022)

OpenVINO Team, Open Model Zoo. Available at: https://github.com/openvinotoolkit/open_model_zoo (accessed: 23rd Aug 2022)

總結

以上是生活随笔為你收集整理的如何从 OpenVINO 的主分支构建 Python Wheel 包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。