一种深度学习模型推理期加速方法、装置及系统与流程

文档序号:16313561发布日期:2018-12-19 05:22阅读:397来源:国知局
一种深度学习模型推理期加速方法、装置及系统与流程

本发明涉及深度神经网络学习技术领域,特别涉及一种深度学习模型推理期加速方法、装置及系统。

背景技术

近年来,深度学习技术的突破极大地推动了计算机视觉领域的发展,传统问题的精度不断提高,渐近极限,新的应用领域也在不断拓展。

图形处理器(graphicsprocessingunit,简称gpu)是当前云端与嵌入式端深度学习计算的主流计算设备。“英伟达张量运行时”(nvidiatensorrt)是一种高性能神经网络推理引擎,负责转换、优化训练好的模型,实现在nvidiagpu上加速执行,用于在生产环境中部署深度学习应用程序。在处理“批归一化”计算时,tensorrt用尺度变换(scale)来实现。

在最新的神经网络框架中(如pytorch),更进一步的优化是,将卷积、批归一化、非线性激活这些在训练期被表达为单独计算单元的计算核(kernel)合而为一,从而将访存限制于片上,以减少推理期的片外访存开销。

英特尔(intel)的视觉处理器(movidiusvisionprocessingunit,简称vpu)是一种低功耗视觉处理芯片,被用来在边缘计算领域加速深度学习计算。由该芯片厂商提供的神经网络推理引擎“movidius张量计算库”(mvtensor)采用了与tensorrt相同的实现方案,即尺度变换(scale)。

然而,发明人发现,现有技术中至少存在以下问题:

现有技术在深度学习模型推理期保留有额外计算开销,从而增加了计算时间、响应延迟和设备功耗。



技术实现要素:

本发明的目的在于提供一种深度学习模型推理期加速方法、装置及系统,使得深度学习模型的应用过程中可以减少推理期计算时间和响应延迟,降低设备功耗。

为解决上述技术问题,一方面,本发明的实施方式提供了一种深度学习模型推理期加速方法,包括:

获取优化深度学习模型及待处理数据;所述优化深度学习模型带有优化合并参数;

通过带有所述优化合并参数的优化深度学习模型对所述待处理数据进行数据处理;

将所述数据处理后的数据输出。

其中,该方法还包括:

获取待优化的卷积神经网络模型及其训练数据;其中,所述待优化的卷积神经网络模型带有“批归一化”结构;

通过所述训练数据,对所述待优化的卷积神经网络模型进行优化,获取第一模型;

获取所述第一模型中对应的卷积与“批归一化”参数以及优化合并方式;

根据所述优化合并方式,合并所述第一模型中对应的卷积与“批归一化”参数,并获取所述优化深度学习模型。

其中,所述优化合并参数为优化卷积参数;所述优化卷积参数包括:优化卷积权重参数和优化卷积偏置参数

其中,所述优化合并方式为:

其中,为第一模型的卷积权重参数,k'对应输出的第k'个通道,k对应输入的第k个通道;bk′为第一模型的卷积偏置参数,k'对应输出的第k'个通道;为第一模型的线性变换尺度参数,k'对应输出的第k'个通道;为第一模型的线性变换移位参数,k'对应输出的第k'个通道。

另一方面,本发明的实施方式提供了一种深度学习模型推理期加速装置,包括:

信息获取单元,用于获取优化深度学习模型及待处理数据;所述优化深度学习模型带有优化合并参数;

数据处理单元,用于通过带有所述优化合并参数的优化深度学习模型对所述待处理数据进行数据处理;

数据传输单元,用于将所述数据处理后的数据输出。

需要说明的是,以上所述装置还包括:

训练信息获取单元,用于获取待优化的卷积神经网络模型及其训练数据;其中,所述待优化的卷积神经网络模型带有“批归一化”结构;

优化单元,用于通过所述训练数据,对所述待优化的卷积神经网络模型进行优化,获取第一模型;

参数信息获取单元,用于获取所述第一模型中对应的卷积与“批归一化”参数以及优化合并方式;

参数合并单元,用于根据所述优化合并方式,合并所述第一模型中对应的卷积与“批归一化”参数,并获取所述优化深度学习模型。

其中,所述优化合并参数为优化卷积参数;所述优化卷积参数包括:优化卷积权重参数和优化卷积偏置参数

所述优化合并方式为:

