一种神经网络推理结构优化方法及装置与流程

文档序号:17444171发布日期:2019-04-17 05:16阅读:179来源:国知局
一种神经网络推理结构优化方法及装置与流程

本申请涉及机器学习技术领域,具体涉及神经网络推理结构优化方法及装置。



背景技术:

批归一化(batchnormalization,bn),是为了克服神经网络层数加深导致难以训练而诞生的一个算法。它是减少内部协变量转移的一个步骤,其可以减少梯度对参数或它们的初始值尺度上的依赖,对通过网络的梯度流动产生有益的影响。另外,为了加快训练神经网络的梯度下降收敛速度,神经网络一般也会对输入数据加入归一化处理操作。

由于加入了bn或者归一化处理,神经网络推理结构相比之前在处理层次深度和计算量上都有所增加,同时增大了处理时延,对神经网络模型推理部署效率产生不利影响。



技术实现要素:

本申请实施例提供一种神经网络推理结构优化方法及装置,能够在一定程度上降低神经网络推理中的计算量和处理时延,以达到提高神经网络模型推理效率的目的。

本申请实施例的第一方面提供了一种神经网络推理结构优化方法,包括:

确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

确认第n-1个网络层是否满足预设条件,其中,所述预设条件为所述第n-1个网络层为卷积层或全连接层,且所述第n-1个网络层的输出仅与所述第n个网络层相连;

若所述第n-1个网络层满足所述预设条件,则调用第一预设算法对所述第n-1个网络层进行处理,以将所述第n个网络层合并至所述第n-1个网络层。

本申请实施例的第二方面提供了一种神经网络推理结构优化方法,包括:

确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

确认第n+1个网络层是否为卷积层或全连接层;

若所述第n+1个网络层为卷积层或全连接层,则调用第二预设算法对所述第n+1个网络层进行处理,以将所述第n个网络层合并至所述第n+1个网络层。

本申请实施例的第三方面提供了一种神经网络推理结构优化方法,包括:

当神经网络推理结构的第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连时,则:

调用第一预设算法对所述第m+1个网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第一优化网络层;

调用第二预设算法对所述第m+1个网络层的第一优化网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层的第一优化网络层;

或者,调用所述第二预设算法对所述第m+1个网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第二优化网络层;

调用所述第一预设算法对所述第m+1个网络层的第二优化网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层的第二优化网络层。

本申请实施例的第四方面提供了一种神经网络推理结构优化装置,包括:

归一化层确认模块,用于确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

判断模块,用于确认第n-1个网络层是否满足预设条件,其中,所述预设条件为所述第n-1个网络层为卷积层或全连接层,且所述第n-1个网络层的输出仅与所述第n个网络层相连;

第一合并模块,用于在所述第n-1个网络层满足所述预设条件时,调用第一预设算法将所述第n个网络层合并至所述第n-1个网络层。

本申请实施例的第五方面提供了一种神经网络推理结构优化装置,包括:

归一化层确认模块,用于确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

判断模块,用于确认第n+1个网络层是否为卷积层或全连接层;

第一合并模块,用于在所述第n+1个网络层为卷积层或全连接层时,调用第二预设算法将所述第n个网络层合并至所述第n+1个网络层。

本申请实施例的第六方面提供了一种神经网络推理结构优化装置,包括:

第一多层合并模块,用于当神经网络推理结构的第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连时,调用第一预设算法对所述第m+1个网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第一优化网络层,并调用第二预设算法对所述第m+1个网络层的第一优化网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层的第一优化网络层;

或者,包括第二多层合并模块,用于当神经网络推理结构的第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连时,调用所述第二预设算法对所述第m+1个网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第二优化网络层,并调用所述第一预设算法对所述第m+1个网络层的第二优化网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层的第二优化网络层。

本申请实施例的第七方面提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行以实现所述的方法。

实施本申请实施例,至少具有如下有益效果:

通过本申请实施例,在神经网络推理结构中通过获取归一化层,在确认该归一化层的前一层为卷积层或全连接层,且该归一化层的前一层的输出仅与该归一化层相连时,调用第一预设算法将该归一化层合并至该卷积层或全连接层;或者,通过获取归一化层,确认该归一化层的后一层为卷积层或全连接层时,调用第二预设算法将该归一化层合并至该卷积层或全连接层;通过将满足条件的归一化层与其相邻卷积层或全连接层进行合并,使得神经网络推理结构的层数相对变少,深度相对变浅,从而降低了神经网络推理中的计算量和处理时延,进而提高了神经网络模型的推理效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的一种神经网络推理结构优化方法的流程示意图;

