神经网络层间激活值量化方法及装置制造方法及图纸

技术编号:18942167 阅读:26 留言:0更新日期:2018-09-15 11:24
一种神经网络层间激活值量化方法及装置,其中,所述方法包括:获取神经网络上一级激活层的激活值;根据上一级激活层的激活值得到当前激活层的激活值极限;根据当前激活层的激活值极限和上一级激活层的激活值确定当前激活层各个激活值。从而能够将上一级激活层的激活值信息传递到当前激活层,相对于现有技术中固定设定极限的方式,本发明专利技术提供的技术方案能够根据上一级激活层的激活值动态适应激活值的变化,从而减小量化的估计偏差。

Neural network interlayer activation value quantization method and device

A method and apparatus for quantifying the activation values of neural network layers is described, wherein the method includes: obtaining the activation values of the upper activation layer of the neural network; obtaining the activation limits of the current activation layer according to the activation values of the upper activation layer; and determining when the activation values of the current activation layer and the activation values of the upper activation layer are determined according to the activation limits of the current activation layer and the activation values Activation level before activation. Thus, the activation value information of the upper activation layer can be transmitted to the current activation layer, and the technical scheme provided by the present invention can dynamically adapt to the change of the activation value according to the activation value of the upper activation layer, so as to reduce the estimation error of quantization.

【技术实现步骤摘要】
神经网络层间激活值量化方法及装置
本专利技术涉及神经网络
,具体涉及一种神经网络层间激活值量化方法及装置。
技术介绍
随着人工智能的发展,尤其是卷积神经网络的发展,其在智能监控领域得到了广泛的运用,成为不可缺少的一个工具,比如人脸识别、车辆检测、物体识别等。但是随着现代卷积神经网络的层数加深,网络的复杂度也变得越来越大,比如说对于一个卷积神经网络,其卷积层数量可以超过10层,此外所有卷积层的计算量几乎占据了整个网络计算量的80%。这就导致类似的卷积神经网络不能够运行在监控摄像头等嵌入式设备上。因此,如何降低神经网络的计算复杂度,是神经网络算法所需要解决的问题。现有的量化技术会对神经网络的层间激活和每一层的权重进行一些量化操作,从而使得神经网络中所有的矩阵乘法变成指数移位操作。现有技术中,为了保证量化值不超过位宽(bitwidth)所表达的范围,都会为卷积神经网络的每一层预先设立一个最小值minV和最大值maxV。在为卷积神经网络的每一层确定最大值和最小值的时候需要通过如下几步来得到:首先训练一个浮点卷积神经网络,得到一个预训练模型;而后,取一小部分训练数据,并送入预训练模型,得到卷积神经网络的每一层的激活输出;根据这些激活和权重,通过统计算法得到层间激活的分布范围;根据分布范围以及位宽(bitwidth)估计得到最小值minV和最大值maxV;根据最大值和最小值对网络进行微调训练。一个良好的量化方法需要在对网络完成量化后还能保持精度不下降。这就要求在量化过程中对激活的分布范围有精确的估计。如果估计不准确,就会导致量化之后的卷积神经网络模型在优化空间中偏离最优模型。本申请人发现:现有的量化算法都是根据某一个固定模型来预先确定量化的最大值和最小值,没有考虑到卷积神经网络的激活在训练过程中是动态变化的,这就导致对量化最大值和最小值的估计偏差。因此,如何减小量化的估计偏差成为亟待解决的技术问题。
技术实现思路
本专利技术要解决的技术问题在于如何减小量化的估计偏差。为此,根据第一方面,本专利技术实施例公开了一种神经网络层间激活值量化方法,包括:获取神经网络上一级激活层的激活值;根据上一级激活层的激活值得到当前激活层的激活值极限;根据当前激活层的激活值极限和上一级激活层的激活值确定当前激活层各个激活值。可选地,根据当前激活层的激活值极限和上一级激活层的激活值确定当前激活层各个激活值包括:在当前激活层的激活值极限范围内对上一级激活层的激活值进行取整得到当前激活层各个激活值。可选地,当前激活层的激活值极限包括当前激活层的最大激活值和当前激活层的最小激活值;在当前激活层的激活值极限范围内对上一级激活层的激活值进行取整得到当前激活层各个激活值包括:根据用于表征激活值的比特位数确定的步长对上一级激活层的激活值进行等分取整;在当前激活层的激活值极限范围内对等分取整后的上一级激活层的激活值进行计算得到当前激活层各个激活值。可选地,上一级激活层的激活值包括:上一级激活层的最大激活值;根据上一级激活层的激活值得到当前激活层的激活值极限包括:对上一级激活层的最大激活值进行加权得到当前激活层的最大激活值;根据当前激活层的最大激活值得到当前激活层的最小激活值。可选地,对上一级激活层的最大激活值进行加权得到当前激活层的最大激活值采用如下公式得到:cur_maxi=α×cur_maxi+(1-α)×cur_maxi-1其中,cur_maxi为当前激活层的最大激活值,α为滑动平均超参数,i为迭代次数,cur_maxi-1为上一级激活层的最大激活值。可选地,根据当前激活层的最大激活值得到当前激活层的最小激活值包括:根据当前激活层的最大激活值采用线性或者非线性等步长的方式得到当前激活层的最小激活值。根据第二方面,本专利技术实施例公开了一种神经网络层间激活值量化装置,包括:激活值获取模块,用于获取神经网络上一级激活层的激活值;极限确定模块,用于根据上一级激活层的激活值得到当前激活层的激活值极限;激活量化模块,用于根据当前激活层的激活值极限和上一级激活层的激活值确定当前激活层各个激活值。可选地,激活量化模块具体用于在当前激活层的激活值极限范围内对上一级激活层的激活值进行取整得到当前激活层各个激活值。可选地,当前激活层的激活值极限包括当前激活层的最大激活值和当前激活层的最小激活值;激活量化模块包括:等分单元,用于根据用于表征激活值的比特位数确定的步长对上一级激活层的激活值进行等分取整;计算单元,用于在当前激活层的激活值极限范围内对等分取整后的上一级激活层的激活值进行计算得到当前激活层各个激活值。可选地,上一级激活层的激活值包括:上一级激活层的最大激活值;极限确定模块包括:最大激活值单元,用于对上一级激活层的最大激活值进行加权得到当前激活层的最大激活值;最小激活值单元,用于根据当前激活层的最大激活值得到当前激活层的最小激活值。本专利技术技术方案,具有如下优点:本专利技术实施例提供的神经网络层间激活值量化方法及装置,由于根据上一级激活层的激活值得到当前激活层的激活值极限,而后根据当前激活层的激活值极限和上一级激活层的激活值确定当前激活层各个激活值,从而能够将上一级激活层的激活值信息传递到当前激活层,相对于现有技术中固定设定极限的方式,本专利技术提供的技术方案能够根据上一级激活层的激活值动态适应激活值的变化,从而减小量化的估计偏差。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中一种神经网络层间激活值量化方法流程图;图2为本专利技术实施例中一种神经网络层间激活值量化装置原理框图;图3a为本专利技术实施例中一种神经网络训练过程损失函数曲线对比示意图;图3b为本专利技术实施例中一种神经网络准确度曲线对比示意图;图4为本专利技术实施例中一种神经网络动态量化阈值曲线对比示意图。具体实施方式下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发本文档来自技高网
...

