用于神经网络的处理器和处理方法技术

技术编号:17111110 阅读:40 留言:0更新日期:2018-01-24 22:47
本发明专利技术提供一种用于神经网络的处理器,该处理器包括:存储单元,其用于存储数据和指令;控制单元,其用于获得保存在所述存储单元的指令并发出控制信号;计算单元,其用于从所述存储单元获得神经网络中的一层的节点值和对应的权重值以获得下一层的节点值,其中,当至少待计算元素之一小于阈值时,该计算单元不执行该计算元素的乘法操作,所述待计算元素包括节点值和权重值。利用本发明专利技术的处理器,能够提高神经网络的计算效率并节省功耗。

Processing and processing methods for neural networks

The present invention provides a method for neural network processor, the processor includes a storage unit for storing data and instructions; the control unit, which was used to get stored in the storage unit of the instruction and sends control signal; calculating unit, for from the storage unit to obtain weights of node layer neural network the value and the value corresponding to the node to obtain the next layer of value, which, when at least one of the elements is less than the threshold calculation, the calculation of multiplication operation unit does not perform the calculation of elements, the elements to be calculated including the node value and weight value. The processor of the invention can improve the computational efficiency of the neural network and save power.

【技术实现步骤摘要】
用于神经网络的处理器和处理方法
本专利技术涉及人工智能
,尤其涉及一种应用于神经网络的处理器和处理方法。
技术介绍
人工智能技术在近些年来得到了迅猛的发展,在全世界范围内得到了广泛的关注,无论是工业界还是学术界都开展了人工智能技术的研究工作,目前,人工智能技术已经渗透至视觉感知、语音识别、辅助驾驶、智能家居、交通调度等各个领域。深度学习技术是人工智能技术发展的助推器,深度学习采用深度神经网络的拓扑结构进行训练、优化及推理等,深度神经网络包括卷积神经网络、深度置信网络、循环神经网络等。以图像识别应用为例,经过反复训练、迭代,深度学习算法通过深度神经网络可以自动地获得隐藏的图像的特征数据,并且产生优于传统的基于模式识别分析方法的效果。然而,实现深度学习技术依赖于极大的计算量。在训练阶段,需要在海量数据中通过反复迭代计算得到神经网络中的权重数据;在推理阶段,同样需要神经网络在极短的响应时间(通常为毫秒级)内完成对输入数据的运算处理,这需要所部署的神经网络运算电路(包括CPU、GPU、FPGA和ASIC等)达到每秒千亿次甚至万亿次的计算能力。随着神经网络运算电路的规模越来越大、数据吞吐量越来越高,运行功耗成为一个严重问题。因此,神经网络处理器如何在保证高性能的同时保证高能效,是目前亟待解决的技术问题。
技术实现思路
本专利技术的目的在于克服上述现有技术的缺陷,提供一种神经网络的处理器及处理方法,尤其适用于存在大量接近零的计算元素的稀疏神经网络。根据本专利技术的第一方面,提供了一种用于神经网络的处理器。该处理器包括:存储单元,其用于存储数据和指令;控制单元,其用于获得保存在所述存储单元的指令并发出控制信号;计算单元,其用于从所述存储单元获得神经网络中的一层的节点值和对应的权重值以获得下一层的节点值,其中,当至少待计算元素之一小于阈值时,该计算单元不执行该计算元素的乘法操作,所述待计算元素包括节点值和权重值。在本专利技术的一个实施例中,所述计算单元包括:乘法单元,用于完成节点值和权重值的乘法操作;加法单元,用于对乘法单元的计算结果进行累加;比较单元,用于将所述计算元素与阈值进行比较,当所述计算元素小于阈值时,该比较单元输出第一控制信号以指示所述乘法单元不执行该计算元素的乘法操作,当所述计算元素大于等于阈值时,该比较单元输出第二控制信号以指示所述乘法单元执行该计算元素的乘法操作。在本专利技术的一个实施例中,所述计算单元还包括:数据选择器,其控制端与所述比较单元的输出连接,第一输入端接入零值,第二输入端接入所述乘法单元的输出,当该数据选择器接收到所述第一控制信号时,选择将所述零值接入到所述加法单元,当该数据选择器接收到所述第二控制信号时,选择将所述乘法单元的输出接入至所述加法单元。在本专利技术的一个实施例中,所述数据选择器是二选一的数据选择器。在本专利技术的一个实施例中,所述第一控制信号是“0”,所述第二控制信号是“1”。在本专利技术的一个实施例中,所述阈值的范围是10-8至10-2。在本专利技术的一个实施例中,所述阈值基于神经网络中计算元素的统计来动态调整。根据本专利技术的第二方面,提供了一种用于神经网络的处理方法。该方法包括:获得神经网络中的一层的节点值和对应的权重值;对所述一层的节点值和对应的权重值执行卷积操作以获得下一层的节点值,其中,在所述卷积操作中,当节点值或对应的权重值中任一项小于阈值时,不执行对该节点值和其对应的权重值的乘法操作。在本专利技术的处理方法中,所述阈值的范围是10-8至10-2。在本专利技术的处理方法中,所述阈值基于神经网络中计算元素的统计来动态调整。与现有技术相比,本专利技术的优点在于:通过在神经网络处理器的计算单元中引入新的电路结构,使得当存在接近0的特殊计算元素时,跳过针对该元素的乘法运算,以加快计算速率并节省计算功耗,从而提高了神经网络处理器的计算效率。附图说明以下附图仅对本专利技术作示意性的说明和解释,并不用于限定本专利技术的范围,其中:图1示出了现有技术中神经网络的拓扑示意图;图2示出了现有技术中神经网络的处理过程示意图;图3示出了现有技术中通用的卷积层的处理示意图;图4示出了根据本专利技术一个实施例的神经网络处理器的示意框图;图5示出了根据本专利技术一个实施例的神经网络处理器中的计算单元的示意框图。具体实施方式为了使本专利技术的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。如图1所示的现有技术中神经网络的通用拓扑图,神经网络是对人脑结构和行为活动进行建模形成的数学模型,通常分为输入层、隐藏层和输出层等结构,每一层均由多个神经元节点构成,本层的神经元节点的输出值,会作为输入传递给下一层的神经元节点,逐层连接。神经网路本身具有仿生学特征,其多层抽象迭代的过程与人脑及其他感知器官有着类似的信息处理方式。神经网络多层结构的第一层输入值为原始图像(在本专利技术中的“原始图像”指的是待处理的原始数据,不仅仅是狭义的通过拍摄照片获得的图像),典型地,对于神经网络的每一层,可通过对该层的神经元节点值和其对应的权重值进行计算来得到下一层的节点值。例如,假设表示神经网络中某一层的几个神经元节点,它们与下一层的节点y相连,表示对应连接的权重,则y的取值定义:y=x×w。可见,对于神经网络的各层存在大量的乘法和加法操作。具体地,深度神经网络具有多层神经网络的拓扑结构,并且每层神经网络具有多个特征图层。以卷积神经网络为例,参见图2所示,其处理数据的过程由卷积层、池化层、归一化层、非线性层和全连接层等多层结构组成。与传统神经网络相比,卷积神经网络在结构上增加了卷积层和池化层,每层内又包含多个特征图。卷积层和池化层之间均采用部分连接的方式,体现出了局部感知的思想。在网络末端,通常采用全连接层,即当前层内神经元与下一层神经元一一相连。卷积层完成卷积操作,具体操作过程是:将一个K*K大小的二维权重卷积核对特征图进行扫描,在扫描过程中权重与特征图内对应的特征元素求内积,并将所有内积值求和,得到一个输出层特征元素。当每个卷积层具有N个特征图层时,会有N个K*K大小的卷积核与该卷积层内特征图进行卷积操作,N个内积值求和得到一个输出层特征元素,如图3所示。池化层又称为下采样层,具体操作过程是:将一个P*P大小的二维窗口对特征图层进行扫描,在扫描过程中计算窗口在图层对应数据中的最大值或平均值,得到输出层特征元素点。池化层一方面可以消除部分噪声信息,有利于特征提取,另外一方面也可以减少下一层特征元素的数量,减小网络规模。归一化层对局部输入区域进行归一化,常用的归一化方法为局部相应归一化,即在多个相邻特征图中相同位置的元素经过标准化归一操作后得到输出特征图中的特征元素。归一化层通常在卷积层后,归一化层的使用可以加快神经网络收敛速度。非线性层用于完成非线性计算,神经网络中常用的非线性函数包括sigmoid函数、tanh函数和ReLU函数等,特征图内每个特征像素均需要经过非线性处理后输出到下一层特征图。全连接层在卷积神经网络模型的末端,当前层神经元与下一层神经网络中所有神经元均连接,即n-1层的任意一个节点,都和第n层所有节点有连接,数学上的计算方式为当前层特征元素与对本文档来自技高网...
用于神经网络的处理器和处理方法

