面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路制造技术

技术编号:24123826 阅读:48 留言:0更新日期:2020-05-13 03:55
本发明专利技术公开了一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,包括权值缓冲器,用于存储深度神经网络当中的权值数据;输入/结果缓冲器,用于存储深度神经网络的输入特征图数据以及输出特征图数据;脉动阵列,包含若干个处理单元,且所有处理单元构成一维串行结构或二维阵列结构,用于执行卷积运算当中的乘和累加运算以及批处理归一化的功能。本发明专利技术设计了一个高效的卷积神经网络训练体系结构,其核心计算单元是脉动阵列,脉动阵列当中的计算单元支持卷积神经网络训练算法中的前向传播和反向传播当中的批处理归一化层的操作,能实现范围批处理归一化算法的硬件加速,具有实现高效的优点。

Hardware circuit of range batch normalization algorithm for deep neural network training and reasoning

【技术实现步骤摘要】
面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路
本专利技术涉及深度神经网络训练的硬件加速器,具体涉及一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路。
技术介绍
近几年,卷积神经网络在语音、图像识别(包括人脸、常规物体)以及自然语言处理等方面均获创新发展。卷积神经网络囊括卷积层、池化层、激活层和全相连层。其中,卷积层担负着特征的抽象和提取的任务;池化层中的池化操作紧接卷积运算,它的作用是特征融合和降低复杂度;激活函数在卷积层和全相连层进行操作,卷积神经网络中通常运用线性整流函数等多段线性函数来激活,它的作用是提升非线性性;全连接层则负责逻辑推断和去除空间信息。反向传播算法是一种神经网络学习算法,主要思想是通过不断将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐含层反向直至输入层。在反传过程中计算每层的每个神经元的误差并调整各层神经元的权值和阈值,逐渐降低误差至最低。反向传播算法分为前向传播和误差的反向传播两个过程。前向传播时,输入样本从输入层传入,经隐含层的处理,传向输出层。若输出层的实际输出与期望输出误差较大,则转入误差的反向传播过程。如图1所示,误差反传将输出误差以某种形式通过隐含层向输入层逐层反传,并将误差分摊到各层的神经元,从而获得各层神经元的误差信号,并将该误差信号作为修正各神经元权值的依据。通过周而复始的权值调整过程,直到网络输出的误差减小到可接受程度,或达到预先设定的学习次数,终止过程。卷积神经网络近年来得到了广泛的应用。然而,它们不断增长的参数量使得用图形处理单元(GraphProcessingUnit,简称GPU)对它们进行训练变得高耗能、高耗时,阻碍了其发展。这使得研究者们把注意力转向了使用更加高能效的硬件对卷积神经网络进行训练。批处理归一化(BatchNormalization,简称BN)层已经被广泛地使用于最先进的卷积神经网络当中,因为它是加速卷积神经网络训练的一个不可或缺的层。批处理归一化(BatchNormalization,简称BN)算法通过批处理归一化解决了神经网络内部的协变量位移问题。即解决了由于大量累加过程导致的神经网络训练的反向传播中的梯度爆炸和梯度消失问题。其原理是计算出所有值的均值和平方差,从而对其进行归一化操作,使之满足(0,1)正态分布。之后通过两个调整参数γ和β,适当调整其分布,步骤描述如下:输入:批当中的x的值β={x1…xm};γ和β是需要训练的参数。输出:{yi=BN(xi)}步骤:1、计算小批的值的均值μ:上式中,m代表小批(minibatch),x代表小批中的每个累加和的值。2、计算批的标准差σ:上式中,m代表小批(minibatch),x代表小批中的每个累加和的值,μ代表步骤1中的批的值的均值。3、计算归一化后的值,使之满足(0,1)正态分布:上式中,x代表小批中的每个累加和的值,μ代表步骤1中的批的值的均值,σ代表步骤2中计算得到的批的标准差,ε代表一个常数,它确保当标准差为0时,上式分母不为0。4、使用调整参数适当调整输出,使之符合所学习的数据集的分布:上式中,y代表调整过的输出,x代表调整前的批中的累加和的值,γ和β代表调整参数。范围批处理归一化算法是对批处理归一化算法的改进。范围批处理归一化算法改进了BN算法如下:上式中,C(n)=2*(lnN)1/2,代表归一化后的值,x代表归一化前的值,μ代表步骤1种计算的批的均值,range(x-μ)代表xi-μ的最大值与最小值之差。其中,公式(5)对应公式(3),分子与公式(3)相同,分母使用C(n)*range(xi-μ)来近似标准差。这就是范围批处理归一化相较于批处理归一化的核心改进。其中C(n)是与批次大小相关的一个数,即C(n)=2*(lnN)1/2,N是批次大小。而range(xi-μ)则代表了x的分布范围,即一个批次中的x最大值减去x最小值。这个改进简化了计算,使得计算标准差所需的一系列操作都可以被省去,节省了能耗,降低了延迟。随着卷积神经网络中卷积层的计算量占比下降,批处理归一化层的计算重要性逐步上升。然而,传统的卷积神经网络训练加速器没有关注批处理归一化层的高效实现。在已有的工作当中,批处理归一化层的操作是交由软件进行执行的,存在执行效率低的问题。
技术实现思路
本专利技术要解决的技术问题:针对批处理归一化层目前没有高效硬件实现这一现状,本专利技术提供一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,本专利技术设计了一个高效的卷积神经网络训练体系结构,其核心计算单元是脉动阵列,脉动阵列当中的计算单元支持卷积神经网络训练算法中的前向传播和反向传播当中的批处理归一化层的操作,能实现范围批处理归一化算法的硬件加速,具有实现高效的优点。为了解决上述技术问题,本专利技术采用的技术方案为:一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,包括:权值缓冲器,用于存储深度神经网络当中的权值数据;输入/结果缓冲器,用于存储深度神经网络的输入特征图数据以及输出特征图数据;脉动阵列,包含若干个处理单元,且所有处理单元构成一维串行结构或二维阵列结构,用于执行卷积运算当中的乘和累加运算以及批处理归一化的功能;所述权值缓冲器、输入/结果缓冲器分别与脉动阵列相连。可选地,所述处理单元包括:乘法和累加模块,用于对输入特征图input_in和输入权值w_in执行乘法和累加操作,并将输入特征图input_in作为信号input_out、输入权值w_in作为信号w_out传递给临近的处理单元使用,将累加的计算结果通过信号result_out输出;批处理归一化模块,用于对输出结果信号result_out执行批处理归一化操作;第一多路选择器,用于在使能信号BN的控制下选择输出输出结果信号result_out或者批处理归一化模块的输出信号,所述乘法和累加模块的以及批处理归一化模块分别与第一多路选择器的输入端相连。可选地,所述乘法和累加模块包括判断子模块、输入寄存器、权值寄存器、乘法模块、累加模块以及结果寄存器,所述判断子模块对输入特征图input_in和输入权值w_in进行是否为0的判断,如果输入特征图input_in或输入权值w_in均非0则将输入特征图input_in和输入权值w_in通过输入寄存器、权值寄存器输入乘法模块进行乘法操作后再输入累加模块,否则跳过乘法操作直接输入累加模块;所述累加模块将乘法模块输出结果或者0和上一个处理单元输出的结果输入result_in进行和相加后放入结果寄存器当中,同时输入特征图input_in作为输出特征图input_out、输入权值w_in作为输出权值w_out传递至下一级处理单元,当累加过程结束后放入结果寄存器当中的计算结果x通过result_out信号传递至下一级处理单元。可本文档来自技高网
...

