一种人工神经网络计算装置和方法制造方法及图纸

技术编号:18238300 阅读:27 留言:0更新日期:2018-06-17 01:48
本公开提供了一种人工神经网络计算方法,利用人工神经网络计算装置对多层人工神经网络的进行训练,包括:对多层人工神经网络中的各层依次执行正向运算,对于多层人工神经网络的每一层,正向运算包括:映射单元对输入数据进行处理,删除输入数据中小于或等于阈值或者输入数据的绝对值小于或等于阈值的输入数据,以得到处理后的输入数据;存储单元存储处理后的输入数据;运算单元读取处理后的输入数据,进行人工神经网络运算,得到人工神经网络的输出数据;按照与正向运算相反的顺序,对多层人工神经网络中的各层依次执行反向运算;对多层人工神经网络中的各层进行权值更新;重复执行上述各个步骤多次,完成多层人工神经网络的训练。 1

An artificial neural network computing device and method

An artificial neural network calculation method is provided in the public. The artificial neural network computing device is used to train the multilayer artificial neural network, including the forward operation to each layer of the multilayer artificial neural network. For each layer of the multilayer artificial neural network, the forward operation includes the mapping unit to the transmission. The data is processed to remove the input data that is less than or equal to the threshold value or the absolute value of the input data is less than or equal to the threshold value in the input data to get the input data after processing; the storage unit stores the input data after the processing; the operation unit reads the input data after the processing and performs the artificial neural network operation. To the output data of the artificial neural network, the reverse operation is performed on the layers in the multilayer artificial neural network in turn in the opposite direction to the forward operation, and the weights of each layer in the multilayer artificial neural network are updated, and repeated execution of the above steps to complete the training of the multilayer artificial neural network. One

