CN109800859A - 一种神经网络批归一化的优化方法及装置 - Google Patents

一种神经网络批归一化的优化方法及装置 Download PDF

Info

Publication number
CN109800859A
CN109800859A CN201811590504.8A CN201811590504A CN109800859A CN 109800859 A CN109800859 A CN 109800859A CN 201811590504 A CN201811590504 A CN 201811590504A CN 109800859 A CN109800859 A CN 109800859A
Authority
CN
China
Prior art keywords
layer
network
bias
target network
initial
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
Application number
CN201811590504.8A
Other languages
English (en)
Other versions
CN109800859B (zh
Inventor
肖海勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201811590504.8A priority Critical patent/CN109800859B/zh
Publication of CN109800859A publication Critical patent/CN109800859A/zh
Priority to US17/257,314 priority patent/US11270208B2/en
Priority to PCT/CN2019/121522 priority patent/WO2020134829A1/zh
Application granted granted Critical
Publication of CN109800859B publication Critical patent/CN109800859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例提供一种神经网络批归一化的优化方法,包括:将神经网络中第一个网络层设置为起始层;从所述起始层开始向后依次获取不同网络层的初始偏置值;计算所述不同网络层的等效偏置值;判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;若存在所述目标网络层,则将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值。采用本方案,能够有效减少网络定点化后的位宽,有利于网络在各种现有位宽受限的AI硬件平台上部署。

Description

一种神经网络批归一化的优化方法及装置
技术领域
本申请涉及神经网络领域,具体涉及一种神经网络批归一化的优化方法及装置。
背景技术
近年来,随着深度学习技术的发展,深度神经网络成为人工智能的关键核心技术。批归一化(Batch Normalization(Batch Norm))是一种加速深度网络训练过程的一种方法,然而Batch Norm的处理过程需要人为引入偏置,在后续的网络处理过程中,如果人为引入的偏置没有及时消除就有可能会逐步放大。如果该偏置放大幅度过大,会导致网络的定点化实现困难。如果直接对网络每一层的输出数据进行量化截位,会导致大量位宽浪费在无效的数据偏移上,而真正需要比特量化的去除偏移后的数据只能得到剩下的低位量化比特,导致网络的定点位宽膨胀。
发明内容
本申请实施例提供一种神经网络批归一化的优化方法及装置,能够减少人为引入的偏置带来的影响,有效降低网络的定点位宽需求。
本申请实施例的第一方面提供了一种神经网络批归一化的优化方法,包括:
将神经网络中第一个网络层设置为起始层;
从所述起始层开始向后依次获取不同网络层的初始偏置值;
调用预设算法对所述不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值;
判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;
若存在所述目标网络层,则将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值。
优选的,确认所述目标网络层不是位于所述神经网络的最后一层,则将所述目标网络层的后一层设置为起始层,并执行所述调用预设算法对所述从所述起始层开始向后依次获取的不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值。
本申请实施例的第二方面提供了一种神经网络批归一化的优化装置,所述装置包括:
起始层设置模块,用于将神经网络中第一个网络层设置为起始层;
初始偏置值获取模块,用于从所述起始层开始向后依次获取不同网络层的初始偏置值;
数据处理模块,用于调用预设算法对所述不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值;
判断模块,用于判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;
优化处理模块,用于在存在所述目标网络层时,将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值。
本申请实施例的第三方面提供一种终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例第一方面的步骤指令。
本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,至少具有如下有益效果:
通过本申请实施例,将每一个网络层的初始偏置值进行处理,得到每一个网络层的等效偏置值,通过获取到目标网络层,其中,目标网络层的前一层所对应的等效偏置值与该目标网络层所对应的等效偏置值之间的比值不小于预设阈值,以便确定该目标网络层的等效偏置值为一定范围内较小的等效偏置值,则将目标网络层之前的各网络层的偏置值设为0,并将目标网络层的等效偏置值作为目标网络层的偏置值,则保障了非目标网络层的偏置值为0,目标网络层的偏置值为很小的偏置值,达到最终神经网络的不同网络层的偏置值均较小,解决了含批归一化操作的神经网络中人为引入的偏置过大,导致信息定点化时浪费高位信息比特的问题。采用本方案,能够有效减少网络定点化后的位宽,有利于网络在各种现有位宽受限的AI硬件平台上部署。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种神经网络批归一化的优化装置的交互示意图;
图2为本申请实施例提供的一种神经网络批归一化的优化方法的流程示意图;
图3为本申请实施例提供的一种神经网络批归一化的优化方法的流程示意图;
图4为本申请实施例提供的一种终端的结构示意图;
图5为本申请实施例提供的一种神经网络批归一化的优化装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
一般的,神经网络结构由若干网络层组成,其中,所述若干网络层可分为输入层、卷积层、激活层、全连接层、批归一化层等等。
参照图1,图1为本申请实施例提供了一种神经网络批归一化的优化交互示意图。如图1所示,该交互包括终端101、预设算法数据库102,其中,终端101将神经网络中第一个网络层设置为起始层,所述终端101从预设算法数据库102调用预设算法计算所述起始层开始不同网络层的等效bias(偏置)值;所述终端101判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效bias值与所述目标网络层所对应的等效bias值之间的比值不小于预设阈值;若存在,则所述终端101将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值;若不存在目标网络层,则各网络层的初始偏置值不作处理;所述终端101确认所述目标网络层是否位于所述神经网络的最后一层;若不是,则所述终端101将所述目标网络层的后一层设置为起始层,并执行所述终端101从预设算法数据库102调用预设算法计算所述起始层开始不同网络层的等效bias值;若是,则所述终端101结束该神经网络批归一化的优化操作。
通过本申请实施例,将每一个网络层的初始偏置值进行处理,得到每一个网络层的等效偏置值,通过获取到目标网络层,其中,目标网络层的前一层所对应的等效偏置值与该目标网络层所对应的等效偏置值之间的比值不小于预设阈值,以便确定该目标网络层的等效偏置值为一定范围内较小的等效偏置值,则将目标网络层之前的各网络层的偏置值设为0,并将目标网络层的等效偏置值作为目标网络层的偏置值,则保障了非目标网络层的偏置值为0,目标网络层的偏置值为很小的偏置值,达到最终神经网络的不同网络层的偏置值均较小,解决了含批归一化操作的神经网络中人为引入的偏置过大,导致信息定点化时浪费高位信息比特的问题。采用本方案,能够有效减少网络定点化后的位宽,有利于网络在各种现有位宽受限的AI硬件平台上部署。
参照图2,图2为本申请实施例提供了一种神经网络批归一化的优化方法的流程示意图。如图2所示,其可包括步骤201-205,具体如下:
201,将神经网络中第一个网络层设置为起始层;
202,从所述起始层开始向后依次获取不同网络层的初始偏置值;
其中,该初始偏置值是指神经网络中根据机器训练学习得到的bias值,作为优化前的初始偏置值;
203,调用预设算法对所述不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值;
优选的,其中,起始层第一个网络层的等效偏置值即为第一个网络层的初始偏置值;第二个网络层的等效偏置值的计算,是通过将起始层的初始偏置值乘以第二个网络层的各权重所得到的和,再加上所述第二个网络层的初始偏置值,即得到第二个网络层的等效偏置值;则第N个网络层的等效偏置值即为第N-1个网络层的等效偏置值乘以第N个网络层的权重和所得到的值,再加上所述第N个网络层的初始偏置值,即得到第N个网络层的等效偏置值。
204,判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;
其中,所述预设阈值可为100、1000或者几千不等,如预设阈值为100,目标网络层所对应的等效bias值为3.5,目标网络层的前一层所对应的等效bias值为2000,则2000除以3.5等于571.43,则571.43不小于预设阈值。
205,若存在所述目标网络层,则将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值;
在存在所述目标网络层时,则将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值;即通过将满足条件的等效偏置值所对应的网络层的偏置值优化为其对应的等效偏置值,将该网络层之前的各网络层的偏置值优化为0,使得最终神经网络的不同网络层的偏置均较小,解决了含批归一化操作的神经网络中人为引入的偏置过大,导致信息定点化时浪费高位信息比特的问题。
进一步,还包括:确认所述目标网络层不是位于所述神经网络的最后一层,则将所述目标网络层的后一层设置为起始层,并执行所述调用预设算法对所述从所述起始层开始向后依次获取的不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值。
通过本申请实施例,将每一个网络层的初始偏置值进行处理,得到每一个网络层的等效偏置值,通过获取到目标网络层,其中,目标网络层的前一层所对应的等效偏置值与该目标网络层所对应的等效偏置值之间的比值不小于预设阈值,以便确定该目标网络层的等效偏置值为一定范围内较小的等效偏置值,则将目标网络层之前的各网络层的偏置值设为0,并将目标网络层的等效偏置值作为目标网络层的偏置值,则保障了非目标网络层的偏置值为0,目标网络层的偏置值为很小的偏置值,达到最终神经网络的不同网络层的偏置值均较小,解决了含批归一化操作的神经网络中人为引入的偏置过大,导致信息定点化时浪费高位信息比特的问题。采用本方案,能够有效减少网络定点化后的位宽,有利于网络在各种现有位宽受限的AI硬件平台上部署。
在该实施例的基础上,当对于同一个起始层,在存在N个所述目标网络层时,为了确定出一个合适的等效bias值,即一个目标网络层,则:
可获取所述N个所述目标网络层分别对应的等效bias值中最小的等效bias值;将所述最小的等效bias值所对应的网络层确定为优化的目标网络层。
通过将最小的等效bias值所对应的网络层确定为目标网络层,则目标网络层之前的各网络层的偏置值为0,使得最终神经网络的不同网络层的偏置值较小,解决了含批归一化操作的神经网络中人为引入的偏置过大,导致信息定点化时浪费高位信息比特的问题。
可替代的,当存在N个所述目标网络层时,则将N个所述目标网络层中的最后一个网络层确定为目标网络层。
通过将位于后面的等效bias值所对应的网络层确定为目标网络层,相比选取位于较前面网络层为目标网络层而言,当选取较前的网络层为目标网络层时,则在下一次循环获取目标网络层时候,需要将当前目标网络层的后一层作为起始层,依次获取所述目标网络层的后一层及其后面各层的等效偏置值,以及获取所述目标网络层的后一层及其后面各层的相邻前后层的等效偏置值的比值;因此相比较而言,一定程度上选取位于后面的等效bias值所对应的网络层为目标网络层,可以减少该优化方法在选取目标网络层时候的计算量,提高了优化处理的效率。
请参阅图3,图3为本申请实施例提供了一种神经网络批归一化的优化方法的流程示意图。当网络层的bias改变时,需要对激活层的激活操作进行相应修改,即需要对不同激活层的激活函数进行相应修改,否则如果在网络层的bias没有加入的情况下仍然按小于0的数据置0将产生错误。如图3所示,其可包括步骤301-309,具体如下:
301、将神经网络中第一个网络层设置为起始层;
302、从所述起始层开始向后依次获取不同网络层的初始偏置值;
303、调用预设算法对所述不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值;
304、判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;
305、若存在所述目标网络层,则将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值;
若不存在所述目标网络层,则从起始层开始向后所有网络层的初始偏置值均不作任何改变,则按照正常神经网络的批归一化处理流程进行处理。
306、获取所述起始层至所述目标网络层之间的不同激活层的初始激活函数;
307、对所述起始层至所述目标网络层之间的不同激活层的初始激活函数分别进行处理,以得到所述起始层至所述目标网络层之间的不同激活层的激活函数;
通过获取所述起始层至所述目标网络层之间的不同激活层的等效偏置值;根据所述不同激活层的等效偏置值,对所述不同激活层的初始激活函数分别进行处理,以得到所述起始层至所述目标网络层之间的不同激活层的激活函数;
其中,常规的激活操作采用如下激活函数进行:
将上述激活函数进行优化,则优化后的激活函数如下:
relu(x+bias_eq)=relu_new(x)+bias_eq;
其中,x为调整前不同激活层的激活函数的输入值,bias_eq为不同激活层的等效偏置,relu_new(x)为修改后的激活函数。
308、对所述起始层至所述目标网络层之间的不同激活层按照所述不同激活层的激活函数分别进行激活处理;
309、确认所述目标网络层不是位于所述神经网络的最后一层,则将所述目标网络层的后一层设置为起始层,并执行所述调用预设算法对所述从所述起始层开始向后依次获取的不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值。
通过本申请实施例,将每一个网络层的初始偏置值进行处理,获取到目标网络层,将目标网络层之前的各网络层的偏置值设为0,并将目标网络层的等效偏置值作为目标网络层的偏置值,则在相应修改偏置值的情况下对激活层的激活函数做出相应修改,以保证激活操作的正常进行。
进一步地,在上述各实施例的基础上,还包括:
确认所述起始层至所述目标网络层之间存在第A个网络层,所述第A个网络层存在有初始填充值,其中,A为整数,且A不小于1;
对所述第A个网络层的初始填充值进行处理,以得到所述第A个网络层的填充值。
通过获取所述第A个网络层的等效偏置值,根据所述第A个网络层的等效偏置值,对所述第A个网络层的初始填充值进行处理;
其中,padding_new(y)=y-bias_eq,y为优化前的不同网络层的初始padding(填充)值,采用该算法对神经网络中存在有初始填充值的层的不同padding值做出相应调整。
通过本申请实施例,在对各网络层的偏置值进行优化处理后,同时对不同网络层的填充值分别通过特定算法作相应调整,使得对该神经网络所做的优化之后,保障了该神经网络的其他参数的正常化。
进一步地,在对所述各网络层的偏置值进行优化之前,还包括:
获取所述神经网络中的P个批归一化层,其中,P为正整数;
确认所述P个批归一化层中存在P’个批归一化层,其中,所述P’个批归一化层中的每个批归一化层的前一网络层均为卷积层/全连接层,1≤P’≤P;
将所述P’个批归一化层中的每个批归一化层与所述每个批归一化层对应的前一网络层分别进行合并。
即,在进行偏置值优化处理之前,对满足条件的P’个批归一化层与其对应的前一网络层进行合并,使得该神经网络的层数变少,则相应的在进行计算各网络层的等效偏置值时以及查找目标网络层时的计算量减少,提高处理效率。
作为该方案的一具体的实施例,对于神经网络中Batch Norm层进行如下操作:
第k层为Batch Norm层且其包括多路输出,对所述第k个Batch Norm层的第i路输出可表示为:
data_meank[i]=mean(datak[i,:,:])
data_vark[i]=var(datak[i,:,:])
其中,datak[i,:,:]为第k层的输入数据,gammak[i]、betak[i]均为训练得到的第k个网络层的第i路的参数,data_vark[i]为训练得到的第k个网络层的第i路的方差,data_meank[i]训练得到的第k个网络层的第i路的均差,ε为常数;
对式(1)继续进行扩展处理并合并,可得到第k个网络层的第i路输出表达式简化如下:
定义:
其中,weightk[i]表示第k个网络层的第i路的权重,biask[i]表示第k个网络层的第i路的合并前的偏置值;
为了减少计算量,通常在神经网络部署时对式(2)可以进行处理,将其进行合并操作,并入第k-1个网络层,其中第k-1个网络层为卷积层或全连接层,即:
其中,weight_newk-1[i]=weightk[i]*weightk-1[i];
bias_newk-1[i]=weightk[i]*biask-1[i]+biask[i];
bias_newk-1[i]表示第k-1个网络层的第i路按照上述公式合并后的初始偏置值,weight_newk-1[i]表示第k-1个网络层的第i路的变换后的权重。即第k层的输出可以采用第k-1层来表示,且第k-1层采用weight_newk-1和bias_newk-1作为系数和偏移。
将批归一化层与其对应的前一卷积层或全连接层进行合并,使得该神经网络的层数变少,则相应的在进行计算各网络层的等效偏置值时的计算量减少,提高处理效率。
则对于合并后的各网络层的等效偏置值的计算如下:
其中第k个网络层为卷积或全连接层时,所述第k个网络层包括多个支路,等效bias采用如下公式往后传递叠加:
bias_eqk[i]=bias_newk[i]+sum(weight_newk-1[i])*bias_eqk-1; (4)
bias_eqk+1[i]=bias_newk+1[i]+sum(weight_newk[i])*bias_eqk; (5)
其中,bias_eqk[i]为第k个网络层的第i路的等效偏置值。
计算出各层的等效偏置值后,如果某一网络层的前一层所对应的等效偏置值与该网络层所对应的等效偏置值之间的比值不小于预设阈值,则在该层将起始层至该网络层之前一层的所有偏置值设为0,并将该层的等效偏置值作为该层的偏置值。通过将该层之前的各层的偏置值均设为0,则该层之前的定点数据主要对变化丰富的有效数据进行编码,可以大大减小网络的位宽。
采用上面的处理,在偏置值进行修改时候,由于网络中一般都存在非线性的激活操作,因此相应的,还需要对激活操作进行修改,否则如果在网络的bias没有加入的情况下仍然按小于0的数据置0将产生错误。
常规的激活操作按下式进行:
将上述激活操作进行修改,则修改后的激活操作如下:
relu(x+bias_eq)=relu_new(x)+bias_eq;
其中,x为调整前不同激活层的激活操作的输入值,bias_eq为不同激活层的等效偏置,relu_new(x)为修改后的激活函数。
此外,在网络中存在padding的情况下,需要相应修改padding值。修改方式与激活操作类似,如果padding值为0,需要将padding值修改为-bias_eq。一般的,如果padding值为v,则修改后的padding值为v-bias_eq。
通过对不同网络层的激活操作以及存在padding值的层的padding值分别通过特定算法作相应调整,使得对该神经网络所做的优化调整之后,保障了该神经网络的其他参数的正常化。
与上述实施例一致的,请参阅图4,图4为本申请实施例提供的一种终端的结构示意图,如图所示,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,上述程序包括用于执行以下步骤的指令;
将神经网络中第一个网络层设置为起始层;
从所述起始层开始向后依次获取不同网络层的初始偏置值;
调用预设算法对所述不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值;
判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;
若存在所述目标网络层,则将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值;
确认所述目标网络层不是位于所述神经网络的最后一层,则将所述目标网络层的后一层设置为起始层,并执行所述调用预设算法对所述从所述起始层开始向后依次获取的不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值。
通过本申请实施例,将每一个网络层的初始偏置值进行处理,得到每一个网络层的等效偏置值,通过获取到目标网络层,其中,目标网络层的前一层所对应的等效偏置值与该目标网络层所对应的等效偏置值之间的比值不小于预设阈值,以便确定该目标网络层的等效偏置值为一定范围内较小的等效偏置值,则将目标网络层之前的各网络层的偏置值设为0,并将目标网络层的等效偏置值作为目标网络层的偏置值,则保障了非目标网络层的偏置值为0,目标网络层的偏置值为很小的偏置值,达到最终神经网络的不同网络层的偏置值均较小,解决了含批归一化操作的神经网络中人为引入的偏置过大,导致信息定点化时浪费高位信息比特的问题。采用本方案,能够有效减少网络定点化后的位宽,有利于网络在各种现有位宽受限的AI硬件平台上部署。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述一致的,请参阅图5,图5为本申请实施例提供了一种神经网络批归一化的优化装置的结构示意图,所述装置包括起始层设置模块501、初始偏置值获取模块502、数据处理模块503、判断模块504、优化处理模块505,其中:
起始层设置模块501,用于将神经网络中第一个网络层设置为起始层;
初始偏置值获取模块502,用于从所述起始层开始向后依次获取不同网络层的初始偏置值;
数据处理模块503,用于调用预设算法对所述不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值;
判断模块504,用于判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;
优化处理模块505,用于在存在所述目标网络层时,将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值。
进一步,还包括激活函数处理模块,用于:
获取所述起始层至所述目标网络层之间的不同激活层的初始激活函数,并获取所述起始层至所述目标网络层之间的不同激活层的等效偏置值,并根据所述不同激活层的等效偏置值,对所述不同激活层的初始激活函数分别进行处理,以得到所述起始层至所述目标网络层之间的不同激活层的激活函数;对所述起始层至所述目标网络层之间的不同激活层按照其激活函数分别进行激活处理。
进一步,还包括填充值处理模块,用于:
确认所述起始层至所述目标网络层之间存在第A个网络层,所述第A个网络层存在有初始填充值,其中,A为整数,且A不小于1,并对所述第A个网络层的初始填充值进行处理,以得到所述第A个网络层的填充值。
进一步,还包括合并处理模块,用于:
获取所述神经网络中的P个批归一化层,其中,P为正整数,并确认所述P个批归一化层中存在P’个批归一化层时,将所述P’个批归一化层中的每个批归一化层与所述每个批归一化层对应的前一网络层分别进行合并,其中,所述P’个批归一化层中的每个批归一化层的前一网络层均为卷积层/全连接层,1≤P’≤P。
进一步,还包括目标网络层确定模块,用于:
在存在N个所述目标网络层时,获取所述N个所述目标网络层分别对应的等效偏置值中最小的等效偏置值,其中,N为大于1的整数,并将所述最小的等效偏置值所对应的网络层确定为目标网络层;
或者,用于在存在N个所述目标网络层时,将N个所述目标网络层中的最后一个网络层确定为目标网络层。
通过本申请实施例,将每一个网络层的初始偏置值进行处理,得到每一个网络层的等效偏置值,通过获取到目标网络层,其中,目标网络层的前一层所对应的等效偏置值与该目标网络层所对应的等效偏置值之间的比值不小于预设阈值,以便确定该目标网络层的等效偏置值为一定范围内较小的等效偏置值,则将目标网络层之前的各网络层的偏置值设为0,并将目标网络层的等效偏置值作为目标网络层的偏置值,则保障了非目标网络层的偏置值为0,目标网络层的偏置值为很小的偏置值,达到最终神经网络的不同网络层的偏置值均较小,解决了含批归一化操作的神经网络中人为引入的偏置过大,导致信息定点化时浪费高位信息比特的问题。采用本方案,能够有效减少网络定点化后的位宽,有利于网络在各种现有位宽受限的AI硬件平台上部署。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种神经网络批归一化的定点化方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种神经网络批归一化的定点化方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种神经网络批归一化的优化方法,其特征在于,包括:
将神经网络中第一个网络层设置为起始层;
从所述起始层开始向后依次获取不同网络层的初始偏置值;
调用预设算法对从所述起始层开始向后依次获取的不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值;
判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;
若存在所述目标网络层,则将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取所述起始层至所述目标网络层之间的不同激活层的初始激活函数;
获取所述起始层至所述目标网络层之间的不同激活层的等效偏置值;
根据所述不同激活层的等效偏置值,对所述不同激活层的初始激活函数分别进行处理,以得到所述起始层至所述目标网络层之间的不同激活层的激活函数;
对所述起始层至所述目标网络层之间的不同激活层按照其激活函数分别进行激活处理。
3.根据权利要求2所述的方法,其特征在于,所述对所述起始层至所述目标网络层之间的不同激活层按照所述不同激活层的激活函数分别进行激活处理之后,包括:
确认所述起始层至所述目标网络层之间存在第A个网络层,所述第A个网络层存在有初始填充值,其中,A为整数,且A不小于1;
获取所述第A个网络层的等效偏置值;
根据所述第A个网络层的等效偏置值,对所述第A个网络层的初始填充值进行处理,以得到所述第A个网络层的填充值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述将神经网络中第一个网络层设置为起始层之前,还包括:
获取所述神经网络中的P个批归一化层,其中,P为正整数;
确认所述P个批归一化层中存在P’个批归一化层,其中,所述P’个批归一化层中的每个批归一化层的前一网络层均为卷积层/全连接层,1≤P’≤P;
将所述P’个批归一化层中的每个批归一化层与其对应的前一网络层分别进行合并。
5.根据权利要求4所述的方法,其特征在于,包括:
当存在N个所述目标网络层时,则获取所述N个所述目标网络层分别对应的等效偏置值中最小的等效偏置值,其中,N为大于1的整数;
将所述最小的等效偏置值所对应的网络层确定为目标网络层;
或者,当存在N个所述目标网络层时,则将N个所述目标网络层中的最后一个网络层确定为目标网络层。
6.一种神经网络批归一化的优化装置,其特征在于,所述装置包括:
起始层设置模块,用于将神经网络中第一个网络层设置为起始层;
初始偏置值获取模块,用于从所述起始层开始向后依次获取不同网络层的初始偏置值;
数据处理模块,用于调用预设算法对所述不同网络层的初始偏置值分别进行处理,以得到所述不同网络层的等效偏置值;
判断模块,用于判断是否存在目标网络层,其中,所述目标网络层的前一层所对应的等效偏置值与所述目标网络层所对应的等效偏置值之间的比值不小于预设阈值;
优化处理模块,用于在存在所述目标网络层时,将所述起始层至所述目标网络层的前一层之间的不同网络层的偏置值均设为0,并将所述目标网络层的等效偏置值作为所述目标网络层的偏置值。
7.根据权利要求6所述的装置,其特征在于,还包括激活函数处理模块,用于:
获取所述起始层至所述目标网络层之间的不同激活层的初始激活函数,并获取所述起始层至所述目标网络层之间的不同激活层的等效偏置值,并根据所述不同激活层的等效偏置值,对所述不同激活层的初始激活函数分别进行处理,以得到所述起始层至所述目标网络层之间的不同激活层的激活函数;对所述起始层至所述目标网络层之间的不同激活层按照其激活函数分别进行激活处理。
8.根据权利要求7所述的装置,其特征在于,还包括填充值处理模块,用于:
确认所述起始层至所述目标网络层之间存在第A个网络层,所述第A个网络层存在有初始填充值,其中,A为整数,且A不小于1,并获取所述第A个网络层的等效偏置值,然后根据所述第A个网络层的等效偏置值,对所述第A个网络层的初始填充值进行处理,以得到所述第A个网络层的填充值。
9.根据权利要求8所述的装置,其特征在于,还包括合并处理模块,用于:
获取所述神经网络中的P个批归一化层,其中,P为正整数,并确认所述P个批归一化层中存在P’个批归一化层时,将所述P’个批归一化层中的每个批归一化层与所述每个批归一化层对应的前一网络层分别进行合并,其中,所述P’个批归一化层中的每个批归一化层的前一网络层均为卷积层/全连接层,1≤P’≤P。
10.根据权利要求9所述的装置,其特征在于,还包括目标网络层确定模块,用于:
在存在N个所述目标网络层时,获取所述N个所述目标网络层分别对应的等效偏置值中最小的等效偏置值,其中,N为大于1的整数,并将所述最小的等效偏置值所对应的网络层确定为目标网络层;
或者,用于在存在N个所述目标网络层时,将N个所述目标网络层中的最后一个网络层确定为目标网络层。
CN201811590504.8A 2018-12-25 2018-12-25 一种神经网络批归一化的优化方法及装置 Active CN109800859B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201811590504.8A CN109800859B (zh) 2018-12-25 2018-12-25 一种神经网络批归一化的优化方法及装置
US17/257,314 US11270208B2 (en) 2018-12-25 2019-11-28 Neural network batch normalization optimization method and apparatus
PCT/CN2019/121522 WO2020134829A1 (zh) 2018-12-25 2019-11-28 一种神经网络批归一化的优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811590504.8A CN109800859B (zh) 2018-12-25 2018-12-25 一种神经网络批归一化的优化方法及装置

Publications (2)

Publication Number Publication Date
CN109800859A true CN109800859A (zh) 2019-05-24
CN109800859B CN109800859B (zh) 2021-01-12

Family

ID=66557498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811590504.8A Active CN109800859B (zh) 2018-12-25 2018-12-25 一种神经网络批归一化的优化方法及装置

Country Status (3)

Country Link
US (1) US11270208B2 (zh)
CN (1) CN109800859B (zh)
WO (1) WO2020134829A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020134829A1 (zh) * 2018-12-25 2020-07-02 深圳云天励飞技术有限公司 一种神经网络批归一化的优化方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199536A (zh) * 2014-07-23 2014-12-10 西安空间无线电技术研究所 一种基于bp神经网络的fpga动态功耗估算方法
US20170032222A1 (en) * 2015-07-30 2017-02-02 Xerox Corporation Cross-trained convolutional neural networks using multimodal images
CN108171323A (zh) * 2016-12-28 2018-06-15 上海寒武纪信息科技有限公司 一种人工神经网络计算装置和方法
CN108345939A (zh) * 2017-01-25 2018-07-31 微软技术许可有限责任公司 基于定点运算的神经网络
CN108875504A (zh) * 2017-11-10 2018-11-23 北京旷视科技有限公司 基于神经网络的图像检测方法和图像检测装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2763398B2 (ja) * 1990-11-20 1998-06-11 キヤノン株式会社 パターン認識装置
US11423311B2 (en) * 2015-06-04 2022-08-23 Samsung Electronics Co., Ltd. Automatic tuning of artificial neural networks
US10832135B2 (en) * 2017-02-10 2020-11-10 Samsung Electronics Co., Ltd. Automatic thresholds for neural network pruning and retraining
KR102415508B1 (ko) * 2017-03-28 2022-07-01 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
CN108734268A (zh) 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质
CN107451653A (zh) * 2017-07-05 2017-12-08 深圳市自行科技有限公司 深度神经网络的计算方法、装置及可读存储介质
JP6933367B2 (ja) * 2017-09-20 2021-09-08 Tokyo Artisan Intelligence株式会社 ニューラルネットワーク回路装置、システム、処理方法および実行プログラム
US11354888B2 (en) * 2018-11-16 2022-06-07 GM Global Technology Operations LLC Method and apparatus for a neural network
CN109800859B (zh) * 2018-12-25 2021-01-12 深圳云天励飞技术有限公司 一种神经网络批归一化的优化方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199536A (zh) * 2014-07-23 2014-12-10 西安空间无线电技术研究所 一种基于bp神经网络的fpga动态功耗估算方法
US20170032222A1 (en) * 2015-07-30 2017-02-02 Xerox Corporation Cross-trained convolutional neural networks using multimodal images
CN108171323A (zh) * 2016-12-28 2018-06-15 上海寒武纪信息科技有限公司 一种人工神经网络计算装置和方法
CN108345939A (zh) * 2017-01-25 2018-07-31 微软技术许可有限责任公司 基于定点运算的神经网络
CN108875504A (zh) * 2017-11-10 2018-11-23 北京旷视科技有限公司 基于神经网络的图像检测方法和图像检测装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王磊: "基于轻量级计算平台的卷及神经网络研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020134829A1 (zh) * 2018-12-25 2020-07-02 深圳云天励飞技术有限公司 一种神经网络批归一化的优化方法及装置

Also Published As

Publication number Publication date
US11270208B2 (en) 2022-03-08
US20210182685A1 (en) 2021-06-17
CN109800859B (zh) 2021-01-12
WO2020134829A1 (zh) 2020-07-02

Similar Documents

Publication Publication Date Title
CN106709565A (zh) 一种神经网络的优化方法及装置
CN112163601B (zh) 图像分类方法、系统、计算机设备及存储介质
CN107967516A (zh) 一种基于迹范数约束的神经网络的加速与压缩方法
CN108154232A (zh) 人工神经网络的剪枝方法、装置、设备及可读存储介质
CN108664993B (zh) 一种密集权重连接的卷积神经网络图像分类方法
CN109690530A (zh) 模型训练方法及其节点、网络及存储装置
CN111831355B (zh) 权重精度配置方法、装置、设备及存储介质
CN112818588B (zh) 一种电力系统的最优潮流计算方法、装置及存储介质
CN111831359B (zh) 权重精度配置方法、装置、设备及存储介质
CN116644804A (zh) 分布式训练系统、神经网络模型训练方法、设备和介质
CN114283320B (zh) 基于全卷积的无分支结构目标检测方法
CN109615071A (zh) 一种高能效的神经网络处理器、加速系统及方法
CN112308227B (zh) 神经网络架构搜索方法、装置、终端设备以及存储介质
CN115329744B (zh) 一种自然语言处理方法、系统、设备及存储介质
CN109102468A (zh) 图像增强方法、装置、终端设备及存储介质
CN111831354B (zh) 数据精度配置方法、装置、芯片、芯片阵列、设备及介质
Huang et al. The $$\mathcal {Q} $$-cut representation of one-loop integrands and unitarity cut method
CN109800859A (zh) 一种神经网络批归一化的优化方法及装置
CN114186671A (zh) 一种大批量的去中心化分布式图像分类器训练方法和系统
CN113361567B (zh) 图像处理方法、装置、电子设备和存储介质
CN112561050A (zh) 一种神经网络模型训练方法及装置
CN111831356B (zh) 权重精度配置方法、装置、设备及存储介质
CN107154261A (zh) 一种基于bp神经网络的人工智能优化方法
CN116581786A (zh) 一种分散式电网电压振荡抑制装置投切方法
CN111738432A (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