其中,为第一模型的卷积权重参数,k'对应输出的第k'个通道,k对应输入的第k个通道;bk′为第一模型的卷积偏置参数,k'对应输出的第k'个通道;为第一模型的线性变换尺度参数,k'对应输出的第k'个通道;为第一模型的线性变换移位参数,k'对应输出的第k'个通道。

再一方面,本发明的实施方式提供了一种深度学习模型推理期加速系统,包括:如上所述中任意一项所述深度学习模型推理期加速装置。

本发明实施方式相对于现有技术而言,通过带有所述优化合并参数的优化深度学习模型对所述待处理数据进行数据处理,使得深度学习模型的应用过程中推理期计算时间和响应延迟缩短,降低设备功耗;具体的讲,就是在深度学习模型优化过程中,将所述第一模型中对应的卷积与“批归一化”参数按照所述优化合并方式合并,从而进一步对所述第一模型进行优化,使得所述第一模型优化后的所述优化深度学习模型的额外开销减少,并且在后续的所述优化深度学习模型推理期应用过程中加速数据处理速度,减少推理期计算时间和相应的延迟,并降低了设备功耗。

附图说明

图1是本发明实施例提供的一种深度学习模型推理期加速方法流程示意图;

图2是本发明实施例提供的一种深度学习模型推理期加速方法的优化深度学习模型的获取方法流程示意图;

图3是本发明实施例提供的一种深度学习模型推理期加速装置结构示意图;

图4是本发明实施例提供的一种深度学习模型推理期加速系统结构示意图;

图5是本发明实施例提供的一种电子设备一个实施例的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

以下首先对本发明的技术方案实现过程中需要涉及的一些技术概念进行简要说明。有关本发明技术方案中所提到的“批归一化”(batchnorm)因其对训练神经网络起到稳定、加速和规整作用,在深度神经网络模型配置中属于最基本的标配单元;与此同时,“批归一化”单元也给深度神经网络模型引入了额外的计算开销。现有技术方案都保留了“批归一化”作为单独的计算单元。无论该计算发生在片下还是片上,都无法避免额外的计算开销。额外计算带来的影响通常有两方面,一增加了推理期计算时间和响应延迟,二增加了设备功耗。快速响应和低延迟是所有应用场景的目标,尽管不同场景对这一点的敏感程度不同;例如:嵌入式计算或者边缘计算领域往往对功耗敏感,要求在尽可能低的功耗下完成计算任务;而云端计算没有严格的功耗上限,但因其部署的计算节点数量庞大,每一点对计算量的节省在规模效应下,都意味着节省下可观的能源消费。

而本发明技术方案通过优化卷积神经网络模型的计算流程,去掉“批归一化”计算单元,保留优化后的卷积计算单元。

在推理期卷积的计算流程为:

其中:xk为输入的第k个通道,k取值1...m;

yk′为输出的第k'个通道,k'取值1...n;

为卷积权重参数,k'对应输出的第k'个通道,k对应输入的第k个通道;

bk′为卷积偏置参数,k'对应输出的第k'个通道;

在推理期“批归一化”的计算流程为:

①归一化:

②线性变换:

由于均值和方差统计量固定不变,两步计算可以合并为一步线性变换:其中

其中,e[yk′]为所有批次训练数据上的均值统计量;

var[yk′]为所有批次训练数据上的方差统计量;

γk′为线性变换尺度参数,k'对应输出的第k'个通道

βk′为线性变换移位参数,k'对应输出的第k'个通道

ε为保证计算数值稳定性增加的无穷小量,通常取值10-5

本发明的第一实施方式涉及一种深度学习模型推理期加速方法,具体方法流程如图1所示,该方法包括:

101:获取优化深度学习模型及待处理数据;所述优化深度学习模型带有优化合并参数;其中,所述优化深度学习模型中优化合并参数为融合了“批归一化”参数的优化卷积参数;在所述优化深度学习模型中,所述优化卷积参数对应的卷积计算单元在数据处理过程中进行卷积运算,去掉了“批归一化”计算单元。

102:通过带有所述优化合并参数的优化深度学习模型对所述待处理数据进行数据处理;

103:将所述数据处理后的数据输出。

本发明的第二实施方式涉及一种深度学习模型推理期加速方法的优化深度学习模型的获取方法,具体流程如图2所示,具体实现流程如下:

201:获取待优化的卷积神经网络模型及其训练数据;其中,所述待优化的卷积神经网络模型带有“批归一化”结构;

202:通过所述训练数据,对所述待优化的卷积神经网络模型进行优化,获取第一模型;

203:获取所述第一模型中对应的卷积与“批归一化”参数以及优化合并方式;

