Inference Engine是OpenVINO具体实施单元,支持CPU,GPU,FPGA,Movidius,GNA等因特尔开发的硬件平台,并提供可操作API,API为C++接口,也支持python.

Inference Engine lib

Inference Engine最核心的的lib为:

linux: libinference_engine.so

window OS: inference_engine.dll

主要提供API中的功能,是对各种功能进行抽象,和具体硬件平台无关

除了上述lib之外,为了将上述功能在具体硬件实现,还得需要具体硬件lib(相当于驱动层),各个平台上名字不一样,具体版本也不太一样,本文学习的主要是R2版本

平台 lib(linux) 依赖lib(linux) DLL(window) 依赖DLL(window)
CPU libMKLDNNPlugin.so libmklml_tiny.so, libiomp5md.so MKLDNNPlugin.dll mklml_tiny.dll, libiomp5md.dll
GPU libclDNNPlugin.so libclDNN64.so clDNNPlugin.dll clDNN64.dll
FPGA libdliaPlugin.so libdla_compiler_core.so, libdla_runtime_core.so dliaPlugin.dll dla_compiler_core.dll, dla_runtime_core.dll
MYRIAD libmyriadPlugin.so NA myriadPlugin.dll NA
HDDL libHDDLPlugin.so libbsl.so, libhddlapi.so, libmvnc-hddl.so HDDLPlugin.dll bsl.dll, hddlapi.dll, json-c.dll, libcrypto-1_1-x64.dll, libssl-1_1-x64.dll, mvnc-hddl.dll
GNA libGNAPlugin.so libgna_api.so GNAPlugin.dll gna.dll
HETERO libHeteroPlugin.so Same as for selected plugins HeteroPlugin.dll Same as for selected plugins
MULTI libMultiDevicePlugin.so Same as for selected plugins MultiDevicePlugin.dll Same as for selected plugins

linux可以通过设置LD_LIBRARY_PATH 相关lib路径,也可以通过bin/setupvars.sh 设置

windows 可以通过设置PATH 相关lib路径,也可以通过bin/setupvars.bat 设置

libinference_engine.so主要包含(注意R1版本和R2版本有很大不同):

        读取CNN网络(InferenceEngine::CNNNetReader)

        维护CNN网络信息 (InferenceEngine::CNNNetwork)

创建Inference Engine Core object(InferenceEngine::Core)

运行网络,根据输入输出相关数据(InferenceEngine::ExecutableNetwork and InferenceEngine::InferRequest)

Inference Engine API

Inference Engine一般API工作流程:

1:读取IR. 使用InferenceEngine::CNNNetReader读取IR到InferenceEngine::CNNNetwork

2:准备输入输出格式。加载完网络之后,需要明确输入输出

     InferenceEngine::CNNNetwork::getInputsInfo()

InferenceEngine::CNNNetwork::getOutputsInfo()

3:创建core object. Core是指定到具体设备运行的类,是核心功能

创建InferenceEngine::Core

   设置相关InferenceEngine::Core::SetConfig

   相关扩展InferenceEngine::Core::AddExtension

4:编译和加载网络到设备

      InferenceEngine::Core::LoadNetwork()

5:设置输出。 InferenceEngine::InferRequest

6:执行。

   同步执行InferenceEngine::InferRequest::Infer()

   异步执行InferenceEngine::InferRequest::StartAsync(),

    异步时可以使用InferenceEngine::InferRequest::Wait()进行等待完成

7:获取输出结果

      InferenceEngine::IInferRequest::GetBlob()

参考资料

https://docs.openvinotoolkit.org/2019_R2/_docs_IE_DG_inference_engine_intro.html

