0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从OpenVINO的主分支制作一个openvino .whl文件

英特尔物联网 来源:英特尔物联网 作者:Adrian Boguszewski Ra 2022-09-02 10:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

什么是 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所示。现在,让我们开始吧!

6f897b5c-29df-11ed-ba43-dac502259ad0.png

图1-1测试环境

第一步:安装并设置 Docker。请按照官方 Docker 文档安装Docker和 Linux 安装后的说明解决权限问题。我们还建议您为 8 核计算机分配至少 8GB 的 RAM。如果您运行编译错误,请增加 RAM 大小并重新运行脚本。安装和配置过程完成后,让我们运行:docker run hello world 检查一下 Docker 是否正常工作,如图1-2所示。

6fdbe040-29df-11ed-ba43-dac502259ad0.png

图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所示。

705a2568-29df-11ed-ba43-dac502259ad0.png

图1-3下载并运行Ubuntu 20.04容器

恭喜!您已经在新的 Ubuntu20.04 容器里面了。此阶段的最后一步是在 Docker 中安装 git 和 sudo,并将目录更改为 /opt。

运行命令:

apt updateapt install git sudocd /opt

完成安装 git 和 sudo,并将目录更改为 /opt,如图1-4所示。

70e32f98-29df-11ed-ba43-dac502259ad0.png

图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所示。

71099fa2-29df-11ed-ba43-dac502259ad0.png

图1-5克隆OpenVINO代码仓到本地

改用下面的命令:

71fb89e8-29df-11ed-ba43-dac502259ad0.png

提示:如果使用一次 git submodule update 这行命令,可能会遇到中途 clone 中断,无法满足 clone 某些 submodule 的目的。可以再次运行这条命令,直到所有 submodule 都被 clone 为止。

克隆子模块成功后,如图1-6所示。

721c8ad0-29df-11ed-ba43-dac502259ad0.png

图1-6克隆子模块

第三步:安装构建(Build)依赖项。下面是一个有用的脚本,但它不会为 Python 安装依赖项,因此需要额外的步骤。

cd openvino./install_build_dependencies.shapt install cython3pip3 install --upgrade pippip3 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 buildcmake -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 选项。

72cb9066-29df-11ed-ba43-dac502259ad0.png

图1-7cmake选项

接着运行以最大线程数运行 Make,并等待 15 到 30 分钟(取决于您的机器),命令如下:

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

在极少数情况下,操作系统可能会终止您的编译。如果您遇到这种情况,如所示,请增加您的 RAM或同时使用较少的 jobs 重新 make 。

74709d58-29df-11ed-ba43-dac502259ad0.png

图1-8内存不足

在一切编译完成后,您可以在“build”文件夹下的“wheels”目录中找到 wheel 包,既有 OpenVINO Runtime 包也有 OpenVINO development 包,如图1-9所示。

74a1d972-29df-11ed-ba43-dac502259ad0.png

图1-9编译成功获得wheel安装包

需要注意的是,如图1-9所示的 wheel 包在您的 docker 容器中。您需要做的最后一件事是将它们复制到您的主机上。

请先按 Ctrl+P,再按 Ctrl+Q 退出容器而不停止它;接着运行 docker ps 以获取容器的 id ,并通过容器 id 将容器中的 wheel 文件复制到您的主机。

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 .

到此,恭喜您,您已经获得了最新的OpenVINO wheel安装包了!

在目标机器上

使用最新的 OpenVINO wheel 安装包

创建一个新的虚拟环境并在其中安装 openvino-dev。您应该使用与编译 OpenVINO 时的相同版本的 Python 和 Ubuntu 操作系统。

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

让我们运行一个基准测试,看看是否一切正常。让它成为在 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

754770b2-29df-11ed-ba43-dac502259ad0.png

看,它正常工作了!到此,现在您已准备好导入 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>>>

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20149

    浏览量

    247166
  • Ubuntu
    +关注

    关注

    5

    文章

    603

    浏览量

    32886
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89586