【技术实现步骤摘要】
一种人工神经网络计算装置和方法
本公开涉及人工神经网络
,更具体地涉及一种人工神经网络计算装置和方法。
技术介绍
人工神经网络(ArtificialNeuralNetworks,ANNs)简称为神经网络(NNs),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间的相互连接关系,从而达到处理信息的目的。神经网络用到的算法就是向量乘法,并且广泛采用符号函数及其各种逼近。就像大脑里的神经网络一样,神经网络由一些互相连接的节点组成,如图1所示,每个圆圈表示一个神经元,每个箭头表示两个神经元之间的连接,连接又被称为权值。神经元的计算公式可以简单的描述成:其中,xi表示所有和输出神经元相连接的输入神经元,wi表示xi和输出神经元之间对应的权值。f(x)是一个非线性函数,通常称作激活函数,常用的函数如:等。神经网络被广泛应用于各种应用场景:计算视觉、语音识别和自然语言处理等。在近几年的时间里,神经网络的规模一直在增长。在1998年,Lecun用于手写字符识别的神经网络的规模小于1M个权值;在2012年,krizhevsky用于参加ImageNet竞赛的规模是60M个权值。公开内容(一)要解决的技术问题有鉴于此,本公开的主要目的在于提供一种人工神经网络计算装置和方法,以克服上述现有技术的缺陷。(二)技术方案根据本公开的一个方面,提供了一种人工神经网络计算方法,利用人工神经网络计算装置对多层人工神经网络的进行训练,所述人工神经网络计算装置包括:映射单元、存储单元和运算单元,所述人工神经网络计算方法包括:对多层人工神经网络中的各层依次执行正向运算,对于多层人工神经网络的每一层,所述正向运算包括:所述映射单元对输入数据进行处理,删除输入数据中小于或等于阈值或者输入数据的绝对值小于或等于阈值的输入数据,以得到处理后的输入数据;所述存储单元存储所述处理后的输入数据;所述运算单元读取所述处理后的输入数据,进行人工神经网络运算,得到人工神经网络的输出数据;按照与正向运算相反的顺序,对多层人工神经网络中的各层依次执行反向运算;对多层人工神经网络中的各层进行权值更新;重复执行上述各个步骤多次,完成多层人工神经网络的训练。在本公开的一些实施例中,所述人工神经网络计算装置还包括:第一输入缓存和第二输入缓存;所述对多层人工神经网络中的各层进行权值更新包括:对于人工神经网络的每一层,所述第一输入缓存和所述第二输入缓存分别存储该层的权值和权值梯度;所述运算单元从所述第二输入缓存接收所述权值梯度,然后使用所述权值梯度对所述权值进行更新,得到更新后的权值。在本公开的一些实施例中,所述输入数据包括输入神经元和权值;所述映射单元对输入数据进行处理,以得到处理后的输入数据包括:所述映射单元由权值得到权值的连接关系数据,并将所述权值中数值或绝对值小于或者等于第一阈值的权值删除,得到处理后的权值;所述映射单元基于权值的连接关系数据对输入神经元进行处理,得到处理后的输入神经元。在本公开的一些实施例中,所述输入数据包括输入神经元和权值;所述映射单元对输入数据进行处理,以得到处理后的输入数据包括:所述映射单元由输入神经元得到输入神经元的连接关系数据,并将所述输入神经元中数值或绝对值小于或者等于第二阈值的输入神经元删除,得到处理后的输入神经元;所述映射单元基于输入神经元的连接关系数据对权值进行处理,得到处理后的权值。在本公开的一些实施例中,所述输入神经元的连接关系数据和所述权值的连接关系数据以直接索引或者步长索引的形式表示。在本公开的一些实施例中,当所述输入神经元的连接关系数据以直接索引的形式表示时,所述连接关系数据为由0和1组成的字符串,0表示所述输入神经元的数值或绝对值小于或者等于第二阈值,1表示所述输入神经元的数值或绝对值大于所述第二阈值;当所述输入神经元的连接关系数据以步长索引形式表示时,所述连接关系数据为值为非零的输入神经元与上一个值为非零的输入神经元之间的距离值组成的字符串。在本公开的一些实施例中,当所述权值的连接关系数据以直接索引的形式表示时,所述连接关系数据为由0和1组成的字符串,0表示所述权值的数值或绝对值小于或者等于所述第一阈值,1表示所述权值的数值或绝对值大于所述第一阈值;当所述权值的连接关系数据以步长索引的形式表示时,所述连接关系数据为与输出神经元有连接的输入神经元的与上一个与所述输出神经元有连接的输入神经元之间的距离值组成的字符串。在本公开的一些实施例中,对于多层人工神经网络的每一层,所述反向运算包括:权值梯度计算步骤和输入神经元梯度计算步骤;所述权值梯度计算步骤包括:所述运算单元由人工神经网络每一层的输出神经元梯度和输入神经元得到该层的权值梯度;所述输入神经元梯度计算步骤包括:所述映射单元将输出神经元梯度和处理后的权值存储至存储单元;所述运算单元读取输出神经元梯度和处理后的权值,进行人工神经网络运算,得到输入神经元梯度。在本公开的一些实施例中,将人工神经网络上一层的输出数据作为下一层的输入数据;或者,对人工神经网络上一层的输出数据进行层间操作,将操作结果作为下一层的输入数据;其中,对于人工神经网络的任意相邻两层:第一层与第二层,在正向运算中,所述上一层指所述第一层,所述下一层指所述第二层;在反向运算中,所述上一层指所述第二层,所述下一层指所述第一层。在本公开的一些实施例中,所述层间操作包括向量运算、非线性运算。(三)有益效果从上述技术方案可以看出,本公开的人工神经网络计算装置和方法具有以下有益效果:(1)将输入神经元与权值、输出神经元与输入神经元、输出神经元与权值以数据集的格式进行存储,进行前向运算和反向运算时,可以直接对二者进行运算,无需通过索引数组寻找对应的输入、输出神经元和权值,减少了访问存储器的次数,简化了运算,提高了运算速度和性能。(2)可以对人工神经网络的连接关系数据进行更新,提高了人工神经网络运算的精度;(3)采用针对多层人工神经网络运算的专用指令和运算单元,解决了CPU和GPU运算性能不足,前端译码开销大的问题,有效提高了对多层人工神经网络运算算法的支持;(4)通过采用针对多层人工神经网络运算的专用片上缓存,充分挖掘了输入神经元和权值数据的重用性,避免了反复向内存读取这些数据,降低了内存访问带宽,避免了内存带宽成为多层人工神经网络运算及其训练算法性能瓶颈的问题。附图说明图1是一种人工神经网络的示意图;图2是本公开一实施例的人工神经网络计算装置的结构示意图;图3是图2所示实施例的映射关系示意图;图4是本公开一实施例的一种人工神经网络的示意图;图5是图4所示的人工神经网络计算装置连接关系示意图;图6是本公开另一实施例的人工神经网络计算装置的结构示意图;图7是图6所示实施例的映射关系示意图;图8是本公开又一实施例的人工神经网络计算装置的结构示意图;图9是图8所示实施例的映射关系示意图;图10是本公开再一实施例的人工神经网络计算装置的结构示意图;图11是图10所示实施例的映射关系示意图;图12是本公开实施例的一种人工神经网络计算方法的正向运算流程图;图13是本公开实施例的一种人工神经网络计算方法的权值更新流程图;图14是本公开实施例本文档来自技高网...
一种人工神经网络计算装置和方法