学习OpenVINO笔记之Inference Engine相关推荐

  1. 学习OpenVINO笔记之Inference Engine Device Query API

    Device Query API是OpenVINO在R2版本时整合引入新的API,主要可以用来查询不同设备属性和配置参数,可以让开发者更加了解设备配置,使用起来更加方便.R2 API与 R1版本相比较 ...

  2. OpenVINO Inference Engine之GetAvailableDevices

    在<学习OpenVINO笔记之Inference Engine Device Query API>中的查询设备用例中,有使用到查看当前有哪些设备可以上线接口GetAvailableDevi ...

  3. OpenVINO Inference Engine之custom Layer自定义算法(VPU版本)

    OpenVINO不仅支持广泛的已知深度学习架构(Caff,TensorFlow等),还支持用户自定义CNN 算法,拥有良好的可扩展性.要使用用户自定义功能就要使用到Inference Engine K ...

  4. JointDNN: An Effificient Training and Inference Engine for Intelligent Mobile Cloud Computing Servic

    题目:JointDNN: An Effificient Training and Inference Engine for Intelligent Mobile Cloud Computing Ser ...

  5. [深度学习] OpenVINO开发:C++ API推理步骤实现

    使用C++ API实现推理步骤: 创建Core对象,加载推理引擎Core,该引擎需要从当前路径加载plugins.xml文件: Core ie; 读取IR文件 (.xml and .bin files ...

  6. 学习SpringBoot笔记以及错误记录

    学习SpringBoot笔记以及错误记录 <1>. 启动类(SpringBootApplication)放错位置 错误场景:MainApplication类不应放在默认的src.main. ...

  7. 虚幻引擎的数学知识学习教程 Math for Unreal Engine (Early Preview)

    通过做真实世界的 Unreal Engine项目来学习数学 你会学到什么 理解游戏开发对数学的基本需求 将数学直接应用到用例中,而不是钻研理论(用我们的示例项目进行实践) 正确编辑短视频,节省您的时间 ...

  8. python神经结构二层_《python深度学习》笔记---8.3、神经风格迁移

    <python深度学习>笔记---8.3.神经风格迁移 一.总结 一句话总结: 神经风格迁移是指将参考图像的风格应用于目标图像,同时保留目标图像的内容. 1."神经风格迁移是指将 ...

  9. tensorflow学习函数笔记

    为什么80%的码农都做不了架构师?>>>    [TensorFlow教程资源](https://my.oschina.net/u/3787228/blog/1794868](htt ...

最新文章

  1. ICRA2022 | AutoPlace:车载单片毫米波雷达场景识别
  2. FRM-40212: set_item_property:ITEM_IS_VALID
  3. GroovyQ | 关注Groovy社区动态,分享Groovy开发经验。
  4. eplan模板_EPLAN之3D箱柜清单自动生成
  5. windows网络编程第二版 第三章 Internet Protocol 读书笔记
  6. ASP.NET 3.5核心编程学习笔记(17):基于数据源的数据绑定
  7. 大数据之-hadoop知识体系架构---大数据之hadoop工作笔记0001
  8. [家里蹲大学数学杂志]第413期插值不等式
  9. 不同浏览器CSS隐藏元素滚动条
  10. 谷歌爆苹果 Image I/O 存重大漏洞,无辜用户躺枪
  11. (转)json+flexgrid+jbox组合运用页面刷新jsp
  12. Linux学习笔记1 - Linux系统简介
  13. [HTML+CSS]电商网站模板
  14. 实现Codeblock支持C99标准
  15. 传统推荐模型——协同过滤
  16. 终于,字节跳动要取消大小周了,我 1.7 万人的票圈都快炸了!
  17. 计算机 学院派,总校计算机学院派老师来校召开“2+2”联合培养班学生见面会...
  18. java读取zip文件损坏_java – 如何检查生成的zip文件是否损坏?
  19. 2022年的第一个夕阳
  20. 微信小程序实现首页图片多种排版布局!

热门文章

  1. 微信公众平台开发教程第22篇-如何保证access_token长期有效
  2. TCP/IP入门(3) --传输层
  3. 记录hiveonspark:Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask
  4. Mac安装与配置idea及tomcat
  5. 关于如何在项目接口保证幂等性的一点思考
  6. 学习react的心路历程(一)
  7. [Usaco2005 nov]Grazing on the Run 边跑边吃草 BZOJ1742
  8. 高性能业务架构解决方案(LVS+Keepalived)
  9. Spring Ioc 源码分析(一)- XML 解析
  10. Spring boot学习整理