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

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

3天内不再提示

英特尔OpenVINO™将全力助力极视角AI推理加速

英特尔物联网 来源:极市平台 作者:邓富城博士 极视角 2021-09-22 16:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在模型开发和部署方面,极市平台集成了最新版本的OpenVINO工具,助力开发者在最小化代码修改的条件下加速AI算法在各类生产环境中规模化部署应用,尤其是在Intel丰富的硬件资源平台上(CPUs、iGPUs、VPUs等等)。

本文重点介绍了极视角与英特尔开发人员共同研发的OpenVINO最新功能,无缝集成TensorFlow框架,对于熟悉TensorFlow开发的开发者来说,在原有代码的基础上只需要添加几行简单代码就可以无痛实现模型精度不变的前提下推理加速1.34倍以上,避免了显式地进行OpenVINO转换以及推理部分代码的重新编写,大大简化OpenVINO工具的使用,加速AI算法在生产环境中的应用部署。

无痛实现 1.34 倍加速推理

我们先来看看本文方法在模型推理加速上具体表现:

可以看到,在同一测试环境下,OpenVINO 与 TensorFlow 的集成实现了 1.34 的加速几何平均值,同时,模型的准确性保持不变:

具体实操

OpenVINO 与 TensorFlow 的集成专为使用 OpenVINO 工具套件的开发人员而设计——通过最少的代码修改来提高推理应用程序的性能。该集成为提高TensorFlow 兼容性提供以 OpenVINO 工具套件内联优化和所需运行时,并加速了各种英特尔芯片上多类AI模型的推理。

通过将以下两行代码添加到 Python 代码或 Jupyter Notebooks 中,就可以极大地加速你的 TensorFlow 模型的推理:

import openvino_tensorflowopenvino_tensorflow.set_backend(‘《backend_name》’)

OpenVINO 与 TensorFlow 的集成通过将 TensorFlow 图巧妙地划分为多个子图,再将这些子图分派到 TensorFlow 运行时或 OpenVINO 运行时,从而实现最佳加速推理。

# 工作流概述

同时,通过 openvino_tensorflow ,我们能够非常轻松地使用不同硬件:

更多的详细信息可以前往 Github:

https://github.com/openvinotoolkit/openvino_tensorflow

# 在Extreme Vision notebooks中集成

在Extreme Vision IDE中可以直接将OpenVINO与TensorFlow集成。如下图所示,你只需要简单地导入openvino_tensorflow,即可无缝加速 Jupyter Notebook 中在CPU上推理的所有 TensorFlow模型,同时可以继续使用标准的TensorFlow API,而无需代码重构。

对推理加速更深的讨论

从前文对推理加速上的结果展示中,我们可以看到通过添加 2 行代码激活OpenVINO与 TensorFlow 的集成后,可以获得最高达 10 倍的推理加速。但也有个别模型出现了异常情况,如Mask RCNN Atrous 和 SSD Mobilenet V2,因此我们对如何获得最佳性能进行了讨论:

#01

OPENVINO_TF_MIN_NONTRIVIAL_NODES 变量

该变量设置了聚类中可以存在的最小操作数。如果操作数小于指定的数量,则聚类将回退到 TensorFlow。默认情况是根据总图大小计算的,但除非手动设置,否则不能小于 6。另外,我们将此变量设置为 15 和 22 来观察模型进一步的性能增强,并以此得到了最终的最佳推理性能。因此,在具体的开发应用中应通过默认值或实验来确定能够为模型提供最佳性能的变量最佳值。

#02

冻结 Keras 模型以获得最佳性能

一些 Keras 模型可能包含训练操作,这会导致 TensorFlow 产生控制流。由于 OpenVINO 工具套件不支持这些操作,因此图形可能会被划分为较小的聚类。因此,在使用 OpenVINO 与 TensorFlow 的集成时,冻结模型可以避免这些操作并提高整体性能。

使用 Keras API 的 DenseNet121 推理应用代码示例:

import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras.applications.densenet import DenseNet121# Add two lines of code to enable OpenVINO integration with TensorFlowimport openvino_tensorflowopenvino_tensorflow.set_backend("CPU")


model = DenseNet121(weights='imagenet')