图2是本发明实施例提供的一种神经网络推理结构优化方法的流程示意图;

图3是本发明实施例提供的一种神经网络推理结构优化方法的流程示意图;

图4是本发明实施例提供的一种神经网络推理结构优化方法的流程示意图;

图5是本发明实施例提供的一种神经网络推理结构优化方法的流程示意图;

图6是本发明实施例提供的一种神经网络推理结构优化方法的流程示意图;

图7是本发明实施例提供的一种终端的结构示意图;

图8是本发明实施例提供的一种神经网络推理结构优化装置的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。

一般的,神经网络推理结构中包括若干网络层,该若干网络层包括卷积层、归一化层、全连接层、池化层、激活层等。

通常批归一化的处理操作如下:

优选的,本方案中将式(1)进行如下变换:

则定义为bn变换后的等效系数。

其中,x,y分别为bn的输入和输出,为进行缩放和转移的输入,γ,β分别为bn的缩放和转移参数;μ,σ分别为训练样本的均值和标准差,这两个值可以通过批的滑动平均方式计算得到;ε为给定的很小的常数。

神经网络一般还会对输入数据进行预处理归一化操作,其也成为了神经网络不可缺少的处理,类似的处理如下:

本方案中将式(2)进行如下变换:

=ax+c;

其中x,y分别为预处理归一化的输入和输出,μ,σ分别为训练样本的均值和方差,为预处理归一化变换后的等效系数。

不失一般性,可将批归一化和预处理归一化统一为归一化处理。

请参阅图1,图1为本申请实施例提供了一种神经网络推理结构优化方法的流程示意图。如图1所示,其可包括步骤101-103,具体如下:

101、确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

102、确认第n-1个网络层是否满足预设条件,其中,所述预设条件为所述第n-1个网络层为卷积层或全连接层,且所述第n-1个网络层的输出仅与所述第n个网络层相连;

所述第n-1个网络层的输出仅与所述第n个网络层相连,即所述第n个网络层在实现对第n-1个网络层的输出进行归一化处理时候,并不与其他网络层相连,保障了在将所述第n个网络层合并至所述第n-1个网络层时,不影响其他网络层的参数的正常,即若所述第n-1个网络层的输出不仅与所述第n个网络层相连,同时也并行的与网络层n’相连,则在将所述第n个网络层合并至所述第n-1个网络层时,影响了所述并行的网络层n’在合并前后运算的等效性。

103、若所述第n-1个网络层满足所述预设条件,则调用第一预设算法对所述第n-1个网络层进行处理,以将所述第n个网络层合并至所述第n-1个网络层。

其中,所述第一预设算法为:

其中,wi,j表示所述第n-1个网络层的第j个通道输入与第i个通道输出之间的权重系数;ai,ci表示所述第n个网络层即归一化层的第i个通道的等效系数;分别表示将所述第n个网络层与所述第n-1个网络层按照第一预设算法进行合并后得到的所述第n-1个网络层的所述第j个通道输入与第i个通道输出之间的第一权重系数以及所述第n-1个网络层的第i个通道的第一偏置参数。

所述第一预设算法的推导过程如下:

对于第n个网络层为归一化层时,xi′,yi分别表示所述第n个网络层的第i个通道输入和输出,则:

其中,xj表示卷积层或者全连接层的第j个通道输入,r为第n-1个网络层的通道输入的个数。

通过本申请实施例,在神经网络推理结构中通过获取归一化层,在确认该归一化层的前一层为卷积层或全连接层,且该归一化层的前一层的输出仅与该归一化层相连时,调用第一预设算法将该归一化层合并至该卷积层或全连接层;通过将满足条件的归一化层与其相邻卷积层或全连接层进行合并,使得神经网络推理结构的层数相对变少,深度相对变浅,从而相对降低了神经网络推理中的计算量和处理时延,进而提高了神经网络模型的推理效率。

图2为本申请实施例提供了一种神经网络推理结构优化方法的流程示意图。该实施例是对图1所示实施例的进一步拓展,如图2所示,其可包括步骤201-205,具体如下:

201、确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