【技术保护点】
1.一种人工神经网络计算方法,其特征在于,利用人工神经网络计算装置对多层人工

【技术特征摘要】
2016.12.28 CN 20161123443811.一种人工神经网络计算方法,其特征在于,利用人工神经网络计算装置对多层人工神经网络的进行训练,所述人工神经网络计算装置包括:映射单元、存储单元和运算单元,所述人工神经网络计算方法包括:对多层人工神经网络中的各层依次执行正向运算,对于多层人工神经网络的每一层,所述正向运算包括:所述映射单元对输入数据进行处理,删除输入数据中小于或等于阈值或者输入数据的绝对值小于或等于阈值的输入数据,以得到处理后的输入数据;所述存储单元存储所述处理后的输入数据;所述运算单元读取所述处理后的输入数据,进行人工神经网络运算,得到人工神经网络的输出数据;按照与正向运算相反的顺序,对多层人工神经网络中的各层依次执行反向运算;对多层人工神经网络中的各层进行权值更新;重复执行上述各个步骤多次,完成多层人工神经网络的训练。2.如权利要求1所述的人工神经网络计算方法,其特征在于,所述人工神经网络计算装置还包括:第一输入缓存和第二输入缓存;所述对多层人工神经网络中的各层进行权值更新包括:对于人工神经网络的每一层,所述第一输入缓存和所述第二输入缓存分别存储该层的权值和权值梯度;所述运算单元从所述第二输入缓存接收所述权值梯度,然后使用所述权值梯度对所述权值进行更新,得到更新后的权值。3.根据权利要求1或2所述的人工神经网络计算方法,其特征在于,所述输入数据包括输入神经元和权值;所述映射单元对输入数据进行处理,以得到处理后的输入数据包括:所述映射单元由权值得到权值的连接关系数据,并将所述权值中数值或绝对值小于或者等于第一阈值的权值删除,得到处理后的权值;所述映射单元基于权值的连接关系数据对输入神经元进行处理,得到处理后的输入神经元。4.根据权利要求1或2所述的人工神经网络计算方法,其特征在于,所述输入数据包括输入神经元和权值;所述映射单元对输入数据进行处理,以得到处理后的输入数据包括:所述映射单元由输入神经元得到输入神经元的连接关系数据,并将所述输入神经元中数值或绝对值小于或者等于第二阈值的输入神经元删除,得到处理后的输入神经元;所述映射单元基于输入神经元的连接关系数据对权值进行处理,得到处理...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1