# Run the inference using Keras API  model.predict(input_data)

下面是冻结和运行 Keras 模型的一个示例代码,通过这种方式,我们能够优化使用 OpenVINO 与 TensorFlow 的集成实现的最佳性能。

import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras.applications.densenet import DenseNet121from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2# Add two lines of code to enable OpenVINO integration with TensorFlowimport openvino_tensorflowopenvino_tensorflow.set_backend("CPU")


model = DenseNet121(weights='imagenet')


# Freeze the model first to achieve the best performance# using OpenVINO integration with TensorFlow    full_model = tf.function(lambda x: self.model(x))full_model = full_model.get_concrete_function(tf.TensorSpec(model.inputs[0].shape,model.inputs[0].dtype, name=model.inputs[0].name))frozen_func = convert_variables_to_constants_v2(full_model)frozen_func.graph.as_graph_def()session = tf.compat.v1.Session(graph=frozen_func.graph)prob_tensor = frozen_func.graph.get_tensor_by_name(full_model.outputs[0].name)


# Run the inference on the frozen modelsession.run(prob_tensor, feed_dict={full_model.inputs[0].name : input_data})

#03

Mask RCNN Atrous和SSD Mobilenet

如上文的结果所示,OpenVINO与TensorFlow的集成可以加速大多数TensorFlow模型,但由于一些模型具有OpenVINO与TensorFlow集成尚不完全支持的工作组件(例如运算符、层等),如Mask RCNN Atrous和SSD Mobilenet V2等一些模型仍在开发完善中。

为了扩大模型覆盖范围以及进一步提升性能,极视角技术团队将会继续测试和完善OpenVINO与TensorFlow的集成,以帮助更多使用TensorFlow开发人员能够更好地应用极市平台。

编辑:jq

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

    关注

    2

    文章

    2147

    浏览量

    66237
  • SSD
    SSD
    +关注

    关注

    21

    文章

    3061

    浏览量

    121784
  • AI
    AI
    +关注

    关注

    89

    文章

    38091

    浏览量

    296594
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73148

