CN110533162B - 一种自动生成深度学习框架间操作映射的方法及系统 - Google Patents
一种自动生成深度学习框架间操作映射的方法及系统 Download PDFInfo
- Publication number
- CN110533162B CN110533162B CN201910677639.6A CN201910677639A CN110533162B CN 110533162 B CN110533162 B CN 110533162B CN 201910677639 A CN201910677639 A CN 201910677639A CN 110533162 B CN110533162 B CN 110533162B
- Authority
- CN
- China
- Prior art keywords
- deep learning
- conversion
- operations
- description file
- subclass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出一种自动生成深度学习框架间操作映射的方法及系统,包括:根据原深度学习框架和目标深度学习框架间的操作转换规则,抽取框架间操作转换的基本共性,根据基本共性构建转换关系,将转换关系作为基类存储于操作转换的初始描述文件中;获得原深度学习框架下支持的操作集合,遍历操作集合,为每个操作构建继承基类的子类,判断操作集合中操作除了基类中的基本转换规则外是否具有特殊属性,若是则补充特殊属性至子类,构成完备描述文件,否则直接保存子类,构成完备描述文件;将完备描述文件输入至编译器,得到操作转换规则,根据操作转换规则将原深度学习框架下待转换的操作转换为目标深度学习框架下的操作。
Description
技术领域
本发明涉及深度学习领域,并特别涉及一种自动生成深度学习框架间操作映射的方法及系统,应用在不同框架间做模型转换时涉及到操作的转换上。
背景技术
当前深度学习的实现框架种类较多。不同的用户会在其熟悉上的框架上构建并训练模型。当其他用户想复用在其不熟悉的框架上已经训练好的模型时,就会对模型进行转换,转换到其熟悉的框架上。即当一个模型在框架A上训练好之后,用户可以将其转为B框架下的模型使得其可在B框架下直接做推断而不需要重新训练模型。
每个模型Model由多种不同的操作构成。一般情况下,每个操作OP有操作类型、输入(支持零到多个)、输出(支持1到多个)、属性等内容,如图1 所示。模型由操作构成,各操作之间通过各自的输入输出相关联,如图2的例子所示,图2的模型结构包含了5个操作OP,分别为Conv、SpatialBN,Relu, AveragePool和FC。对于Conv操作其输入包含data和weight,输出只有一个且作为SpatialBN操作的输入之一。
不同框架间如Pytorch/Caffe2/Tensorflow与ONNX框架间的模型转换方法为:对模型中每个node/layer(封装了具体的操作)进行遍历,将构成原始模型的每个操作对应到操作转换映射规则中进行一一映射,形成新框架下的操作,最后将这些转换后的操作构造成新框架可识别的模型结构。
此处的操作转换映射规则的一个例子如下表1所示。
则针对图2的模型结构依据表1所示的操作转换规则,转换为新框架下的模型结构如图3所示。当前实现方法简单明了,只要有不同框架间的操作映射规则关系,按照该规则进行一一匹配就可以实现模型的转换。但在实际实现过程中,表1所示的操作转换映射规则不是简单的一个表数据结构就满足模型转换的要求。事实上,该映射关系是通过用户程序内的逻辑实现的,我们暂时可以简单的理解为一个映射表。
原操作 | 目的操作 |
Conv | Conv |
SpatialBN | BatchNormalization |
Relu | Relu |
AveragePool | GlobalAveragePool |
FC | Gemm |
… | … |
表1操作转换规则
现有技术在形成深度学习框架间的操作转换映射规则时,采用的方法均是通过程序的逻辑来实现操作间一对一的映射转换。而当前主流的深度学习框架一般含有几百个不同的操作,因此若要实现两个主流框架间完备的操作转换映射规则,则需要大量的人工进行编码实现,工作量很大。同时,在框架A与B 之间实现了操作转换规则之后,若要在框架A与C之间再次实现该规则时,会有很多的重复性工作。
发明内容
本发明的目的是解决上述现有技术存在大量冗余重复性的代码实现的问题,提出一种自动生成深度学习框架间操作映射的方法,包括:
步骤1、根据原深度学习框架和目标深度学习框架间的操作转换规则,抽取框架间操作转换的基本共性,根据该基本共性构建基本的转换关系,将该转换关系作为基类存储于操作转换的初始描述文件中;
步骤2、获得该原深度学习框架下支持的操作集合,通过遍历该操作集合,为每个操作构建继承基类的子类,该子类包括原操作类型和目标操作类型,判断该操作集合中操作除了基类中的基本转换规则外是否具有特殊属性,若是则补充该特殊属性至该子类,构成完备描述文件,否则直接保存该子类,构成完备描述文件;
步骤3、将该完备描述文件输入至编译器,得到操作转换规则,根据该操作转换规则将该原深度学习框架下待转换的操作转换为该目标深度学习框架下的操作。
所述的自动生成深度学习框架间操作映射的方法,其中该基本共性包括:操作名变更规则、输入输出的继承规则、参数名的转换规则和类型的转换规则。
所述的自动生成深度学习框架间操作映射的方法,其中该编译器具体为LLVM工具链中的Tablegen工具。
所述的自动生成深度学习框架间操作映射的方法,其中得到该特殊属性的过程具体包括:判断该操作集合中单一操作是否对应该目标深度学习框架下多个操作,若是,则选择该多个操作中一个操作作为主操作,其余操作作为该主操作的前序操作,并将该前序操作作为单一操作转为该主操作的特殊属性。
本发明还提出了一种自动生成深度学习框架间操作映射的系统,其中包括:
模块1、根据原深度学习框架和目标深度学习框架间的操作转换规则,抽取框架间操作转换的基本共性,根据该基本共性构建基本的转换关系,将该转换关系作为基类存储于操作转换的初始描述文件中;
模块2、获得该原深度学习框架下支持的操作集合,通过遍历该操作集合,为每个操作构建继承基类的子类,该子类包括原操作类型和目标操作类型,判断该操作集合中操作除了基类中的基本转换规则外是否具有特殊属性,若是则补充该特殊属性至该子类,构成完备描述文件,否则直接保存该子类,构成完备描述文件;
模块3、将该完备描述文件输入至编译器,得到操作转换规则,根据该操作转换规则将该原深度学习框架下待转换的操作转换为该目标深度学习框架下的操作。
所述的自动生成深度学习框架间操作映射的系统,其中该基本共性包括:操作名变更规则、输入输出的继承规则、参数名的转换规则和类型的转换规则。
所述的自动生成深度学习框架间操作映射的系统,其中该编译器具体为 LLVM工具链中的Tablegen工具。
所述的自动生成深度学习框架间操作映射的系统,其中得到该特殊属性的过程具体包括:判断该操作集合中单一操作是否对应该目标深度学习框架下多个操作,若是,则选择该多个操作中一个操作作为主操作,其余操作作为该主操作的前序操作,并将该前序操作作为单一操作转为该主操作的特殊属性。
该发明与现有技术相比,该发明只需要识别出不同操作转换的共性部分,将其提取为通用部分的实现,再在此基础上补充各操作转换除共性部分以外的特有的属性信息,形成操作转换描述文件。利用tablegen技术自动化的生成所有的操作转换规则。而无需用户针对操作一个个编写其对应的转换规则,从而能够大幅度降低深度学习框架间操作的转换规则的实现代价。
附图说明
图1为单个操作的基本定义图;
图2为一个模型结构的简单示意图;
图3为转换后的新框架下的模型结构图;
图4为生成操作转换描述文件阶段流程图。
具体实施方式
发明人在进行深度学习模型在不同框架间转换时涉及到的构成模型的操作映射规则生成的研究时,发现深度学习不同框架间实现操作转换时,有一部分转换的内容是可以提取成共同的实现逻辑,剩下部分内部才是每个操作转换时所特有的(甚至于有不小比例的操作映射转换可以全部提取到通用的实现逻辑中)。发现现有技术中存在大量的冗余性重复性工作。而该缺陷是由于没有抽象提取出公共的实现部分导致的。发明人经过对现有可支持自动化实现的方法研究发现,解决该缺陷可以利用现有的LLVM的tablegen技术来自动化的实现不同框架间操作的转换规则。具体方法为:通过提取出操作转换的公共实现部分,再细化各操作转换的特有属性形成一个定义描述文件,最后利用LLVM 的tablegen技术针对该描述文件自动生成操作转换规则。其中LLVM(Low level Virtual machine)为自由软件项目,它是一种编译器基础设施,以C++ 写成,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。 Tablegen是LLVM工具链中的一个工具,该主要用来生成LLVM后端代码执行器。本发明实现的操作转换映射规则具有更加自动化,能大量减少重复性的转换工作。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
每个操作在转换时,总体上会考虑以下几方面的内容:原操作和目标操作的名字、操作类型、接收的输入、最终的输出以及相关参数。针对原操作和目标操作之间的一对一和一对多的映射关系的不同,我们所考虑的情况也不一样: 1)若是一对一的操作映射,目的操作的名字、输入及输出会继承原操作。而操作类型则是适配不同的框架,因而类型名会有所差异。原操作的相关参数,一般情况下目标操作的部分参数的名字和支持的类型有所差异,但是大部分的参数值也可以直接继承自原操作。2)若是一对多的操作映射,即原操作A转换成目标框架下的操作B和C,则需要考虑转换后的操作集中以哪个操作为主,其他的操作则认为是主操作的前序操作或后续操作。例如认为C是主操作,则B是C的前序操作。该前序操作则是原操作A转为目标操作C的特殊属性 (和一对一的操作映射存在较大区别之处),需要额外描述。
该发明的具体实施方法分为两个阶段:
阶段一:生成操作转换描述文件阶段。该阶段的具体流程如图4所示。
1)构建所有操作转换的通用属性。首先确定两个深度学习框架内构成模型的操作表示方法(数据结构)。抽取出操作转换的基本共性:包括操作名变更规则,基本输入和输出的继承以及参数名、类型的转换等方面。将以上信息形成一个基类,存储于操作转换的描述文件中。确定两个深度学习框架内构成模型的操作表示方法具体包括:通过查看两个框架内实现各个操作的通用数据结构来确定。其所需工作量很少,只是分别查看两个框架的两个文件,但是不同框架间的操作转换映射关系有很多很多,上百种,这个工作量很大。本发明目的是将这上百个操作之间的映射转换的逻辑尽可能自动化实现,而不是人工写代码。
2)构造各操作转换的特殊属性。在1)的基础上,获得原框架下支持的操作集合;遍历每个操作,为每个操作设置一个类似继承基类的子类,设置上该操作特有的原操作类型和目标操作类型等信息;再确定该操作除了基类中的基本转换规则外是否需要特殊的属性,若需要则在该子类中进行补充;最终构成完备的操作转换描述文件。
阶段二:依据阶段一生成的描述文件,利用LLVM tablegen技术生成最终的操作转换规则。
例子说明:
针对图2到图3的操作转换的例子,我们的具体执行逻辑如下所示:
1.首先设置统一的基类:
其次再设置每个操作的具体的转换规则:
若要设置操作的特殊属性,则用let attribute=value的格式进行设置即可。
比如,若原框架下的FC操作转为目标框架下的Reshape操作及Gemm操作,则可以设Gemm是转换后的主操作,而Reshape是Gemm这个主操作的前序操作。则在defFC中,需要额外通过let设置PrevioisOps为ReShape的操作,接收FC的inputs作为Reshape的Inputs,且Reshape操作的输出作为 Gemm主操作的输入。
最后用tablegen技术执行该描述文件,生成相应的高级语言程序。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种自动生成深度学习框架间操作映射的系统,其中包括:
模块1、根据原深度学习框架和目标深度学习框架间的操作转换规则,抽取框架间操作转换的基本共性,根据该基本共性构建基本的转换关系,将该转换关系作为基类存储于操作转换的初始描述文件中;
模块2、获得该原深度学习框架下支持的操作集合,通过遍历该操作集合,为每个操作构建继承基类的子类,该子类包括原操作类型和目标操作类型,判断该操作集合中操作除了基类中的基本转换规则外是否具有特殊属性,若是则补充该特殊属性至该子类,构成完备描述文件,否则直接保存该子类,构成完备描述文件;
模块3、将该完备描述文件输入至编译器,得到操作转换规则,根据该操作转换规则将该原深度学习框架下待转换的操作转换为该目标深度学习框架下的操作。
所述的自动生成深度学习框架间操作映射的系统,其中该基本共性包括:操作名变更规则、输入输出的继承规则、参数名的转换规则和类型的转换规则。
所述的自动生成深度学习框架间操作映射的系统,其中该编译器具体为 LLVM工具链中的Tablegen工具。
所述的自动生成深度学习框架间操作映射的系统,其中得到该特殊属性的过程具体包括:判断该操作集合中单一操作是否对应该目标深度学习框架下多个操作,若是,则选择该多个操作中一个操作作为主操作,其余操作作为该主操作的前序操作,并将该前序操作作为单一操作转为该主操作的特殊属性。
Claims (6)
1.一种自动生成深度学习框架间操作映射的方法,其特征在于,包括:
步骤1、根据原深度学习框架和目标深度学习框架间的操作转换规则,抽取框架间操作转换的基本共性,根据该基本共性构建基本的转换关系,将该转换关系作为基类存储于操作转换的初始描述文件中;
步骤2、获得该原深度学习框架下支持的操作集合,通过遍历该操作集合,为每个操作构建继承基类的子类,该子类包括原操作类型和目标操作类型,判断该操作集合中操作除了基类中的基本转换规则外是否具有特殊属性,若是则补充该特殊属性至该子类,构成完备描述文件,否则直接保存该子类,构成完备描述文件;
步骤3、将该完备描述文件输入至编译器,得到操作转换规则,根据该操作转换规则将该原深度学习框架下待转换的操作转换为该目标深度学习框架下的操作;
其中,步骤2中得到该特殊属性的过程具体包括:判断该操作集合中单一操作是否对应该目标深度学习框架下多个操作,若是,则选择该多个操作中一个操作作为主操作,其余操作作为该主操作的前序操作,并将该前序操作作为单一操作转为该主操作的特殊属性。
2.如权利要求1所述的自动生成深度学习框架间操作映射的方法,其特征在于,该基本共性包括:操作名变更规则、输入输出的继承规则、参数名的转换规则和类型的转换规则。
3.如权利要求1所述的自动生成深度学习框架间操作映射的方法,其特征在于,该编译器具体为LLVM工具链中的Tablegen工具。
4.一种自动生成深度学习框架间操作映射的系统,其特征在于,包括:
模块1、根据原深度学习框架和目标深度学习框架间的操作转换规则,抽取框架间操作转换的基本共性,根据该基本共性构建基本的转换关系,将该转换关系作为基类存储于操作转换的初始描述文件中;
模块2、获得该原深度学习框架下支持的操作集合,通过遍历该操作集合,为每个操作构建继承基类的子类,该子类包括原操作类型和目标操作类型,判断该操作集合中操作除了基类中的基本转换规则外是否具有特殊属性,若是则补充该特殊属性至该子类,构成完备描述文件,否则直接保存该子类,构成完备描述文件;
模块3、将该完备描述文件输入至编译器,得到操作转换规则,根据该操作转换规则将该原深度学习框架下待转换的操作转换为该目标深度学习框架下的操作;
其中,模块2中得到该特殊属性的过程具体包括:判断该操作集合中单一操作是否对应该目标深度学习框架下多个操作,若是,则选择该多个操作中一个操作作为主操作,其余操作作为该主操作的前序操作,并将该前序操作作为单一操作转为该主操作的特殊属性。
5.如权利要求4所述的自动生成深度学习框架间操作映射的系统,其特征在于,该基本共性包括:操作名变更规则、输入输出的继承规则、参数名的转换规则和类型的转换规则。
6.如权利要求4所述的自动生成深度学习框架间操作映射的系统,其特征在于,该编译器具体为LLVM工具链中的Tablegen工具。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910677639.6A CN110533162B (zh) | 2019-07-25 | 2019-07-25 | 一种自动生成深度学习框架间操作映射的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910677639.6A CN110533162B (zh) | 2019-07-25 | 2019-07-25 | 一种自动生成深度学习框架间操作映射的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110533162A CN110533162A (zh) | 2019-12-03 |
CN110533162B true CN110533162B (zh) | 2022-01-07 |
Family
ID=68661940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910677639.6A Active CN110533162B (zh) | 2019-07-25 | 2019-07-25 | 一种自动生成深度学习框架间操作映射的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110533162B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947899B (zh) * | 2019-12-11 | 2023-09-26 | 杭州海康威视数字技术股份有限公司 | 深度学习模型转换方法、系统及装置 |
TWI786430B (zh) * | 2020-08-20 | 2022-12-11 | 鴻海精密工業股份有限公司 | 深度學習模型的模型轉換優化裝置、方法及存儲介質 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169713A (zh) * | 2006-10-25 | 2008-04-30 | 中兴通讯股份有限公司 | 支持转换引擎与映射规则相分离的模型转换框架及其方法 |
CN103294462A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 对象映射处理方法、映射处理器和对象映射处理系统 |
CN107480789A (zh) * | 2017-08-07 | 2017-12-15 | 北京中星微电子有限公司 | 一种深度学习模型的高效转换方法及装置 |
CN108279881A (zh) * | 2018-02-11 | 2018-07-13 | 深圳竹信科技有限公司 | 基于深度学习预测部分的跨平台实现架构及方法 |
CN109710260A (zh) * | 2018-11-16 | 2019-05-03 | 青岛特锐德电气股份有限公司 | 一种基于多平台的小程序代码转换系统及转换方法 |
-
2019
- 2019-07-25 CN CN201910677639.6A patent/CN110533162B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169713A (zh) * | 2006-10-25 | 2008-04-30 | 中兴通讯股份有限公司 | 支持转换引擎与映射规则相分离的模型转换框架及其方法 |
CN103294462A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 对象映射处理方法、映射处理器和对象映射处理系统 |
CN107480789A (zh) * | 2017-08-07 | 2017-12-15 | 北京中星微电子有限公司 | 一种深度学习模型的高效转换方法及装置 |
CN108279881A (zh) * | 2018-02-11 | 2018-07-13 | 深圳竹信科技有限公司 | 基于深度学习预测部分的跨平台实现架构及方法 |
CN109710260A (zh) * | 2018-11-16 | 2019-05-03 | 青岛特锐德电气股份有限公司 | 一种基于多平台的小程序代码转换系统及转换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110533162A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
CN110533162B (zh) | 一种自动生成深度学习框架间操作映射的方法及系统 | |
CN104679511A (zh) | 基于MDE模型转换的MapReduce代码生成方法 | |
CN104268428A (zh) | 一种用于指标计算的可视化配置方法 | |
US9619212B2 (en) | Providing code, code generator and software development environment | |
CN103034499A (zh) | 机载设备网络数据传输通用的数据格式转换方法及其系统 | |
CN110221828B (zh) | 一种汽车电子控制单元通讯程序的可视化编程方法 | |
US20200019896A1 (en) | Numerical graphical flow diagram conversion and comparison | |
US20220334572A1 (en) | Method for Generating a Digital Twin of a System or Device | |
US20210116890A1 (en) | Production Control System | |
CN110532291B (zh) | 基于最小执行代价的深度学习框架间模型转换方法及系统 | |
CN109033452B (zh) | 一种数据仓库智能构建装载方法及系统 | |
CN104656543A (zh) | 一种plc梯形图矩阵编辑显示方法 | |
CN107589936B (zh) | 基于需求文本与可变性模型追踪关系的产品线可变性配置优化方法 | |
US20220277119A1 (en) | A System and Method for Generating a Holistic Digital Twin | |
CN117369772A (zh) | 基于大语言推理模型的软件工程智能化构建引擎系统 | |
CN104298657A (zh) | 基于表达式的评价指标解析系统 | |
CN111832740A (zh) | 一种对结构化数据实时衍生机器学习用特征的方法 | |
CN113433885A (zh) | 用于plc编程系统的梯形图转换为结构化文本的方法 | |
CN117882080A (zh) | 用于将工业标准规范转换成至少一个经实例化的规则的方法和设备 | |
CN114707655A (zh) | 一种量子线路转换方法、系统、存储介质和电子设备 | |
CN102566536B (zh) | 系统流程控制设备和方法 | |
Listl et al. | Utilizing ISA-95 in an Industrial Knowledge Graph for Material Flow Simulation-Semantic Model Extensions and Efficient Data Integration | |
CN110471646A (zh) | 一种通过人工配置实现复杂程序逻辑的方法 | |
CN111581047A (zh) | 一种针对智能合约行为的监管方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |