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

    文章

    19317

    浏览量

    230090
  • Ubuntu
    +关注

    关注

    5

    文章

    563

    浏览量

    29843
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84776

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

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

收藏 人收藏

    评论

    相关推荐

    使用OpenVINO™ ElectronJS中创建桌面应用程序

      最近,我完成了 demo 演示,展示了 OpenVINO 在 Node.js 框架中的强大功能。得益于与 Electron.js 的集成,该演示不仅能够高效地执行神经网络推理,还提供了交互式
    的头像 发表于 11-25 11:35 190次阅读
    使用<b class='flag-5'>OpenVINO</b>™ ElectronJS中创建桌面应用程序

    使用OpenVINO Model Server在哪吒开发板上部署模型

    OpenVINO Model Server(OVMS)是高性能的模型部署系统,使用C++实现,并在Intel架构上的部署进行了优化,使用OpenVINO 进行推理,推理服务通过gP
    的头像 发表于 11-01 14:19 298次阅读
    使用<b class='flag-5'>OpenVINO</b> Model Server在哪吒开发板上部署模型

    使用OpenVINO C++在哪吒开发板上推理Transformer模型

    OpenVINO开源工具套件,用于对深度学习模型进行优化并在云端、边缘进行部署。它能在诸如生成式人工智能、视频、音频以及语言等各类应用场景中加快深度学习推理的速度,且支持来自 PyTorch
    的头像 发表于 10-12 09:55 350次阅读
    使用<b class='flag-5'>OpenVINO</b> C++在哪吒开发板上推理Transformer模型

    OpenVINO 2024.4持续提升GPU上LLM性能

    本次新版本在整个 OpenVINO 产品系列中引入了重要的功能和性能变化,使大语言模型 (LLM) 的优化和部署在所有支持的场景中更容易、性能更高,包括边缘和数据中心环境的部署。
    的头像 发表于 10-12 09:41 453次阅读
    <b class='flag-5'>OpenVINO</b> 2024.4持续提升GPU上LLM性能

    使用OpenVINO GenAI API在C++中构建AI应用程序

    结合 OpenVINO Runtime 提供了更加简化、轻量且内存高效的解决方案,尤其适用于 Windows 环境。你可以在此找到详细的依赖项对比。
    的头像 发表于 10-12 09:36 393次阅读
    使用<b class='flag-5'>OpenVINO</b> GenAI API在C++中构建AI应用程序

    使用OpenVINO C# API部署YOLO-World实现实时开放词汇对象检测

    YOLO-World是融合了实时目标检测与增强现实(AR)技术的创新平台,旨在将现实世界与数字世界无缝对接。该平台以YOLO(You Only Look Once)算法为核心,实现了对视频中物体
    的头像 发表于 08-30 16:27 674次阅读
    使用<b class='flag-5'>OpenVINO</b> C# API部署YOLO-World实现实时开放词汇对象检测

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都觉得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的优化与整理,已经是非常贴近开发的使用习惯与推理方式。与OpenCV的Mat对象对接方式更是几乎无缝对接,非常的方便好用。
    的头像 发表于 07-26 09:20 952次阅读

    OpenVINO C# API在intel平台部署YOLOv10目标检测模型

    的模型设计策略,效率和精度两角度对YOLOs的各个组成部分进行了全面优化,大大降低了计算开销,增强了性能。在本文中,我们将结合OpenVINO C# API使用最新发布的OpenVINO
    的头像 发表于 06-21 09:23 1054次阅读
    用<b class='flag-5'>OpenVINO</b> C# API在intel平台部署YOLOv10目标检测模型

    简单两步使用OpenVINO™搞定Qwen2的量化与部署任务

    英特尔 OpenVINO™ 工具套件是款开源 AI 推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模型、计算机视觉和自然语言处理等 AI 工作负载,简化深度学习推理的开发和部署,便于实现从边缘到云的跨英特尔® 平台的异构执行。
    的头像 发表于 04-26 09:39 1707次阅读
    简单两步使用<b class='flag-5'>OpenVINO</b>™搞定Qwen2的量化与部署任务

    简单三步使用OpenVINO™搞定ChatGLM3的本地部署

    英特尔 OpenVINO™ 工具套件是款开源 AI 推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模型、计算机视觉和自然语言处理等 AI 工作负载,简化深度学习推理的开发和部署,便于实现从边缘到云的跨英特尔® 平台的异构执行。
    的头像 发表于 04-03 18:18 2119次阅读
    简单三步使用<b class='flag-5'>OpenVINO</b>™搞定ChatGLM3的本地部署

    基于英特尔哪吒开发者套件平台来快速部署OpenVINO Java实战

    OpenVINO 工具套件基于OneAPI开发,可以加快高性能计算机视觉和深度学习应用开发速度的工具套件,适用于边缘到云的各种英特尔计算平台上
    的头像 发表于 03-21 18:24 1512次阅读
    基于英特尔哪吒开发者套件平台来快速部署<b class='flag-5'>OpenVINO</b> Java实战

    OpenVINO™ Java API应用RT-DETR做目标检测器实战

    本文将从零开始详细介绍环境搭建的完整步骤,我们基于英特尔开发套件AIxBoard为硬件基础实现了Java在Ubuntu 22.04系统上成功使用OpenVINO™ Java API,并且成功运行了RT-DETR实现实时端到端目标检测器AI任务。
    的头像 发表于 03-18 15:04 825次阅读
    <b class='flag-5'>OpenVINO</b>™ Java API应用RT-DETR做目标检测器实战

    OpenVINO添加对Paddle 2.5的支持

    我是飞桨黑客马拉松第五期 OpenVINO 赛题获奖者——为 OpenVINO 添加了对 Paddle 2.5 的支持。在此记录下来贡献的过程,希望有更多的同学可以参与到 OpenVINO 的社区
    的头像 发表于 01-19 09:20 647次阅读

    基于OpenVINO™和AIxBoard的智能安检盒子设计

    公共安全问题日益凸显,传统安检手段面临挑战。为提高安检效率和保障公共安全,基于 OpenVINO™ 和 AIxBoard 的智能安检盒子应运而生。
    的头像 发表于 01-18 17:31 840次阅读
    基于<b class='flag-5'>OpenVINO</b>™和AIxBoard的智能安检盒子设计

    如何在MacOS上编译OpenVINO C++项目呢?

    英特尔公司发行的模型部署工具 OpenVINO 模型部署套件,可以实现在不同系统环境下运行,且发布的 OpenVINO 2023 最新版目前已经支持 MacOS 系统并同时支持在苹果 M 系列芯片上部署模型。
    的头像 发表于 01-11 18:07 918次阅读
    如何在MacOS上编译<b class='flag-5'>OpenVINO</b> C++项目呢?