原文标题:如何从 OpenVINO™ 的主分支构建 OpenVINO™ Wheel 包? | 开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无法将Openvino™ 2025.0与onnx运行时Openvino™ 执行提供程序 1.16.2 结合使用,怎么处理?

    使用OpenVINO™与英特尔 i5-8500 CPU 和超核处理器 630 iGPU 起部署模型。 使用了 Microsoft.ML.OnnxRuntime.OpenVino
    发表于 06-24 06:31

    为什么无法通过“pip install openvino-dev==2025.0.0”安装 2025.0 OpenVINO™?

    通过“pip install openvino-dev==2025.0.0OpenVINO™ 2025.0 安装。 收到的错误: ERROR: No matching distribution found for openvino
    发表于 06-23 08:13

    在CentOS源代码构建OpenVINO™时,无法找到设置脚本怎么解决?

    源代码编译 openvino4.2+onnxruntime1.10。 无法在 openvino-4.2/bin/中找到 setupvars.sh。相反,该文件按照
    发表于 03-07 07:37

    使用PyQt5自动初始化OpenVINO™环境出现报错怎么解决?

    编写了程序以使用 PyQt5 自动初始化OpenVINO™环境: PyQt5 导入 QtWidgets 导入操作系统 #import时间 导入系统 如果__name__
    发表于 03-07 06:35

    如何部署OpenVINO™工具套件应用程序?

    编写代码并测试 OpenVINO™ 工具套件应用程序后,必须将应用程序安装或部署到生产环境中的目标设备。 OpenVINO™部署管理器指南包含有关如何轻松使用部署管理器将应用程序打包并部署到目标主机的详细信息。 注意:OpenVIN
    发表于 03-06 08:23

    是否有用于OpenVINO™工具套件的配置文件工具呢?

    是否有用于OpenVINO™工具套件的配置文件工具?
    发表于 03-06 07:29

    为什么无法源代码推断OpenVINO™构建中的VPU?

    为什么无法源代码推断OpenVINO™构建中的 VPU
    发表于 03-06 07:12

    请问使用2022.2时是否可以读取模型OpenVINO™层?

    使用 2020.3 时,使用 net.layers 和 layers.blob 读取模型OpenVINO™层。 OpenVINO™自 2021.2 OpenVINO™起,使用 2022.2 作为 net.layers 和 la
    发表于 03-06 06:37

    在Raspberry Pi上源代码构建OpenVINO™ ARM插件失败了,怎么解决?

    在 Raspberry Pi* 上源代码构建OpenVINO™ ARM 插件。 cmake -DCMAKE_BUILD_TYPE=Release -DOPENVINO_EXTRA_MODULES
    发表于 03-06 06:19

    创建OpenVINO™ Python脚本,运行可执行文件时遇到的报错怎么解决?

    创建OpenVINO™ Python 脚本: from openvino.inference_engine import IECore ie = IECore() print(\"
    发表于 03-05 10:20

    安装OpenVINO™ 2023.2使用pip install openvino-dev命令的开发工具后报错怎么解决?

    安装OpenVINO™ 2023.2 使用 pip install openvino-dev 命令的开发工具。 遇到错误: ModuleNotFoundError: 没有名为 \'distutils\' 的模块
    发表于 03-05 08:39

    为什么无法在OpenVINO™ 2021.3源中使用CMAKE编译ONNX模型?

    尝试源版本 2021.3 编译OpenVINO™ 错误: ~/项目/OpenVINO/cmake-build-debug/_deps/ext_onnx-src/onnx/onnx_pb.h
    发表于 03-05 08:29

    通过Docker映像OpenVINO™ DL Workbench OpenVINO™安装,无法上传模型怎么解决?

    通过 Docker 映像OpenVINO™ DL Workbench OpenVINO™安装。 无法上传模型: Model cannot be downloaded due to network
    发表于 03-05 08:08

    如何下载 OpenVINO™ 工具套件?

    需要下载用于开发工作的 OpenVINO™ 工具套件。
    发表于 03-05 06:49

    C#集成OpenVINO™:简化AI模型部署

    什么是OpenVINO 工具套件? OpenVINO 工具套件是用于优化和部署人工智能(AI)模型,提升AI推理性能的开源工具集合,不仅支持以卷积神经网
    的头像 发表于 02-17 10:03 2522次阅读
    C#集成<b class='flag-5'>OpenVINO</b>™:简化AI模型部署