一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法技术

技术编号:32753090 阅读:27 留言:0更新日期:2022-03-23 18:48
本发明专利技术公开一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法,包括以下步骤:S1、ONNX文件向Caffe2文件的映射,得到Caffe2格式的前向传播网络,S2、根据S1中获得的前向传播网络的信息,自动生成求梯度算子,得到反向传播网络,S3、根据满足生成完整反向传播网络的需要,设计用户配置信息格式,将配置信息融入上步骤的模型定义文件中。本发明专利技术可以自动产生包括正向传播神经网络、反向传播神经网络、运行控制块和辅助算子的模型文件,从而进行训练任务。行训练任务。行训练任务。

【技术实现步骤摘要】
一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法


[0001]本专利技术涉及一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法,属于深度学习


技术介绍

[0002]近年来,随着深度学习技术的发展,各种深度学习框架不断涌现,这些框架各有特点,并没有哪一家成为事实上的标准。在每个框架中,各自有其使用的模型定义格式,彼此之间并不兼容,若想从一个框架移植到另一个框架,常常需要重新编程,这就需要了解目标框架的编程模式,移植门槛较高。
[0003]多家深度学习框架厂商联合推出了ONNX,成为事实上的标准。目前,主流框架大多支持将深度学习模型导出为ONNX格式,这为模型移植打下了一个基础。但ONNX模型仅支持推理,不支持训练,从训练的角度看,ONNX模型缺失的信息很多,需要进行扩展和补充。
[0004]ONNX是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移,它由三部分组成:可扩展计算图模型的定义、标准数据类型的定义、内置运算符的定义;
[0005]基本格式是Model、Graph、Node三级定义,简略描述如下:
[0006]Model
[0007][0008]Graph
[0009][0010]Node
[0011][0012][0013]Caffe2是2017年发布的一款轻量级和模块化的深度学习框架,它除了提供python的编程接口之外,还提供了直接运行模型定义文件的方式进行训练,它的基本格式为Plan、Net和Operator三级定义,简略描述如下:
[0014]Plan
[0015][0016]Net
[0017][0018]Operator
[0019][0020][0021]ONNX与Caffe2的格式定义中,既有等价的部分,也有互相多出的部分。其中,ONNX作为输入,多出的部分信息可以舍去,Caffe2多出的部分,除了可以通过上下文推断出来的部分外,其余需要通过配置文件的方式进行填写。
[0022]目前,Caffe2提供了Caffe向Caffe2进行模型转换的工具。这是两个框架各自模型格式之间的转换,不涉及ONNX,因此是专有工具,缺乏通用性,不适用于第三方深度学习框架向Caffe2的转换。

技术实现思路

[0023]本专利技术的目的是提供一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法,其。
[0024]为达到上述目的,本专利技术采用的技术方案是:提供一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法,包括以下步骤:
[0025]S1、ONNX文件向Caffe2文件的映射,得到Caffe2格式的前向传播网络,具体包括:
[0026]计算图模型映射:Model到Plan的映射、Graph到Net的映射以及Node到Operator的映射;
[0027]数据类型映射:FLOAT到float的映射、INT到int的映射、STRING到string的映射、Graph到net的映射、FLOATs到floats的映射、INTs到ints的映射、STRINGs到strings的映射以及Graphs到nets的映射;
[0028]S2、根据S1中获得的前向传播网络的信息,自动生成求梯度算子,得到反向传播网络,具体包括:
[0029]S21、以Caffe2中的算子为键,以对应的梯度算子为值,构建一个静态字典;
[0030]S22、遍历步骤1中Caffe2中的算子,得到对应的梯度算子,通过静态字典,获得算子到对应梯度算子的映射,从而倒序生成反向传播网络;
[0031]S3、根据满足生成完整反向传播网络的需要,设计用户配置信息格式,将配置信息融入上步骤的模型定义文件中,具体包括:
[0032]S31、由用户指定输入数据、使用设备、模型存储、程序打印输出以及迭代控制等信息;
[0033]S32、将配置文件中的信息融合进模型定义文件。
[0034]由于上述技术方案的运用,本专利技术与现有技术相比具有下列优点:
[0035]本专利技术一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法,实现了ONNX格式的推理模型向Caffe2格式的训练模型的自动转换,在进行简单配置之后,可以自动产生包括正向传播神经网络、反向传播神经网络、运行控制块和辅助算子的模型文件,从而进行训练任务。
附图说明
[0036]附图1为计算图模型映射示意图;
[0037]附图2为基本数据类型映射示意图;
[0038]附图3为生成反向传播网络示意图;
[0039]附图4为处理流程示意图。
具体实施方式
[0040]实施例:本专利技术提供一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法,具体包括以下步骤:
[0041]S1、ONNX文件向Caffe2文件的映射,得到Caffe2格式的前向传播网络,具体包括:
[0042]计算图模型映射:Model到Plan的映射、Graph到Net的映射以及Node到Operator的映射;
[0043]数据类型映射:FLOAT到float的映射、INT到int的映射、STRING到string的映射、Graph到net的映射、FLOATs到floats的映射、INTs到ints的映射、STRINGs到strings的映射以及Graphs到nets的映射;
[0044]S2、根据S1中获得的前向传播网络的信息,自动生成求梯度算子,得到反向传播网络,具体包括:
[0045]S21、以Caffe2中的算子为键,以对应的梯度算子为值,构建一个静态字典;
[0046]S22、遍历步骤1中Caffe2中的算子,得到对应的梯度算子,通过静态字典,获得算子到对应梯度算子的映射,从而倒序生成反向传播网络;
[0047]S3、根据满足生成完整反向传播网络的需要,设计用户配置信息格式,将配置信息融入上步骤的模型定义文件中,具体包括:
[0048]S31、由用户指定输入数据、使用设备、模型存储、程序打印输出以及迭代控制等信息;
[0049]S32、将配置文件中的信息融合进模型定义文件。
[0050]对上述实施例的进一步解释如下:
[0051]本专利技术主要包括三个方面的内容:
[0052]1、ONNX文件向Caffe2文件的映射,得到前向传播网络:
[0053]这包括两个层面的映射:计算图模型映射和数据类型映射,映射完成后,得到Caffe2格式的前向传播网络;
[0054]2、根据前向传播网络的信息,自动生成求梯度算子:
[0055]首先,构建一个静态字典,以Caffe2中的算子为键,以对应的梯度算子为值;
[0056]然后,遍历步骤1中的算子,得到对应的梯度算子,倒序生成反向传播网络。
[0057]3、设计用户配置信息格式,将配本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ONNX面向Caffe2训练的深度学习模型自动转换方法,其特征在于,包括以下步骤:S1、ONNX文件向Caffe2文件的映射,得到Caffe2格式的前向传播网络,具体包括:计算图模型映射:Model到Plan的映射、Graph到Net的映射以及Node到Operator的映射;数据类型映射:FLOAT到float的映射、INT到int的映射、STRING到string的映射、Graph到net的映射、FLOATs到floats的映射、INTs到ints的映射、STRINGs到strings的映射以及Graphs到nets的映射;S...

【专利技术属性】
技术研发人员:彭超刘鑫刘沙陈德训黄则强高捷王宜鹏
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1