CN112328674A - 跨数据格式的模型转化加速方法及装置 - Google Patents
跨数据格式的模型转化加速方法及装置 Download PDFInfo
- Publication number
- CN112328674A CN112328674A CN202011291636.8A CN202011291636A CN112328674A CN 112328674 A CN112328674 A CN 112328674A CN 202011291636 A CN202011291636 A CN 202011291636A CN 112328674 A CN112328674 A CN 112328674A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- format
- neural network
- network model
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 48
- 230000001133 acceleration Effects 0.000 title claims description 36
- 238000003062 neural network model Methods 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000009466 transformation Effects 0.000 claims description 15
- 238000013519 translation Methods 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000012549 training Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种方法,包括以下步骤:将第一神经网络模型转换为通用媒介模型;遍历通用媒介模型计算图内所有计算节点,将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换;将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据。本发明还公开了一种装置,解决了现有技术中开源转化工具存在算子冗余和算子适配性差的问题,降低模型训练成本,提高模型推理速度。
Description
技术领域
本发明涉及深度学习模型数据格式转换领域,尤其涉及一种跨数据格式的模型转化加速方法及装置。
背景技术
目前主流的神经网络推理框架有Tensorflow/Pytorch/Onnx等,但是对于不同的硬件所支持的推理框架会有不同。重新训练一套适应新框架的模型成本极高,寻找了一套Pytorch到Tensorflow的模型转化解决方案,可以更快更好的让硬件迁移开发成本降低。
人工智能神经网络的训练成本很高,通常模型优化需要数月的时间才能完成,同时由于Facebook和Google的竞争关系,现有技术存在以下技术问题:第一:Pytorch的训练模型无法直接转化成Tensorflow模型;第二:由于其开发成本和生态链的关系,部分硬件厂商无法同时支持两个推理框架;第三:在实际的模型转化过程中,发现开源转化工具存在算子冗余和算子适配性差的问题。
因此设计了一个新的模型转化及加速方法,用于模型转化和加速是至关重要的。
发明内容
本发明主要目的在于提供一种跨数据格式的模型转化加速方法及装置,旨在解决现有技术中开源转化工具存在算子冗余和算子适配性差的问题。
为实现上述目的,本发明提供一种跨数据格式的模型转化加速方法,所述跨数据格式的模型转化加速方法包括以下步骤:
在一实施例中,将第一神经网络模型转换为通用媒介模型;
遍历通用媒介模型计算图内所有计算节点,将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换;
将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据。
在一实施例中,所述第一神经网络模型为Pytorch模型、所述通用媒介模型为Onnx模型、所述第二神经网络模型为Tensorflow模型。
在一实施例中,所述第二神经网络模型的数据格式为NHWC。
在一实施例中,所述将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换,包括:
遍历通用媒介模型计算图内所有计算节点;
对所述计算节点内的输入数据节点和输出数据节点进行初始化;
获取所述输入数据和输出数据的维度,根据所述维度对所述输入数据和输出数据进行格式转换后进行替换。
在一实施例中,所述将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据,包括:
对第二神经网络模型所使用数据的维度进行初始化;
通过所述第二神经网络模型的会话获取各维度上需填补的数据长度;
若输入数据是常量,在各维度上填补相同的数据长度以进行维度转换,并使用矩阵运算库获取转换后的维度。
在一实施例中,所述将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据,还包括:
在对张量和权重数据进行分组切片时,以所述第二神经网络模型的数据维度为标准执行。
在一实施例中,所述将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据,还包括:对涉及轴向参数的算子,将所述轴向参数修改为适用所述第二神经网络模型。
在一实施例中,所述涉及轴向参数的算子至少包括:Concat算子、softmax算子、reduce算子。
在一实施例中,所述方法,还包括:通过指定算子和参数配置以实现算子兼容。
为实现上述目的,本发明还提供一种装置,所述装置包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的跨数据格式的模型转化及加速程序,所述跨数据格式的模型转化及加速程序被所述处理器执行时实现如上所述的跨数据格式的模型转化加速方法的各个步骤。
本申请实施例中提供的跨数据格式的模型转化加速方法及装置的技术方案,至少具有如下技术效果:
1、由于采用将第一神经网络模型转换为通用媒介模型,通过遍历通用媒介模型计算图内所有计算节点,对所述计算节点内的输入数据节点和输出数据节点进行初始化,获取所述输入数据和输出数据的维度,根据所述维度对所述输入数据和输出数据进行格式转换后进行替换以将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换的技术方案,解决了现有技术中Pytorch的训练模型无法直接转化成Tensorflow模型的问题,降低了模型训练成本。
2、由于采用对第二神经网络模型所使用数据的维度进行初始化;通过所述第二神经网络模型的会话获取各维度上需填补的数据长度;若输入数据是常量,在各维度上填补相同的数据长度以进行维度转换,并使用矩阵运算库获取转换后的维度;将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据;在对张量和权重数据进行分组切片时,以所述第二神经网络模型的数据维度为标准执行;对涉及轴向参数的算子,将所述轴向参数修改为适用所述第二神经网络模型的技术方案,解决了现有技术在实际的模型转化过程中,发现开源转化工具存在算子冗余和算子适配性差的问题,提高模型转换速度。
附图说明
图1为本发明实施例涉及的装置结构示意图;
图2为本发明跨数据格式的模型转化加速方法的第一实施例流程示意图;
图3为本发明跨数据格式的模型转化加速方法的第一实施例步骤S120的一个细化流程示意图;
图4为本发明跨数据格式的模型转化加速方法的第一实施例步骤S130的一个细化流程示意图;
图5为本发明跨数据格式的模型转化加速方法的第二实施例流程示意图;
图6为本发明NHWC与NCHW数据格式结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请为了解决现有技术中开源转化工具存在算子冗余和算子适配性差的问题,采用了将第一神经网络模型转换为通用媒介模型;遍历通用媒介模型计算图内所有计算节点,将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换;将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据的技术方案;本发明还采用了一种装置,降低模型训练成本,提高模型推理速度。
为了更好地理解上述技术方案,下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
本领域技术人员可以理解,图1所示的跨数据格式的模型装置的硬件结构并不构成对该装置的限定,该装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
作为一种实现方式,可以如图1所示,图1为本发明实施例涉及的二值化输入模型***结构示意图。
处理器1100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1100可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1200,处理器1100读取存储器1200中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器1200可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本发明实施例描述的***和方法的存储器1200旨在包括但不限于这些和任意其它适合类型的存储器。
在本申请实施例中,处理器1100可以用于调用存储在存储器1200中的跨数据格式的模型转化加速程序,并执行以下操作:
将第一神经网络模型转换为通用媒介模型;
遍历通用媒介模型计算图内所有计算节点,将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换;
将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的跨数据格式的模型转化加速程序,并执行以下操作:
遍历通用媒介模型计算图内所有计算节点;
对所述计算节点内的输入数据节点和输出数据节点进行初始化;
获取所述输入数据和输出数据的维度,根据所述维度对所述输入数据和输出数据进行格式转换后进行替换。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的跨数据格式的模型转化加速程序,并执行以下操作:
对第二神经网络模型所使用数据的维度进行初始化;
通过所述第二神经网络模型的会话获取各维度上需填补的数据长度;
若输入数据是常量,在各维度上填补相同的数据长度以进行维度转换,并使用矩阵运算库获取转换后的维度。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的跨数据格式的模型转化加速程序,并执行以下操作:
在对张量和权重数据进行分组切片时,以所述第二神经网络模型的数据维度为标准执行。
在一实施例中,处理器1100可以用于调用存储在存储器1200中的跨数据格式的模型转化加速程序,并执行以下操作:
对涉及轴向参数的算子,将所述轴向参数修改为适用所述第二神经网络模型。
对于软件实现,可通过执行本发明实施例所述功能的模块(例如过程、函数等)来实现本发明实施例所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
基于上述结构,提出本发明的实施例。
参照图2,图2为本发明跨数据格式的模型转化加速方法的第一实施例流程示意图,所述方法包括以下步骤:
步骤S110,将第一神经网络模型转换为通用媒介模型。
在本实施例中,所述第一神经网络模型为Pytorch模型,所述通用媒介模型为Onnx模型,因为Pytorch模型的训练模型无法直接转化成Tensorflow模型,因此,采用通用媒介模型Onnx模型作为“中间桥梁”,先将Pytorch模型转换为Onnx模型,修改Onnx模型的数据格式以与Tensorflow模型的数据格式适配,再将Onnx模型转换为Tensorflow模型,从而实现Pytorch模型与Tensorflow模型的转换;本申请中,第一神经网络模型转换为通用媒介模型可以通过PyTorch自身工具实现转换,这里不再赘述,本申请主要对Onnx模型转换为Tensorflow模型部分展开描述。
步骤S120,遍历通用媒介模型计算图内所有计算节点,将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换。
在本实施例中,所述媒介格式默认为NCHW,所述第二神经网络模型格式为NHWC,所述第二神经网络模型为Tensorflow模型,因此,Onnx模型的数据格式是NCHW,Tensorflow模型的默认数据格式是NHWC,将Onnx模型转换为Tensorflow模型,主要通过修改Onnx模型的数据格式以与Tensorflow模型的数据格式适配,而修改Onnx模型的数据格式主要在于修改Onnx模型输入数据的数据格式与输出数据的数据格式,所述将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型之间进行转换,实现将输入数据的数据格式与输出数据的数据格式转换为NHWC,将Onnx模型的数据格式转换为NHWC,实现加快模型数据的转换速度。
在本实施例中,所述NCHW中,N代表数量,C代表通道,H代表高度,W代表宽度,NCHW是先取W方向数据,然后取H方向,再取C方向,最后取N方向,即NCHW表示[W H C N],例如,如图6所示,图6为本发明NHWC与NCHW数据格式结构示意图,第一个元素是000,第二个元素是沿着W方向的,即001,002,003,......;接着是沿着H方向,即004,005,006,......,直到019后,沿C方向,即020,021,022,......,直至319,再沿N方向;所述NHWC是先取C方向数据,然后取W方向,再取H方向,最后取N方向,即NHWC表示[C W H N],例如,如图6所示,第一个元素是000,第二个沿C方向,即020,040,060,......,直至300后,沿W方向,001,021,041,061,......,301..到了303后,沿H方向,即004,024,......,304,直至319,变成N方向,320,340......,其中,a和b表示四个维度,通过改变数据摆放顺序实现数据的转换。
参照图3,图3为本发明跨数据格式的模型转化加速方法的第一实施例步骤S120的一个细化流程示意图,包括以下步骤:
步骤S121,遍历通用媒介模型计算图内所有计算节点。
在本实施例中,Onnx模型中包括多个节点,将每一个网络的每一层或者每一个算子当作一个计算节点,再由这些节点去构建一个计算图,相当于是一个网络,最后将计算图和这个Onnx模型的其他信息结合在一起,生成一个Onnx模型;在本申请中,遍历通用媒介模型计算图内所有计算节点,是指遍历通用媒介模型计算图内的操作对象,这些操作对象就是计算节点。
步骤S122,对所述计算节点内的输入数据节点和输出数据节点进行初始化。
在本实施例中,Onnx模型中将来自外界的参数信息和输入数据信息统一放在inputs(输入)里,所述计算节点内包括多个节点,至少包括输入数据节点和输出数据节点,每个输入数据节点的输入数量根据情况会有不同,例如inputs(2-3),即每个输入数据节点的输入数量为2个或3个,可选的输入都会标注,以Conv为例,必有输入X和权重W,偏置B作为可选的输入被标注;与输入类似,每个输出数据节点的输出数量根据情况也会不同,但大多数只有一个输出,对计算节点内的输入数据节点和输出数据节点进行初始化,为每个输入数据节点的输入数量与输出数据节点的输出数量进行定义。
步骤S123,获取所述输入数据和输出数据的维度,根据所述维度对所述输入数据和输出数据进行格式转换后进行替换。
在本实施例中,通过Onnx模型的节点获取输入数据和输出数据的维度,根据所述维度对所述输入数据和输出数据进行格式转换以实现替换。
由于采用将第一神经网络模型转换为通用媒介模型,通过遍历通用媒介模型计算图内所有计算节点,对所述计算节点内的输入数据节点和输出数据节点进行初始化,获取所述输入数据和输出数据的维度,根据所述维度对所述输入数据和输出数据进行格式转换后进行替换以将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换的技术方案,解决了现有技术中Pytorch的训练模型无法直接转化成Tensorflow模型的问题,降低了模型训练成本。
步骤S130,将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据。
在本实施例中,步骤S120通过将Onnx模型的数据格式转换为Tensorflow模型的数据格式,先通过使用转换算子(Transpose)以桥接NHWC和NCHW计算图,即通过在输入节点与输出节点处分别使用Transpose算子进行桥接,再将输入节点与输出节点的数据格式进行转换,这个Transpose算子是冗余的,引入是为了实现将Onnx模型的数据格式转换为Tensorflow模型的数据格式,为了消除这个冗余的Transpose算子,需要将通用媒介模型的Transpose算子进行转换,以适用于处理所述第二神经网络模型格式的数据,实现减少数据转化算子。
参照图4,图4为本发明跨数据格式的模型转化加速方法的第一实施例步骤S130的一个细化流程示意图,包括以下步骤:
步骤S131,对第二神经网络模型所使用数据的维度进行初始化。
在本实施例中,计算图执行的过程时,可以通过会话获取部分参数,通过会话(session)对Tensorflow模型所使用数据的维度进行初始化,在所述会话中包括运行计算图的程序,在运行计算图时,可以初始化节点、定义各维度上需填补的数据长度等;例如初始化输入节点与输出节点。
步骤S132,通过所述第二神经网络模型的会话获取各维度上需填补的数据长度。
在本实施例中,在Tensorflow模型中,通过Tensorflow模型的会话以及步骤S131中定义的节点,获取对应节点各维度上需填补的数据长度后进行相应的填补;例如,获取输入节点的输入数据与输出节点的输出数据的维度,获取各维度上需填补的数据长度。
步骤S133,若输入数据是常量,在各维度上填补相同的数据长度以进行维度转换,并使用矩阵运算库获取转换后的维度。
在本实施例中,若输入数据是一个常量,在输入节点的输入数据的维度上填补相同的数据长度以实现维度转换;例如,假设各维度各方向上需要填补的长度为((1,2),(2,2)),其表示为在第一维度水平方向需填补的数据长度为1,垂直方向需填补的数据长度为2,在第二维度水平方向需填补的长度为2,垂直方向需填补的长度为2,若直接输入一个常量,则表示各个维度和各个方向所填补的长度是一样的;在本申请中,若输入数据是常量数据下,通过Tensorflow模型的会话获取数值后,使用矩阵运算库直接获取计算结果,以减少原先数据处理增加的算子节点。
步骤S134,在对张量和权重数据进行分组切片时,以所述第二神经网络模型的数据维度为标准执行。
在本实施例中,所述分组用于将张量和权重数据根据同一维度以组的形式进行划分,如果Onnx模型的C通道在第一维度,Tensorflow模型的C通道在第三维度,在分组切片的时候,张量和权重数据都需要修改到同一维度即第三维度进行;所述分组切片是分组卷积的过程,分组卷积可实现减少卷积核的总参数量,加快模型转换速度;例如,常规的卷积方式是如果输入特征图像尺寸为C*H*W,卷积核有N个,输出特征图像与卷积核的数量相同也是N,每个卷积核的尺寸为C*K*K,N个卷积核的总参数量为N*C*K*K;而本申请采用分组卷积,通过对输入特征图像进行分组,然后每个卷积核也相应地分成组,在对应的组内做卷积,假设输入特征图像的尺寸为C*H*W,输出特征图像的数量为N个,如果设定要分成G个组,则每组的输入特征图像数量为C/G,每组的输出特征图像数量为N/G,每个卷积核的尺寸为C/G*K*K,卷积核的总数仍为N个,每组的卷积核数量为N/G,卷积核只与其同组的输入图像进行卷积,卷积核的总参数量为N*C/G*K*K,可见,总参数量减少为原来的1/G。
步骤S135,对涉及轴向参数的算子,将所述轴向参数修改为适用所述第二神经网络模型。
在本实施例中,所述涉及轴向参数的算子至少包括:Concat算子、softmax算子、reduce算子;所述Concat算子的主要轴向参数为axis,可以以二维矩阵为例,axis等于0时按行拼接,而axis等于1时按列拼接,axis是指根据axis指定的维度进行连接,例如矩阵m1的维度为(2,3),那么axis等于0就代表了第一个维度“2”,因此,将m1和m2按照第一个维度进行连接,得到的新的矩阵就是将第一维度进行相加,其余维度不变,即维度变成了(4,3)。同理,axis等于1时就是将矩阵的第二维度进行合并,其余维度不变,即维度变成了(2,6);例如本申请中输入数据的数据格式是NCHW,需要在C通道进行拼接,其通道的拼接方式与二维矩阵维度的拼接方式相似,这里不再赘述;假设最初axis轴向参数在Onnx模型定义的数值为1,在获取Tensorflow模型中C通道维度为3后,需要在Onnx模型中axis轴向参数替换成3,实现Onnx模型维度由1到3的转化;所述softmax算子在Onnx模型中,softmax算子主要将多个输入数据映射到(0,1)区间,反映的是各原始输入数据的概率大小,输入数据的概率越大,最后输出的概率越高,其作用通常作为分类Onnx模型网络的最后一层,输出每类的概率;所述reduce算子可以对维度参数进行组合并按序列排列,在排列后的数据上执行操作,产生更加整洁的维度求和方式,reduce算子可以在序列上执行所有种类的操作,并未限制其只能作用于整形或者只能做加法操作。
在本实施例中,以C通道为例,Onnx模型的C通道在第一维度,Tensorflow模型的C通道在第三维度,需要将Onnx模型的C通道维度修改为适用Tensorflow模型的维度,可以在Onnx模型中使用以上所述的轴向参数算子实现通道维度之间的拼接与转换,将Onnx模型的轴向参数修改为适用所述第二神经网络模型即Tensorflow模型。其他通道维度修改与C通道相似,这里不再赘述。
在本实施例中,Onnx模型中的权重排布是[COUT,CIN,KH,KW],而Tensorflow模型NHWC的权重排布是[KH,KW,CIN,COUT],通过Tensorflow模型的会话获取权重参数进行数据格式转换,执行转置操作,将[COUT,CIN,KH,KW]的数据转化成[KH,KW,CIN,COUT]的数据,并将权重参数数据填入tf.conv中,这个过程会生成一个tf.transpose的算子。
由于采用对第二神经网络模型所使用数据的维度进行初始化;通过所述第二神经网络模型的会话获取各维度上需填补的数据长度;若输入数据是常量,在各维度上填补相同的数据长度以进行维度转换,并使用矩阵运算库获取转换后的维度;将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据;在对张量和权重数据进行分组切片时,以所述第二神经网络模型的数据维度为标准执行;对涉及轴向参数的算子,将所述轴向参数修改为适用所述第二神经网络模型的技术方案,解决了现有技术在实际的模型转化过程中,发现开源转化工具存在算子冗余和算子适配性差的问题,提高模型转换速度。
参照图5,图5为本发明跨数据格式的模型转化加速方法的第二实施例流程示意图,包括以下步骤:
步骤S210,将第一神经网络模型转换为通用媒介模型。
步骤S220,遍历通用媒介模型计算图内所有计算节点,将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换。
步骤S230,将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据。
步骤S240,通过指定算子和参数配置以实现算子兼容。
在本实施例中,硬件的编译器对框架版本和算子有限制,本申请使用的编译器支持tf.addv2算子,但是有些编译器却支持tf.addv2算子,如果在数据间使用“+”操作,会复写成tf.addv2,因此,需要在所有算子转化过程中,使用tf.add替换“+”操作,通过强制指定算子,向下兼容,同时提供可选配置参数,支持向上兼容,通过此方法实现算子兼容,从而保证硬件兼容。
与第一实施例相比,第二实施例包含步骤S240,其他步骤与第一实施例相同,不再赘述。
由于采用在数据间使用tf.add替换“+”操作,通过强制指定算子,向下兼容,同时提供可选配置参数,支持向上兼容的技术方案,解决了现有技术中硬件不兼容的问题,通过实现算子兼容,从而保证硬件兼容。
基于同一发明构思,本申请实施例还提供了一种跨数据格式的模型装置,所述装置包括一个或者多个处理器、存储器以及存储在所述存储器并可在所述处理器上运行的跨数据格式的模型转化及加速程序,所述处理器执行所述跨数据格式的模型转化及加速程序时实现如上所述的跨数据格式的模型转化及加速程序方法的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
由于本申请实施例提供的跨数据格式的模型装置,为实施本申请实施例的方法所采用的跨数据格式的模型装置,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该跨数据格式的模型装置的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的跨数据格式的模型装置都属于本申请所欲保护的范围。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种跨数据格式的模型转化加速方法,其特征在于,包括:
将第一神经网络模型转换为通用媒介模型;
遍历通用媒介模型计算图内所有计算节点,将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换;
将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据。
2.如权利要求1所述的跨数据格式的模型转化加速方法,其特征在于,
所述第一神经网络模型为Pytorch模型、所述通用媒介模型为Onnx模型、所述第二神经网络模型为Tensorflow模型。
3.如权利要求1所述的跨数据格式的模型转化加速方法,其特征在于,所述第二神经网络模型的数据格式为NHWC。
4.如权利要求3所述的跨数据格式的模型转化加速方法,其特征在于,所述将所述计算节点内的输入数据和输出数据的数据格式在媒介格式和第二神经网络模型格式之间进行转换,包括:
遍历通用媒介模型计算图内所有计算节点;
对所述计算节点内的输入数据节点和输出数据节点进行初始化;
获取所述输入数据和输出数据的维度,根据所述维度对所述输入数据和输出数据进行格式转换后进行替换。
5.如权利要求1所述的跨数据格式的模型转化加速方法,其特征在于,所述将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据,包括:
对第二神经网络模型所使用数据的维度进行初始化;
通过所述第二神经网络模型的会话获取各维度上需填补的数据长度;
若输入数据是常量,在各维度上填补相同的数据长度以进行维度转换,并使用矩阵运算库获取转换后的维度。
6.如权利要求5所述的跨数据格式的模型转化加速方法,其特征在于,所述将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据,还包括:
在对张量和权重数据进行分组切片时,以所述第二神经网络模型的数据维度为标准执行。
7.如权利要求6所述的跨数据格式的模型转化加速方法,其特征在于,所述将通用媒介模型的算子进行转换,以适用于处理所述第二神经网络模型格式的数据,还包括:
对涉及轴向参数的算子,将所述轴向参数修改为适用所述第二神经网络模型。
8.如权利要求7所述的跨数据格式的模型转化加速方法,其特征在于,所述涉及轴向参数的算子至少包括:Concat算子、softmax算子、reduce算子。
9.如权利要求1所述的跨数据格式的模型转化加速方法,其特征在于,所述方法,还包括:通过指定算子和参数配置以实现算子兼容。
10.一种装置,其特征在于,所述装置包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的跨数据格式的模型转化及加速程序,所述跨数据格式的模型转化及加速程序被所述处理器执行时实现如权利要求1-9任一项所述的跨数据格式的模型转化加速方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011291636.8A CN112328674B (zh) | 2020-11-17 | 2020-11-17 | 跨数据格式的模型转化加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011291636.8A CN112328674B (zh) | 2020-11-17 | 2020-11-17 | 跨数据格式的模型转化加速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112328674A true CN112328674A (zh) | 2021-02-05 |
CN112328674B CN112328674B (zh) | 2024-05-14 |
Family
ID=74322541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011291636.8A Active CN112328674B (zh) | 2020-11-17 | 2020-11-17 | 跨数据格式的模型转化加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328674B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065665A (zh) * | 2021-03-04 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种模型算子对比方法、***及存储介质 |
CN113269303A (zh) * | 2021-05-18 | 2021-08-17 | 三星(中国)半导体有限公司 | 用于深度学习推理框架的数据处理方法和数据处理装置 |
CN113641337A (zh) * | 2021-07-13 | 2021-11-12 | 广州三七互娱科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN114896950A (zh) * | 2022-07-11 | 2022-08-12 | 浙江大华技术股份有限公司 | 模型转换方法以及模型转换设备、存储介质 |
CN115527525A (zh) * | 2022-11-23 | 2022-12-27 | 广州小鹏汽车科技有限公司 | 语音识别模型生成方法、语音交互方法、车辆和存储介质 |
CN115660049A (zh) * | 2022-11-02 | 2023-01-31 | 北京百度网讯科技有限公司 | 模型处理方法、装置、电子设备以及存储介质 |
KR20230104037A (ko) * | 2021-12-30 | 2023-07-07 | 주식회사 에임퓨처 | 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치 |
WO2024007787A1 (zh) * | 2022-07-05 | 2024-01-11 | 北京火山引擎科技有限公司 | 模型训练***、模型训练方法及装置 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597965A (zh) * | 2018-11-19 | 2019-04-09 | 深圳力维智联技术有限公司 | 基于深度神经网络的数据处理方法、***、终端及介质 |
CN109685745A (zh) * | 2019-01-02 | 2019-04-26 | 西北工业大学 | 一种基于深度学习的相位显微成像方法 |
US20190340499A1 (en) * | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Quantization for dnn accelerators |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
US20200042856A1 (en) * | 2018-07-31 | 2020-02-06 | International Business Machines Corporation | Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit |
CN111143551A (zh) * | 2019-12-04 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 文本预处理方法、分类方法、装置及设备 |
CN111291882A (zh) * | 2018-12-06 | 2020-06-16 | 北京百度网讯科技有限公司 | 一种模型转换的方法、装置、设备和计算机存储介质 |
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
CN111383044A (zh) * | 2018-12-28 | 2020-07-07 | 卡巴斯基实验室股份制公司 | 确定兼容模块的***和方法 |
CN111507422A (zh) * | 2020-04-24 | 2020-08-07 | 西安工程大学 | 基于cqfpa-wnn的变压器故障诊断方法 |
CN111723662A (zh) * | 2020-05-18 | 2020-09-29 | 南京师范大学 | 一种基于卷积神经网络的人体姿态识别方法 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN111753973A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | 一种神经网络芯片的优化方法、***、设备和存储介质 |
CN111797969A (zh) * | 2020-06-23 | 2020-10-20 | 浙江大华技术股份有限公司 | 神经网络模型的转换方法及相关装置 |
CN111797978A (zh) * | 2020-07-08 | 2020-10-20 | 北京天融信网络安全技术有限公司 | 一种内部威胁检测方法、装置、电子设备及存储介质 |
CN111814906A (zh) * | 2020-07-23 | 2020-10-23 | 上海东普信息科技有限公司 | 快递面单识别模型移植方法、装置、设备及存储介质 |
US20200356570A1 (en) * | 2019-05-06 | 2020-11-12 | Carecloud Corporation | Interactive user interface having transform operators for schema transformation |
-
2020
- 2020-11-17 CN CN202011291636.8A patent/CN112328674B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190340499A1 (en) * | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Quantization for dnn accelerators |
US20200042856A1 (en) * | 2018-07-31 | 2020-02-06 | International Business Machines Corporation | Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit |
CN109597965A (zh) * | 2018-11-19 | 2019-04-09 | 深圳力维智联技术有限公司 | 基于深度神经网络的数据处理方法、***、终端及介质 |
CN111291882A (zh) * | 2018-12-06 | 2020-06-16 | 北京百度网讯科技有限公司 | 一种模型转换的方法、装置、设备和计算机存储介质 |
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
CN111383044A (zh) * | 2018-12-28 | 2020-07-07 | 卡巴斯基实验室股份制公司 | 确定兼容模块的***和方法 |
CN109685745A (zh) * | 2019-01-02 | 2019-04-26 | 西北工业大学 | 一种基于深度学习的相位显微成像方法 |
US20200356570A1 (en) * | 2019-05-06 | 2020-11-12 | Carecloud Corporation | Interactive user interface having transform operators for schema transformation |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN111143551A (zh) * | 2019-12-04 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 文本预处理方法、分类方法、装置及设备 |
CN111507422A (zh) * | 2020-04-24 | 2020-08-07 | 西安工程大学 | 基于cqfpa-wnn的变压器故障诊断方法 |
CN111723662A (zh) * | 2020-05-18 | 2020-09-29 | 南京师范大学 | 一种基于卷积神经网络的人体姿态识别方法 |
CN111753973A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | 一种神经网络芯片的优化方法、***、设备和存储介质 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN111797969A (zh) * | 2020-06-23 | 2020-10-20 | 浙江大华技术股份有限公司 | 神经网络模型的转换方法及相关装置 |
CN111797978A (zh) * | 2020-07-08 | 2020-10-20 | 北京天融信网络安全技术有限公司 | 一种内部威胁检测方法、装置、电子设备及存储介质 |
CN111814906A (zh) * | 2020-07-23 | 2020-10-23 | 上海东普信息科技有限公司 | 快递面单识别模型移植方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
W_TORTOISE: "PyTorch到Tensorflow的模型转换", pages 1 - 18, Retrieved from the Internet <URL:http://blog.csdn.net/learning_tortosie/article/details/109389653> * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065665A (zh) * | 2021-03-04 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种模型算子对比方法、***及存储介质 |
CN113269303A (zh) * | 2021-05-18 | 2021-08-17 | 三星(中国)半导体有限公司 | 用于深度学习推理框架的数据处理方法和数据处理装置 |
CN113641337A (zh) * | 2021-07-13 | 2021-11-12 | 广州三七互娱科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
KR20230104037A (ko) * | 2021-12-30 | 2023-07-07 | 주식회사 에임퓨처 | 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치 |
KR102656567B1 (ko) * | 2021-12-30 | 2024-04-12 | 주식회사 에임퓨처 | 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치 |
WO2024007787A1 (zh) * | 2022-07-05 | 2024-01-11 | 北京火山引擎科技有限公司 | 模型训练***、模型训练方法及装置 |
CN114896950A (zh) * | 2022-07-11 | 2022-08-12 | 浙江大华技术股份有限公司 | 模型转换方法以及模型转换设备、存储介质 |
CN114896950B (zh) * | 2022-07-11 | 2022-10-28 | 浙江大华技术股份有限公司 | 模型转换方法以及模型转换设备、存储介质 |
CN115660049A (zh) * | 2022-11-02 | 2023-01-31 | 北京百度网讯科技有限公司 | 模型处理方法、装置、电子设备以及存储介质 |
CN115660049B (zh) * | 2022-11-02 | 2023-07-25 | 北京百度网讯科技有限公司 | 模型处理方法、装置、电子设备以及存储介质 |
CN115527525A (zh) * | 2022-11-23 | 2022-12-27 | 广州小鹏汽车科技有限公司 | 语音识别模型生成方法、语音交互方法、车辆和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112328674B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112328674A (zh) | 跨数据格式的模型转化加速方法及装置 | |
EP3685319B1 (en) | Direct access, hardware acceleration in neural network | |
US20210264220A1 (en) | Method and system for updating embedding tables for machine learning models | |
US20210224640A1 (en) | Neural network circuit device, neural network processingmethod, and neural network execution program | |
US11500811B2 (en) | Apparatuses and methods for map reduce | |
KR20200088475A (ko) | 신경망의 기능적 부분망의 동시 훈련 | |
US11586601B2 (en) | Apparatus and method for representation of a sparse matrix in a neural network | |
US20200151573A1 (en) | Dynamic precision scaling at epoch granularity in neural networks | |
KR102038390B1 (ko) | 고효율 병렬 처리를 위한 인공 신경망 모듈 및 이의 스케쥴링 방법 | |
US20210089873A1 (en) | Apparatus and system for execution of neural network | |
KR102470027B1 (ko) | 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체 | |
US11921814B2 (en) | Method and device for matrix multiplication optimization using vector registers | |
CN113902112A (zh) | 硬件计算模拟方法、***及计算机可读存储介质 | |
US11481604B2 (en) | Apparatus and method for neural network processing | |
US11928598B2 (en) | Method and system for distributed neural network training | |
JP2022538759A (ja) | 構成可能なニューラルネットワークカーネル | |
WO2023197460A1 (zh) | 一种图像识别方法、装置及电子设备和存储介质 | |
US20140250034A1 (en) | Method and apparatus for improving resilience in customized program learning network computational environments | |
JP2020080048A (ja) | 並列処理装置およびプログラム | |
US20210357730A1 (en) | Multi-size convolutional layer background | |
JP7107797B2 (ja) | 情報処理方法及び情報処理システム | |
CN113077042A (zh) | 卷积神经网络的数据重用与高效处理方法 | |
US20190244076A1 (en) | Neural Network with Embedded Filter Layer | |
US20230237368A1 (en) | Binary machine learning network with operations quantized to one bit | |
CN116523052B (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 |