原文标题:英特尔OpenVINO™ 助力极视角AI推理加速

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    英特尔Gaudi 2E AI加速器为DeepSeek-V3.1提供加速支持

    英特尔® Gaudi 2EAI加速器现已为DeepSeek-V3.1提供深度优化支持。凭借出色的性能和成本效益,英特尔Gaudi 2E以更低的投入、更高的效率,实现从模型训练的深度突破到推理
    的头像 发表于 08-26 19:18 2581次阅读
    <b class='flag-5'>英特尔</b>Gaudi 2E <b class='flag-5'>AI</b><b class='flag-5'>加速</b>器为DeepSeek-V3.1提供<b class='flag-5'>加速</b>支持

    硬件与应用同频共振,英特尔Day 0适配腾讯开源混元大模型

    OpenVINO™ 构建的 AI 软件平台的可扩展性,英特尔助力ISV生态伙伴率先实现应用端Day 0 模型适配,大幅加速了新模型的落地进
    的头像 发表于 08-07 14:42 1118次阅读
    硬件与应用同频共振,<b class='flag-5'>英特尔</b>Day 0适配腾讯开源混元大模型

    主控CPU全能选手,英特尔至强6助力AI系统高效运转

    2025年3月,英伟达发布了DGX B300 AI加速计算平台。2025年5月,英特尔发布了三款全新英特尔至强6性能核处理器,其中一款6776P被用作是DGX B300的主控CPU,这
    的头像 发表于 06-27 11:44 603次阅读
    主控CPU全能选手,<b class='flag-5'>英特尔</b>至强6<b class='flag-5'>助力</b><b class='flag-5'>AI</b>系统高效运转

    使用英特尔® NPU 插件C++运行应用程序时出现错误:“std::Runtime_error at memory location”怎么解决?

    使用OpenVINO™工具套件版本 2024.4.0 构建C++应用程序 使用英特尔® NPU 插件运行了 C++ 应用程序 遇到的错误: Microsoft C++ exception: std::runtime_error at memory location
    发表于 06-25 08:01

    英特尔锐炫Pro B系列,边缘AI的“智能引擎”

    CTO、高级首席AI工程师张宇博士 英特尔客户端计算事业部边缘计算CTO、高级首席AI工程师张宇博士在MWC AI终端峰会上指出,边缘崛起
    的头像 发表于 06-20 17:32 699次阅读
    <b class='flag-5'>英特尔</b>锐炫Pro B系列,边缘<b class='flag-5'>AI</b>的“智能引擎”

    直击Computex 2025:英特尔重磅发布新一代GPU,图形和AI性能跃升3.4倍

    电子发烧友原创  章鹰 5月19日,在Computex 2025上,英特尔发布了最新全新图形处理器(GPU)和AI加速器产品系列。包括全新英特尔锐炫™ Pro B系列GPU——
    的头像 发表于 05-21 00:57 6960次阅读
    直击Computex 2025:<b class='flag-5'>英特尔</b>重磅发布新一代GPU,图形和<b class='flag-5'>AI</b>性能跃升3.4倍

    直击Computex2025:英特尔重磅发布新一代GPU,图形和AI性能跃升3.4倍

    5月19日,在Computex 2025上,英特尔发布了最新全新图形处理器(GPU)和AI加速器产品系列。包括全新英特尔锐炫™ Pro B系列GPU——
    的头像 发表于 05-20 12:27 5154次阅读
    直击Computex2025:<b class='flag-5'>英特尔</b>重磅发布新一代GPU,图形和<b class='flag-5'>AI</b>性能跃升3.4倍

    英特尔发布全新GPU,AI和工作站迎来新选择

    Pro B50 GPU,搭载了为AI推理和专业工作站量身定制的配置,扩展了英特尔锐炫Pro产品系列。 英特尔 ® Gaudi 3 AI
    发表于 05-20 11:03 1665次阅读

    英特尔借助开放生态系统,加速边缘AI创新

    英特尔推出全新AI边缘系统、边缘AI套件和开放边缘平台软件,赋能合作伙伴AI无缝融入现有基础设施  
    发表于 03-21 11:31 302次阅读
    <b class='flag-5'>英特尔</b>借助开放生态系统,<b class='flag-5'>加速</b>边缘<b class='flag-5'>AI</b>创新

    为什么无法检测到OpenVINO™工具套件中的英特尔®集成图形处理单元?

    在 Ubuntu* Desktop 22.04 上安装了 英特尔® Graphics Driver 版本并OpenVINO™ 2023.1。 运行 python 代码: python -c
    发表于 03-05 08:36

    请问OpenVINO™工具套件英特尔®Distribution是否与Windows® 10物联网企业版兼容?

    无法在基于 Windows® 10 物联网企业版的目标系统上使用 英特尔® Distribution OpenVINO™ 2021* 版本推断模型。
    发表于 03-05 08:32

    安装OpenVINO™适用于Raspberry Pi64位操作系统的工具套件2022.3.1,配置英特尔®NCS2时出错怎么解决?

    安装OpenVINO™适用于 Raspberry Pi* 64 位操作系统的工具套件 2022.3.1。 配置英特尔® NCS2时出错: CMake Error at CMakeLists.txt
    发表于 03-05 07:27

    英特尔®独立显卡与OpenVINO™工具套件结合使用时,无法运行推理怎么解决?

    使用英特尔®独立显卡与OpenVINO™工具套件时无法运行推理
    发表于 03-05 06:56

    英特尔OpenVINO 2025.0正式发布

    生成式AI(GenAI)在模型质量与应用范围上持续爆发式增长,DeepSeek 等顶尖模型已引发行业热议,这种势头预计将在 2025年延续。本次更新聚焦性能提升、更多生成式AI 模型的支持,并针对英特尔神经处理单元(NPU)推出
    的头像 发表于 02-21 10:20 1668次阅读
    <b class='flag-5'>英特尔</b><b class='flag-5'>OpenVINO</b> 2025.0正式发布

    英特尔Gaudi 2D AI加速助力DeepSeek Janus Pro模型性能提升

    Pro模型进行了深度优化。 这一优化举措使得AI开发者能够以更低的成本和更高的效率实现复杂任务的部署与优化。英特尔Gaudi 2D AI加速器通过其卓越的计算能力和高度优化的软件栈,
    的头像 发表于 02-10 11:10 927次阅读