OpenVINO 2019 R2.0 Custom Layer Implementation for linux(1)
OpenVINO除了支持比较流行的Caffe等深度学习框架,还支持用户自定义网络Custom Layer层。
Custom Layer
OpenVINO的Custom Layer的实施包括Model Optimizer 和 Inference Engine两个部分
Model Optimizer的主要作用是在构建IR之前,会搜寻已知每层网络,该网络中包含输入模型拓扑,并优化该模型,最终生成IR。如果所设计的拓扑结构中包含的Layer不在已知的Layer中,该Layer将会被认为custom
Inference Engine从输入模型的IR文件中加载网络到每个具体执行的设备中。如果网络层中的拓扑结构没有在该设备的已知Layer中,Inference Engine将会报错,设备类型中支持的Layer,可以在 Support Devices
Custom Layer Extensions for the Model Optimizer
Model Optimizer的实施主要包括一下主要流程,其中Custom Layer Extractor and Custom Layer Operation两个主要部分:
Model Optimizer首先从输入的模型中(包括模型拓扑结构及相应的参数,每层的输入和输出格式等)提取出所需要的信息,然后从每层的特点,内部链接,已经每层操作的数据了走向等各个方面进行优化,最后输出IR文件。
Custom Layer Extrator
---主要职责是定义custom layer操作 已经提取相应的参数。Layer参数被保存在每个实例中,在生成最终的IR之前需要被Layer使用。
Custom Layer Operation
---主要职责是明确cutom layer所支持的属性,从cutom layer每个实例参数中计算输出形状
Custom Layer Extensions for the Inference Engine
下图显示Inferer Enginer的cutom layer工作流程,其中Custom Layer CPU extension是在CPU上运行, Custom Layer GPU Extension是在GPU上运行:
每个设备都包括一个经过优化的lib,用来执行cutom layer的扩展操作。
Custom Layer CPU Extension:
---包括编译的共享库(.so or .dll),CPU执行cutom Layer所需要的
Custom Layer GPU Externsion:
---opencl kernl .cl文件,被GPU编译,以及一个.xml文件(稍后文章在介绍),该.xml为 GPU执行 cutom layer kernel所需要
Model Extension Generator
OpenVINO提供了一系列工具用于Custom Layer开发,其中Model Extension Gernator是重要的工具之一,主要在用在Model Optimize中,主要用于自动生成中间文件,是生成IR文件执行所必须的
工具目录在:
/opt/intel/openvino/deployment_tools/tools/extension_generator/extgen.py
运行该命令help,查看 该结果:
python3 /opt/intel/openvino/deployment_tools/tools/extension_generator/extgen.py new --help
运行结果:
usage: You can use any combination of the following arguments:Arguments to configure extension generation in the interactive modeoptional arguments:-h, --help show this help message and exit--mo-caffe-ext generate a Model Optimizer Caffe* extractor--mo-mxnet-ext generate a Model Optimizer MXNet* extractor--mo-tf-ext generate a Model Optimizer TensorFlow* extractor--mo-op generate a Model Optimizer operation--ie-cpu-ext generate an Inference Engine CPU extension--ie-gpu-ext generate an Inference Engine GPU extension--output_dir OUTPUT_DIRset an output directory. If not specified, the currentdirectory is used by default.
在生成模型中一般需要指明生成哪个框架的扩展模型
Command-line Argument | Description |
--mo-caffe-ext | 生成caffe的扩展模型,生成目录在/front/caffe |
--mo-mxnet-ext | 生成mxnet扩展模型,生成目录在/front/mxnet |
--mo-tf-ext | 生成TensorFlow模型,生成目录在/front/tf |
--mo-op | 生成Model optimizer操作相关数据。生成目录在/ops |
--ie-cpu-ext | 生成在cpu执行的相关数据,生成目录在/cpu |
--ie-gpu-ext | 生成在GPU执行的相关数据,生成目录在/GPU |
--output_dir OUTPUT_DIR | 设置输出目录 |
Extension Workflow
生产Model Optimizer所需要的custom Layer Extension数据流程如下:
Step1 :使用Model Extension Generator生成所需要的Custom Layer临时文件
Step 2: 编辑上步骤生产的Custom Layer临时文件,以适应Cumstom Layer 扩展源码
Step 3: 明确Model Optimizer 或Inference Engine需要用到的Custom layer
官网有提供custom layer例子下节再介绍
OpenVINO Custom Layer example
OpenVINO 2019 R2.0 Custom Layer Implementation for linux(1)相关推荐
- OpenVINO 2019 R2.0 Custom Layer Implementation for linux(2)
在上节主要是讲述了OpenVINO 整个custom layer流程,官网中给出了基于CPU和GPU整个实现用例过程,用例链接 该用例主要是在custom layer中实现一下公式: 整个流程主要如下 ...
- OpenVINO Inference Engine之custom Layer自定义算法(VPU版本)
OpenVINO不仅支持广泛的已知深度学习架构(Caff,TensorFlow等),还支持用户自定义CNN 算法,拥有良好的可扩展性.要使用用户自定义功能就要使用到Inference Engine K ...
- TensorRT Samples: MNIST(Plugin, add a custom layer)
关于TensorRT的介绍可以参考:http://blog.csdn.net/fengbingchun/article/details/78469551 以下是参考TensorRT 2.1.2中的sa ...
- mysql+server+80_Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程
准备篇 一.环境说明: 操作系统:Windows Server 2019 PHP版本:php 7.3.11 MySQL版本:MySQL 8.0.18.0 二.相关软件下载: 1.PHP下载地址: ht ...
- caffe 添加自定义层(custom layer)
在<剖析Caffe源码之Layer>可以知道layer是所有层的基类,由此类派生出各种不同的不同的层,其如下图所示: 由此扩展出了各种不同的层,基本能满足要求,但是有时候在搭建拓扑网络时, ...
- php7 iis10 mysql_Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程
准备篇 一.环境说明: 操作系统:Windows Server 2019 PHP版本:php 7.3.11 MySQL版本:MySQL 8.0.18.0 二.相关软件下载: 1.PHP下载地址: ht ...
- iis10 php,Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程
准备篇 一.环境说明: 操作系统:Windows Server 2019 PHP版本:php 7.3.11 MySQL版本:MySQL 8.0.18.0 二.相关软件下载: 1.PHP下载地址: ht ...
- 【keras】Input 0 of layer conv2d is incompatible with the layer. expected ndim=4, found ndim=3
在构建卷积神经网络时,遇到了这个错误 ValueError: Input 0 of layer conv2d is incompatible with the layer: expected ndim ...
- Adobe Photoshop CC 2019 20.0.6软件免费下载及安装教程
Adobe Photoshop CC 2019 20.0.6免费下载最新版本的Windows.在上传之前,程序和所有文件都会被手动检查和安装,程序运行正常,没有任何问题.它是完全脱机安装程序独立设置的 ...
最新文章
- (Mirage系列之六)在Mirage里使用Collection
- 基于单例模式的日志输出(C++)
- 2018年HBase生态社群画像 +最全资料汇总下载
- RDKit:运用RDKit计算USRCAT(形状相似性)
- MVC中执行成功弹出对话框
- Python剑指offer:数组中重复的数字
- Andriod --- JetPack (七):Room + ViewModel + LiveData 增删改查实例
- ERROR in multi ./src/main.js dist/bundle.js
- html 轮播图的鼠标事件,这是图片轮播的代码 html+css,怎么加上鼠标悬停移出继续功能?...
- ubuntu16.04下ROS操作系统学习笔记(七 )机器语音-语音听写-科大讯飞SDK调用
- 图说丨京东《技术重构社会供应链——未来科技趋势白皮书》
- Digester简介和使用
- Typora、Markdown 字体样式
- 计算机专业人员有补贴吗,2020年各地软考证书申领补贴需要什么条件
- linux filp open,诚意请教一个filp_open的问题。
- js 使用tel标签实现拨打电话
- 汇编综合实验--学生管理系统
- MySQL入门学习:组合查询
- 低代码行业风涌云起,他们靠什么跻身全球第一阵营?
- PostgreSQL备机checkpoint