【技术保护点】
1.一种神经网络层间激活值量化方法,其特征在于,包括:获取神经网络上一级激活层的激活值;根据所述上一级激活层的激活值得到当前激活层的激活值极限;根据所述当前激活层的激活值极限和所述上一级激活层的激活值确定当前激活层各个激活值。

【技术特征摘要】
1.一种神经网络层间激活值量化方法,其特征在于,包括:获取神经网络上一级激活层的激活值;根据所述上一级激活层的激活值得到当前激活层的激活值极限;根据所述当前激活层的激活值极限和所述上一级激活层的激活值确定当前激活层各个激活值。2.如权利要求1所述的神经网络层间激活值量化方法,其特征在于,所述根据所述当前激活层的激活值极限和所述上一级激活层的激活值确定当前激活层各个激活值包括:在所述当前激活层的激活值极限范围内对所述上一级激活层的激活值进行取整得到所述当前激活层各个激活值。3.如权利要求2所述的神经网络层间激活值量化方法,其特征在于,所述在所述当前激活层的激活值极限范围内对所述上一级激活层的激活值进行取整得到所述当前激活层各个激活值包括:根据用于表征激活值的比特位数确定的步长对所述上一级激活层的激活值进行等分取整;在所述当前激活层的激活值极限范围内对所述等分取整后的所述上一级激活层的激活值进行计算得到所述当前激活层各个激活值。4.如权利要求1-3任意一项所述的神经网络层间激活值量化方法,其特征在于,所述上一级激活层的激活值包括:所述上一级激活层的最大激活值;所述根据所述上一级激活层的激活值得到当前激活层的激活值极限包括:对所述上一级激活层的最大激活值进行加权得到所述当前激活层的最大激活值;根据所述当前激活层的最大激活值得到所述当前激活层的最小激活值。5.如权利要求4所述的神经网络层间激活值量化方法,其特征在于,所述对所述上一级激活层的最大激活值进行加权得到所述当前激活层的最大激活值采用如下公式得到:cur_maxi=α×cur_maxi+(1-α)×cur_maxi-1其中,cur_maxi为当前激活层的最大激活值,α为滑动平均超参数,i为迭...

【专利技术属性】
技术研发人员:许震王运节张如高
申请(专利权)人:新智认知数据服务有限公司
类型:发明
国别省市:上海,31

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

1