204:根据所述优化合并方式,合并所述第一模型中对应的卷积与“批归一化”参数,并获取所述优化深度学习模型。

其中,所述优化合并参数为优化卷积参数;所述优化卷积参数包括:优化卷积权重参数和优化卷积偏置参数

其中,所述优化合并方式为:

其中,为第一模型的卷积权重参数,k'对应输出的第k'个通道,k对应输入的第k个通道;bk′为第一模型的卷积偏置参数,k'对应输出的第k'个通道;为第一模型的线性变换尺度参数,k'对应输出的第k'个通道;为第一模型的线性变换移位参数,k'对应输出的第k'个通道。

以下将结合图1和图2的方法实现流程以及上述技术概念的定义对本发明技术方案的深度学习模型推理期加速方法实现流程进行详细说明,具体步骤如下:

s1:获取待优化的卷积神经网络模型及其训练数据;其中,所述待优化的卷积神经网络模型带有“批归一化”结构;

s2:通过所述训练数据,对所述待优化的卷积神经网络模型进行优化,获取第一模型(模型1);

s3:获取所述第一模型(模型1)中对应的卷积与“批归一化”参数以及优化合并方式;

s4:根据所述优化合并方式,合并所述第一模型中对应的卷积与“批归一化”参数,并获取所述优化深度学习模型(模型2);

其中,所述优化合并参数为优化卷积参数;所述优化卷积参数包括:优化卷积权重参数和优化卷积偏置参数

其中,所述优化合并方式为:

其中,为第一模型的卷积权重参数,k'对应输出的第k'个通道,k对应输入的第k个通道;bk′为第一模型的卷积偏置参数,k'对应输出的第k'个通道;为第一模型的线性变换尺度参数,k'对应输出的第k'个通道;为第一模型的线性变换移位参数,k'对应输出的第k'个通道。

s5:获取优化深度学习模型(模型2)及待处理数据;所述优化深度学习模型带有优化合并参数;其中,所述优化深度学习模型中优化合并参数为融合了“批归一化”参数的优化卷积参数;

s6:通过带有所述优化合并参数的优化深度学习模型(模型2)对所述待处理数据进行数据处理;其中,带有所述优化合并参数的优化深度学习模型(模型2)执行卷积计算:

s7:将所述数据处理后的数据输出。

下面再通过两个具体应用实例,具体说明本发明技术方案实现方法的实现过程。

实例一:将所述深度学习模型推理期加速方法应用到人脸智能抓拍相机中;所述人脸智能抓拍相机通过内嵌的深度学习算法实现人脸检测、人脸关键点定位、人脸属性识别和人脸身份识别。其中人脸检测模型、关键点定位模型、属性和身份识别模型都采用了带有“批归一化”结构的卷积神经网络。以下以人脸检测模型为例说明具体实现深度学习模型推理期加速方法的过程,本发明在其他模型上的实现方式可以类比得知。

首先,准备人脸检测模型的训练数据;并针对检测任务设计并搭建带有“批归一化”结构的卷积神经网络,以及测试数据集;

s1:使用深度学习训练框架训练所述搭建好的带有“批归一化”结构的卷积神经网络,得到第一模型。

s2:通过所述测试数据集得到第一模型在pc机上的计算结果,所述计算结果的数据采用单精度浮点表示。

s3:获取所述第一模型中对应的卷积与“批归一化”参数以及优化合并方式,按照所述优化合并方式合并相邻的卷积和“批归一化”参数;

s4:获取所述优化深度学习模型;并使用所述测试数据集得到所述优化深度学习模型在pc机上的计算结果,所述计算结果的数据采用单精度浮点表示。

s5:在所述人脸智能抓拍相机使用的深度学习加速芯片上,使用所述测试数据集,执行所述优化深度学习模型得到相应的计算结果,数据采用单精度浮点、半精度浮点或者不同比特位宽的定点表示。所述深度学习加速芯片可以为嵌入式gpu(如nvidiategra,armmali等),intelmovidiusvpu,fpga,以及用来专门加速深度学习计算任务的asics,且不限于此处所列。

s6:对比pc机上第一模型的计算结果和优化深度学习模型的计算结果,验证两者完全一致。

s7:对比优化深度学习模型在pc机上的计算结果和优化深度学习模型在人脸智能抓拍相机芯片的计算结果,验证两者在数据表示精度误差范围内一致。

s8:将验证后的优化深度学习模型部署到所述人脸智能抓拍相机芯片中。