【技术保护点】
一种用于神经网络的处理器,包括:存储单元,其用于存储数据和指令;控制单元,其用于获得保存在所述存储单元的指令并发出控制信号;计算单元,其用于从所述存储单元获得神经网络中的一层的节点值和对应的权重值以获得下一层的节点值,其中,当至少待计算元素之一小于阈值时,该计算单元不执行该计算元素的乘法操作,所述待计算元素包括节点值和权重值。

【技术特征摘要】
1.一种用于神经网络的处理器,包括:存储单元,其用于存储数据和指令;控制单元,其用于获得保存在所述存储单元的指令并发出控制信号;计算单元,其用于从所述存储单元获得神经网络中的一层的节点值和对应的权重值以获得下一层的节点值,其中,当至少待计算元素之一小于阈值时,该计算单元不执行该计算元素的乘法操作,所述待计算元素包括节点值和权重值。2.根据权利要求1所述的处理器,其中,所述计算单元包括:乘法单元,用于完成节点值和权重值的乘法操作;加法单元,用于对乘法单元的计算结果进行累加;比较单元,用于将所述计算元素与阈值进行比较,当所述计算元素小于阈值时,该比较单元输出第一控制信号以指示所述乘法单元不执行该计算元素的乘法操作,当所述计算元素大于等于阈值时,该比较单元输出第二控制信号以指示所述乘法单元执行该计算元素的乘法操作。3.根据权利要求2所述的处理器,其中,所述计算单元还包括:数据选择器,其控制端与所述比较单元的输出连接,第一输入端接入零值,第二输入端接入所述乘法单元的输出,当该数据选择...

【专利技术属性】
技术研发人员:韩银和许浩博王颖
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

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

1