【技术保护点】
1.一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,其特征在于包括:/n权值缓冲器,用于存储深度神经网络当中的权值数据;/n输入/结果缓冲器,用于存储深度神经网络的输入特征图数据以及输出特征图数据;/n脉动阵列,包含若干个处理单元,且所有处理单元构成一维串行结构或二维阵列结构,用于执行卷积运算当中的乘和累加运算以及批处理归一化的功能;/n所述权值缓冲器、输入/结果缓冲器分别与脉动阵列相连。/n

【技术特征摘要】
1.一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,其特征在于包括:
权值缓冲器,用于存储深度神经网络当中的权值数据;
输入/结果缓冲器,用于存储深度神经网络的输入特征图数据以及输出特征图数据;
脉动阵列,包含若干个处理单元,且所有处理单元构成一维串行结构或二维阵列结构,用于执行卷积运算当中的乘和累加运算以及批处理归一化的功能;
所述权值缓冲器、输入/结果缓冲器分别与脉动阵列相连。


2.根据权利要求1所述的面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,其特征在于,所述处理单元包括:
乘法和累加模块,用于对输入特征图input_in和输入权值w_in执行乘法和累加操作,并将输入特征图input_in作为信号input_out、输入权值w_in作为信号w_out传递给临近的处理单元使用,将累加的计算结果通过信号result_out输出;
批处理归一化模块,用于对输出结果信号result_out执行批处理归一化操作;
第一多路选择器,用于在使能信号BN的控制下选择输出输出结果信号result_out或者批处理归一化模块的输出信号,所述乘法和累加模块的以及批处理归一化模块分别与第一多路选择器的输入端相连。


3.根据权利要求2所述的面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,其特征在于,所述乘法和累加模块包括判断子模块、输入寄存器、权值寄存器、乘法模块、累加模块以及结果寄存器,所述判断子模块对输入特征图input_in和输入权值w_in进行是否为0的判断,如果输入特征图input_in或输入权值w_in均非0则将输入特征图input_in和输入权值w_in通过输入寄存器、权值寄存器输入乘法模块进行乘法操作后再输入累加模块,否则跳过乘法操作直接输入累加模块;所述累加模块将乘法模块输出结果或者0和上一个处理单元输出的结果输入result_in进行和相加后放入结果寄存器当中,同时输入特征图input_in作为输出特征图input_out、输入权值w_in作为输出权值w_out传递至下一级处理单元,当累加过程结束后放入结果寄存器当中的计算结果x通过result_out信号传递至下一级处理单元。


4.根据权利要求2所述的面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,其特征在于,所述批处理归一化模块包括:
第一模块,包括最大值比较模块、最大值寄存器、最小值比较模块、最小值寄存器、累加模块、部分和寄存...

【专利技术属性】
技术研发人员:王蕾杨智杰李石明田烁康子扬郭莎莎王树泉曲连华王永文郭阳徐炜遐
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

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

1