202、确认第n-1个网络层是否满足预设条件,其中,所述预设条件为所述第n-1个网络层为卷积层或全连接层,且所述第n-1个网络层的输出仅与所述第n个网络层相连;

203、若所述第n-1个网络层满足所述预设条件,则调用第一预设算法对所述第n-1个网络层进行处理,以将所述第n个网络层合并至所述第n-1个网络层;

204、若所述第n-1个网络层不满足所述预设条件,则确认第n+1个网络层是否为卷积层或全连接层;

205、若所述第n+1个网络层为卷积层或全连接层,则调用第二预设算法对所述第n+1个网络层进行处理,以将所述第n个网络层合并至所述第n+1个网络层。

当所述第n+1个网络层为卷积层或者所述第n+1个网络层为全连接层时,通过调用第二预设算法对所述第n+1个网络层进行处理,以将所述第n个网络层合并至所述第n+1个网络层,其中,所述第二预设算法为:

其中,aj,cj表示所述第n个网络层即归一化层的第j个通道的等效系数;wi,j,bi分别表示所述第n+1个网络层的第j个通道输入与第i个通道输出之间的权重系数以及第i个通道的偏置系数,r为所述第n+1个网络层的通道输入的个数;分别表示将所述第n个网络层与所述第n+1个网络层按照第二预设算法进行合并后得到的所述第n+1个网络层的第j个通道输入与第i个通道输出之间的第二权重系数及第i个通道的第二偏置参数。

具体地,所述第二预设算法的推导过程如下:

对于第n个网络层为归一化层时,xj′,yi分别表示所述第n+1个网络层为卷积层或全连接层的第j个通道输入和第i个通道输出,则:

其中,xj为第n个网络层的第j个通道输入。

在上述合并之后,为了保障神经网络推理结构在网络层合并前后运算的等效性,则对于第n+1个网络层为卷积层且存在填充数值时,需要对填充数值进行相应的修改。如果转换前卷积层中存在的填充数值为p,则合并后得到的卷积层的第j个通道输入的填充数值相应调整为(p-cj)/aj,其中,aj,cj表示所述归一化层即第n个网络层的第j个通道的等效系数。

通过本申请实施例,在神经网络推理结构中通过获取归一化层,确认该归一化层的前一层不满足所述预设条件的时候,则判断该归一化层的后一层是否为卷积层或全连接层,当该归一化层的后一层是卷积层或全连接层时,则调用第二预设算法将该归一化层合并至该卷积层或全连接层;通过将满足条件的归一化层与其相邻卷积层或全连接层进行合并,使得神经网络推理结构的层数相对变少,深度相对变浅,从而相对降低了神经网络推理中的计算量和处理时延,进而提高了神经网络模型的推理效率。

图3为本申请实施例提供了一种神经网络推理结构优化方法的流程示意图。如图3所示,其可包括步骤301-303,具体如下:

301、确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

302、确认第n+1个网络层是否为卷积层或全连接层;

303、若所述第n+1个网络层为卷积层或全连接层,则调用第二预设算法对所述第n+1个网络层进行处理,以将所述第n个网络层合并至所述第n+1个网络层。

进一步,在上述合并之后,为了保障神经网络推理结构在网络层合并前后运算的等效性,则对于第n+1个网络层为卷积层且存在填充数值时,需要对填充数值进行相应的修改。如果转换前卷积层中存在的填充数值为p,则合并后得到的卷积层的第j个通道输入的填充数值相应调整为(p-cj)/aj,其中,aj,cj表示所述归一化层即第n个网络层的第j个通道的等效系数。

通过本申请实施例,在神经网络推理结构中通过获取归一化层,确认该归一化层的后一层为卷积层或全连接层时,调用第二预设算法将该归一化层合并至该卷积层或全连接层;通过将归一化层与其相邻卷积层或全连接层进行合并,使得神经网络推理结构的层数相对变少,深度相对变浅,从而相对降低了神经网络推理中的计算量和处理时延,进而提高了神经网络模型的推理效率;同时将网络层中存在填充数值的层的填充数值进行相应调整,使得保障了神经网络推理结构在优化前后运算的等效性。

图4为本申请实施例提供了一种神经网络推理结构优化方法的流程示意图。如图4所示,其可包括步骤401-405,具体如下:

401、确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

402、确认第n+1个网络层是否为卷积层或全连接层;

403、若所述第n+1个网络层为卷积层或全连接层,则调用第二预设算法对所述第n+1个网络层进行处理,以将所述第n个网络层合并至所述第n+1个网络层;

