The present invention provides an apparatus and method for performing convolution neural network reverse training, which includes the instruction device storage unit, controller unit, data access unit, interconnection module, operation module, operation module and a plurality of from. For each layer, the first choice of input neurons based on vector data convolution window, and then based on the data obtained from a gradient layer and a layer of data from the device as the unit input, calculate and update the convolution kernel, then according to the data, the convolution kernel gradient and activation function the guide function, the calculated data of the gradient device output, and stored in the memory to output to the previous layer back propagation calculation. The invention will be involved in the calculation of the data and the weight parameter is temporarily stored in the scratchpad memory, which can be more flexibly and effectively support the convolutional neural network training reverse operation, enhance the performance of the application contains a large number of visits.
【技术实现步骤摘要】
一种用于执行卷积神经网络训练的装置和方法
本专利技术涉及一种用于执行卷积神经网络反向训练的装置和方法,用于根据卷积神经网络反向训练运算指令高效灵活地执行卷积神经网络反向训练运算,能够很好地解决当前计算机领域越来越多的算法包含大量卷积神经网络反向训练运算的问题。
技术介绍
卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简单、训练参数少和适应性强、平移、旋转、缩放等特点。由于CNN/DNN的特征检测层通过训练数据进行学习,所以在使用CNN/DNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。本专利技术提供的卷积神经网络训练算法的流程图,如图1所示,其流程包括两个阶段:第一阶段,向前传播阶段:a)从样本集中取一个样本(X,邯),将X输入网络;b)计算相应的实际输出Op。在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算(实际上就是输 ...
【技术保护点】
一种用于执行卷积神经网络反向训练的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、多个从运算模块,其中:指令存储单元用于存储指令;控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及所述多个从运算模块行为的控制信号;数据访问单元执行外部地址空间与所述装置之间的数据或指令读写操作;在每层神经网络反向训练开始计算的阶段,主运算模块通过互连模块向所有的从运算模块传输本层的输入数据;每个从运算模块计算自身的卷积核与输入数据的点积作为中间结果部分和,该卷积核与该中间结果部分和相对应;在从运算模块的计算过程完成后,互连模块逐级将各 ...
【技术特征摘要】
1.一种用于执行卷积神经网络反向训练的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、多个从运算模块,其中:指令存储单元用于存储指令;控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及所述多个从运算模块行为的控制信号;数据访问单元执行外部地址空间与所述装置之间的数据或指令读写操作;在每层神经网络反向训练开始计算的阶段,主运算模块通过互连模块向所有的从运算模块传输本层的输入数据;每个从运算模块计算自身的卷积核与输入数据的点积作为中间结果部分和,该卷积核与该中间结果部分和相对应;在从运算模块的计算过程完成后,互连模块逐级将各从运算模块的输出数据部分和拼接得到本层的中间结果;主运算模块在每一层的计算过程中,利用本层的中间结果完成后续计算。2.根据权利要求1所述的装置,其中,主运算模块包括第一运算单元和第一存储单元,其中:第一运算单元包括向量加法单元以及激活单元,第一运算单元接收来自控制器单元的控制信号,完成主运算模块的各种运算功能;向量加法单元用于实现卷积神经网络反向训练运算中的加偏置操作,该单元的输入为从外部地址空间读取出来的偏置向量,以及通过所述互连模块从从运算模块传送回来的中间结果,输出为偏置向量与中间结果相加后的偏置结果;激活单元用于实现卷积神经网络激活函数导函数乘法操作,该单元的输入为通过所述互连模块从从运算模块传送回来的中间结果,或向量加法单元输出的偏置结果,输出为所述中间结果或偏置结果与激活函数导函数相乘后的输出数据;第一存储单元存储主运算模块5在计算过程中用到的输入输出数据,输入输出数据梯度和卷积核数值。3.根据权利要求1所述的装置,其中:每个从运算模块包括第二运算单元、第二存储单元和第三存储单元;第二运算单元包括向量乘单元以及累加单元,其中,向量乘单元用于实现输入数据和卷积核的对位乘法,累加单元用于实现将对位乘法结果的每一项累加到一起的操作;第二存储单元存储该从运算模块的输入数据和输出的中间结果部分和;第三存储单元存储该从运算模块在计算过程中需要的卷积核数据。4.根据权利要求1所述的装置,其中:首先,其反向训练的每一层计算过程,首先需要依据卷积窗口,从当前层的前一层的输出数据中选取出对应的输入数据,然后依据这部分输入数据和来自当前层的后一层的输出数据梯度进行向量乘向量运算,得到卷积核的梯度,该梯度是一个标量,其卷积核的梯度计算过程为dw=∑xidsi,即每个从运算模块将来自前一层的输入数据x乘以来自后一层的输出数据梯度ds,在卷积窗口遍历完数据之后,对进行求和,得到该卷积核对应的梯度,主运算模块求解当前层所有的从运算模块的卷积核的梯度对应的平方平均数当c大于阈值时t,对所有梯度进行缩放dw′=dw/c*t,最后,依据缩放后的卷积核梯度更新卷积核的值。5.根据权利要求1所述的装置,其中,主运算模块依据卷积核和当前层的输入数据,得到要输出到前一层的数据梯度dx=h(x)∑widsi,其中,ds为与当前层的输入数据x有相互关系的当前层的输出数据梯度,w为该输入数据x与输出数据的梯度ds对应的卷积核数据,h(x)为该输入数据对应的激活函数的导函数的值,即,将卷积核与来自后一层的数据梯度进行乘加运算,然后乘以当前层的输入数据对应的激活函数的导函数的值,得到输出给前一层的数...
【专利技术属性】
技术研发人员:陈云霁,支天,刘少礼,郭崎,陈天石,
申请(专利权)人:北京中科寒武纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。