实例二:将深度学习模型推理期加速方法的应用到云端分析服务器中。所述云端分析服务器可以使用gpu,fpga或者其他计算加速器执行深度学习算法,用来进行大规模人脸身份识别比对,行人身份再识别(reid),智能交通场景下的目标属性识别、视频结构化等功能。区别于智能相机,在云端服务器上部署的卷积神经网络通常具有更庞大的参数以及计算规模,在训练大规模卷积神经网络时,“批归一化”必不可少。以大规模人脸身份识别模型为例,说明本发明的实现过程,本发明在其他算法模型上的应用方式,可以类比得知。

首先,准备人脸身份识别模型的训练数据;并针对身份识别任务设计并搭建带有“批归一化”结构的卷积神经网络,以及测试数据集;

s1:使用深度学习训练框架训练搭建好的卷积神经网络,得到第一模型;

s2:通过所述测试数据集,在gpu或者其他计算加速器上执行所述第一模型,得到计算结果,数据采用单精度浮点、半精度浮点或不同比特位宽定点表示;

s3:获取所述第一模型中的参数,中对应的卷积与“批归一化”参数以及优化合并方式,按照所述优化合并方式合并相邻的卷积和“批归一化”参数;

s4:获取所述优化深度学习模型;并使用所述测试数据集得到所述优化深度学习模型在gpu或者其他计算加速器上的计算结果,所述计算结果的数据采用单精度浮点、半精度浮点或不同比特位宽定点表示。

s5:对比所述第一模型与所述优化深度学习模型在相应数据表示精度下的结果,验证两者一致。

s6:将验证后的优化深度学习模型以单精度浮点或者半精度浮点或者特定比特位宽定点形式部署到相应计算加速器中。

需要强调的是,本发明的应用范围不限于以上所述应用实例以及应用实例中的具体算法模型,本发明对于特定的卷积神经网络模型(指带有“批归一化”结构)具有通用性。

还需要说明,鉴于带有“批归一化”结构的卷积神经网络应用广泛,本发明技术方案不止局限于图像处理技术领域,还可以应用到诸如语音、自然语言处理、强化学习等技术领域。

本发明的第三实施方式涉及一种深度学习模型推理期加速装置,具体装置如图3所示,该装置包括:

信息获取单元301,用于获取优化深度学习模型及待处理数据;所述优化深度学习模型带有优化合并参数;

数据处理单元302,用于通过带有所述优化合并参数的优化深度学习模型对所述待处理数据进行数据处理;

数据传输单元303,用于将所述数据处理后的数据输出。

需要说明的是,该装置还可以包括:

训练信息获取单元,用于获取待优化的卷积神经网络模型及其训练数据;其中,所述待优化的卷积神经网络模型带有“批归一化”结构;

优化单元,用于通过所述训练数据,对所述待优化的卷积神经网络模型进行优化,获取第一模型;

参数信息获取单元,用于获取所述第一模型中对应的卷积与“批归一化”参数以及优化合并方式;

参数合并单元,用于根据所述优化合并方式,合并所述第一模型中对应的卷积与“批归一化”参数,并获取所述优化深度学习模型。

其中,所述优化合并参数为优化卷积参数;所述优化卷积参数包括:优化卷积权重参数和优化卷积偏置参数

所述优化合并方式为:

其中,为第一模型的卷积权重参数,k'对应输出的第k'个通道,k对应输入的第k个通道;bk′为第一模型的卷积偏置参数,k'对应输出的第k'个通道;为第一模型的线性变换尺度参数,k'对应输出的第k'个通道;为第一模型的线性变换移位参数,k'对应输出的第k'个通道。

本发明的第四实施方式涉及一种深度学习模型推理期加速系统,具体系统如图4所示,该系统包括:如上所述的深度学习模型推理期加速装置。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。

在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本发明实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其中,所述处理器执行所述程序时实现如上任一项所述的数据处理方法。

图5为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-2所示实施例的流程,如图5所示,所述电子设备可以包括:存储器51、处理器52及存储在所述存储器51上并可在所述处理器52上运行的计算机程序;其中,所述处理器执行所述程序时实现如上所述的数据处理方法。

所述处理器52对上述步骤的具体执行过程以及所述处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-2所示实施例的描述,在此不再赘述。

该电子设备以多种形式存在,包括但不限于:

(1)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(2)其他具有数据交互功能的电子设备。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本发明还提供一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序可被处理器执行如上所述的深度学习模型推理期加速方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1