404、若所述第n+1个网络层不是卷积层或全连接层,则确认第n-1个网络层是否满足预设条件,其中,所述预设条件为所述第n-1个网络层为卷积层或全连接层,且所述第n-1个网络层的输出仅与所述第n个网络层相连;

405、若所述第n-1个网络层满足所述预设条件,则调用第一预设算法对所述第n-1个网络层进行处理,以将所述第n个网络层合并至所述第n-1个网络层。

通过本申请实施例,在神经网络推理结构中通过获取归一化层,确认该归一化层的后一层不是卷积层或全连接层时,则判断该归一化层的前一层是否满足所述预设条件,当该归一化层的前一层满足所述预设条件时,则调用第一预设算法将该归一化层合并至该卷积层或全连接层;通过将满足条件的归一化层与其相邻卷积层或全连接层进行合并,使得神经网络推理结构的层数相对变少,深度相对变浅,则相对降低了在神经网络推理中的计算量和处理时延,达到高效应用的目的。

图5为本申请实施例提供了一种神经网络推理结构优化方法的流程示意图。如图5所示,该实施例是对于当所述神经网络推理结构中相邻三个网络层依次是归一化层、卷积层或全连接层、归一化层时进行的相应处理,如下其可包括步骤501-503,具体如下:

501、确认神经网络推理结构的第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连;

502、调用第一预设算法对所述第m+1个网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第一优化网络层;

503、调用第二预设算法对所述第m+1个网络层的第一优化网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层的第一优化网络层。

即,对于第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连时,则先调用第一预设算法对所述第m+1个网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层;然后调用第二预设算法对合并后得到的所述第m+1个网络层的第一优化网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层的第一优化网络层。

进一步,在将所述第m个网络层合并至所述第m+1个网络层的第一优化网络层之后,对于第m+1个网络层为卷积层且存在填充数值时,需要对填充数值进行相应的修改。如果转换前卷积层中存在的填充数值为p,则合并后得到的卷积层的第j个通道输入的填充数值相应调整为(p-cj)/aj,其中,aj,cj表示所述归一化层即第m个网络层的第j个通道的等效系数。

通过本申请实施例,在神经网络推理结构中通过获取相邻三个网络层依次是归一化层、卷积层或全连接层、归一化层,且卷积层或全连接层的输出仅与后一归一化层相连时,先调用第一预设算法将后一归一化层合并至该卷积层或全连接层,然后调用第二预设算法将前一归一化层合并至上述合并得到的卷积层或全连接层;通过将相邻三个网络层合并后得到一个网络层,使得神经网络推理结构的层数相对变少,深度相对变浅,从而相对降低了神经网络推理中的计算量和处理时延,进而提高了神经网络模型的推理效率。

图6为本申请实施例提供了一种神经网络推理结构优化方法的流程示意图。如图6所示,其可包括步骤601-603,具体如下:

601、确认神经网络推理结构的第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连;

602、调用所述第二预设算法对所述第m+1个网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第二优化网络层;

其中,在将所述第m个网络层合并至所述第m+1个网络层之后,对于第m+1个网络层为卷积层且存在填充数值时,需要对填充数值进行相应的修改。如果转换前卷积层中存在的填充数值为p,则合并后得到的卷积层的第j个通道输入的填充数值相应调整为(p-cj)/aj,其中,aj,cj表示所述归一化层即第m个网络层的第j个通道的等效系数。

603、调用所述第一预设算法对所述第m+1个网络层的第二优化网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层的第二优化网络层。

通过本申请实施例,在神经网络推理结构中通过获取相邻三个网络层依次是归一化层、卷积层或全连接层、归一化层,且卷积层或全连接层的输出仅与后一归一化层相连时,先调用第二预设算法将前一归一化层合并至该卷积层或全连接层,然后调用第一预设算法将后一归一化层合并至上述合并得到的卷积层或全连接层;通过将相邻三个网络层合并后得到一个网络层,使得神经网络推理结构的层数相对变少,深度相对变浅,从而相对降低了神经网络推理中的计算量和处理时延,进而提高了神经网络模型的推理效率。

与上述实施例一致的,请参阅图7,图7为本申请实施例提供的一种终端的结构示意图,如图所示,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,上述程序包括用于执行以下步骤的指令;

确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

确认第n-1个网络层是否满足预设条件,其中,所述预设条件为所述第n-1个网络层为卷积层或全连接层,且所述第n-1个网络层的输出仅与所述第n个网络层相连;

若所述第n-1个网络层满足所述预设条件,则调用第一预设算法对所述第n-1个网络层进行处理,以将所述第n个网络层合并至所述第n-1个网络层。

或者,确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

确认第n+1个网络层是否为卷积层或全连接层;

若所述第n+1个网络层为卷积层或全连接层,则调用第二预设算法对所述第n+1个网络层进行处理,以将所述第n个网络层合并至所述第n+1个网络层。

或者,当神经网络推理结构的第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连时,则:

调用第一预设算法对所述第m+1个网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第一优化网络层;

调用第二预设算法对所述第m+1个网络层的第一优化网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层的第一优化网络层;

或者,调用所述第二预设算法对所述第m+1个网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第二优化网络层;

调用所述第一预设算法对所述第m+1个网络层的第二优化网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层的第二优化网络层。

通过本申请实施例,在神经网络推理结构中通过获取归一化层,在确认该归一化层的前一层为卷积层或全连接层,且该归一化层的前一层的输出仅与该归一化层相连时,调用第一预设算法将该归一化层合并至该卷积层或全连接层;或者,通过获取归一化层,确认该归一化层的后一层为卷积层或全连接层时,调用第二预设算法将该归一化层合并至该卷积层或全连接层;通过将满足条件的归一化层与其相邻卷积层或全连接层进行合并,使得神经网络推理结构的层数相对变少,深度相对变浅,则相对降低了神经网络推理中的计算量和处理时延,达到高效应用的目的。

上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

与上述一致的,请参阅图8,图8为本申请实施例提供了一种神经网络推理结构优化装置的结构示意图。该装置包括归一化层确认模块801、判断模块802、第一合并模块803,具体地:

归一化层确认模块801,用于确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

判断模块802,用于确认第n-1个网络层是否满足预设条件,其中,所述预设条件为所述第n-1个网络层为卷积层或全连接层,且所述第n-1个网络层的输出仅与所述第n个网络层相连;

第一合并模块803,用于在所述第n-1个网络层满足所述预设条件时,调用第一预设算法将所述第n个网络层合并至所述第n-1个网络层。

作为另一实施例,还提供一种神经网络推理结构优化装置,包括:

归一化层确认模块,用于确认神经网络推理结构中第n个网络层为归一化层,其中,n为正整数;

判断模块,用于确认第n+1个网络层是否为卷积层或全连接层;

第一合并模块,用于在所述第n+1个网络层为卷积层或全连接层时,调用第二预设算法将所述第n个网络层合并至所述第n+1个网络层。

作为另一实施例,还提供一种神经网络推理结构优化装置,包括:

第一多层合并模块,用于当神经网络推理结构的第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连时,调用第一预设算法对所述第m+1个网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第一优化网络层,并调用第二预设算法对所述第m+1个网络层的第一优化网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层的第一优化网络层;

或者,包括第二多层合并模块,用于当神经网络推理结构的第m个网络层和第m+2个网络层均为归一化层,第m+1个网络层为卷积层或全连接层,且所述第m+1个网络层的输出仅与所述第m+2个网络层相连时,调用所述第二预设算法对所述第m+1个网络层进行处理,以将所述第m个网络层合并至所述第m+1个网络层,以得到所述第m+1个网络层的第二优化网络层,并调用所述第一预设算法对所述第m+1个网络层的第二优化网络层进行处理,以将所述第m+2个网络层合并至所述第m+1个网络层的第二优化网络层。

通过本申请实施例,在神经网络推理结构中通过获取归一化层,在确认该归一化层的前一层为卷积层或全连接层,且该归一化层的前一层的输出仅与该归一化层相连时,调用第一预设算法将该归一化层合并至该卷积层或全连接层;或者,通过获取归一化层,确认该归一化层的后一层为卷积层或全连接层时,调用第二预设算法将该归一化层合并至该卷积层或全连接层;通过将满足条件的归一化层与其相邻卷积层或全连接层进行合并,使得神经网络推理结构的层数相对变少,深度相对变浅,则相对降低了神经网络推理中的计算量和处理时延,达到高效应用的目的。

本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种神经网络推理结构优化方法的部分或全部步骤。

本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种神经网络推理结构优化方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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