神经网络中的权重存储方法以及基于该方法的处理器技术

技术编号:18895710 阅读:35 留言:0更新日期:2018-09-08 11:32
本发明专利技术提供一种神经网络中的权重存储方法以及基于该方法的神经网络存储器。该权重存储方法包括:将原二维权重卷积核构建为三维空间矩阵;查找所述三维空间矩阵中的有效权重并建立有效权重索引,其中,所述有效权重是非零权重,所述有效权重索引用于标记所述有效权重在所述三维空间矩阵的位置;存储所述有效权重以及所述有效权重索引。根据本发明专利技术的权重数据存储方法和卷积计算方法能够节省存储空间并提高计算效率。

Weight storage method in neural network and processor based on the method

The invention provides a weight storage method in a neural network and a neural network memory based on the method. The weight storage method includes: constructing the original two-dimensional weight convolution kernel into a three-dimensional space matrix; finding the effective weight in the three-dimensional space matrix and establishing an effective weight index, wherein the effective weight is a non-zero weight, and the effective weight index is used to mark the bits of the effective weight in the three-dimensional space matrix. The effective weight and the effective weight index are stored. The weight data storage method and the convolution calculation method according to the present invention can save the storage space and improve the calculation efficiency.

【技术实现步骤摘要】
神经网络中的权重存储方法以及基于该方法的处理器
本专利技术涉及计算机学习
,尤其涉及一种神经网络中的权重存储方法以及基于该方法的神经网络处理器。
技术介绍
近年来,深度学习技术得到了飞速发展,在解决高级抽象认知问题,例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域得到了广泛应用,成为学术界和工业界的研究热点。深度神经网络是人工智能领域具有最高发展水平的感知模型之一,其通过建立模型来模拟人类大脑的神经连接结构,通过多个变换阶段分层对数据特征进行描述,为图像、视频和音频等大规模数据处理任务带来突破性进展。深度神经网络模型是一种运算模型,由大量节点通过网状互连结构构成,这些节点被称为神经元。每两个节点间连接强度都代表通过该连接信号在两个节点间的加权重,即权重,与人类神经网络中的记忆相对应。然而,在现有技术中,神经网络存在处理速度慢,运行功耗大等问题。这是由于深度学习技术依赖于极大的计算量,例如,在训练阶段,需要在海量数据中通过反复迭代计算得到神经网络中的权重数据;在推理阶段,同样需要神经网络在极短的响应时间(通常为毫秒级)内完成对输入数据的运算处理,特别是当神经网络应用于实时系统时,例如,自动驾驶领域。神经网络中涉及的计算主要包括卷积操作、激活操作和池化操作等,其中,卷积过程占用了神经网络处理的大部分时间,该过程主要将输入的神经元或像素与相应卷积核的权重进行乘累加处理。因此,为了将神经网络推向更广泛应用,例如,智能穿戴、智能机器人、自动驾驶以及模式识别等领域,需要对现有技术进行改进,以实现数据处理的实时性、低功耗以及计算资源利用率的提升。
技术实现思路
本专利技术的目的在于克服上述现有技术的缺陷,提供一种权重数据存储方法和基于该方法的神经网络处理器。根据本专利技术的第一方面,提供了一种神经网络中的权重数据存储方法。该存储方法包括以下步骤:步骤1:将原二维权重卷积核构建为三维空间矩阵;步骤2:查找所述三维空间矩阵中的有效权重并建立有效权重索引,其中,所述有效权重是非零权重,所述有效权重索引用于标记所述有效权重在所述三维空间矩阵的位置;步骤3:存储所述有效权重以及所述有效权重索引。在一个实施例中,步骤1还包括:步骤21:将所述三维空间矩阵规整化为正方体形式的三维空间矩阵,其中,正方体的边长满足Km,K为大于等于2的整数,m为大于等于2的整数;在一个实施例中,步骤2包括:步骤22:将所述三维空间矩阵等分为K3个子空间,其中,K为大于等于2的整数;步骤23:对于所述K3个子空间中包含有效权重的子空间进一步递归式K3等分,直到子空间仅包含一个权重,从而获得多级子空间;步骤24:对于所述多级子空间中包含有效权重的子空间,标记有效分支,并通过组合各级有效分支获得所述有效权重索引。在一个实施例中,在步骤24中,对于所述多级子空间中包含有效权重的子空间,标记该子空间对应的分支为比特值1,当该子空间中不包含有效权重时,标记该子空间对应的分支为比特值0。在一个实施例中,在步骤21中,对于存在满足条件的多个正方体边长,选择与所述原权重卷积核尺寸最接近的正方体边长。根据本专利技术的第二方面,提供了一种神经网络中的卷积计算方法。该卷积计算方法包括以下步骤:步骤31:获取根据本专利技术的权重数据存储方法所存储的有效权重以及有效权重索引;步骤32:根据所述有效权重索引获取与所述有效权重位置匹配的卷积域神经元;步骤33:执行所述有效权重和所述卷积域神经元的卷积操作。根据本专利技术的第三方面,提供了一种神经网络处理器。该神经网络处理器包括:用于存储根据本专利技术的权重数据存储方法所获得的有效权重以及有效权重索引的权重和索引存储单元;用于根据所述有效权重索引获取与所述有效权重位置匹配的卷积域神经元的神经元索引单元;用于执行所述有效权重和所述有效权重位置匹配的卷积域神经的卷积操作的计算阵列单元。在本专利技术的神经网络处理器中,还包括:存储单元:用于存储所述卷积域神经元和卷积结果;控制单元:用于控制所述有效权重和所述卷积域神经元的卷积操作的执行顺序。与现有技术相比,本专利技术的优点在于:针对神经网络中权重和神经元的稀疏性特点,通过对非0权重建立索引和压缩存储,并利用权重索引直接锁定卷积域内与权重对应的神经元进行卷积运算,从而降低了神经网络中权重以及神经元的存储空间;此外,在卷积计算过程舍弃了0值权重以及0值权重对应的神经元,降低了神经网络数据处理过程数据的加载量,从而有效降低了神经网络的运行功耗并提高了计算资源利用率。本专利技术将权重与权重索引分离存储,有利于实现目标神经元的并行查找。附图说明以下附图仅对本专利技术作示意性的说明和解释,并不用于限定本专利技术的范围,其中:图1示出了神经网络中对输入特征进行卷积的过程示意图;图2示出了根据本专利技术一个实施例的权重存储方法的流程图;图3(a)至图3(b)示出了根据本专利技术一个实施例的对权重进行三维化排列的示意图;图4(a)至图4(e)示出了根据本专利技术一个实施例的权重存储过程的示意图;图5示出了根据本专利技术一个实施例的索引神经元的过程示意图;图6示出了根据本专利技术一个实施例的神经网络处理器的示意图;图7示出了图6的神经网络处理器的工作流程图。具体实施方式为了使本专利技术的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。典型地,深度神经网络具有多层拓扑结构,例如,卷积神经网络由若干个卷积层、池化层和全连接层组成,其中,一个卷积层的操作过程是:将一个L*L大小的权重卷积核对输入特征图进行扫描,在扫描过程中权重卷积核与特征图内对应卷积域的神经元求内积,并将所有卷积域的内积值求和,得到卷积层的输出特征图或称输出神经元,图1示出了5*5权重卷积核对一个输入特征图进行扫描的过程示意。在实际的处理过程中,可以采用多个权重卷积核对某个输入特征图进行扫描,例如,采用32个权重卷积核时,即相当于提取该输入特征图的32种特征,从而获得32个输出特征图。为了提高神经网络中卷积计算的效率,根据本专利技术的一个实施例,提供一种权重存储方法。简言之,该方法是将二维卷积核权重进行三维化处理,形成规整化的三维空间形式的权重矩阵,针对有效权重(即非零权重)建立索引并基于索引建立的过程对权重进行压缩式存储。具体地,图2示出了根据本专利技术一个实施例的权重存储方法的流程图,包括以下步骤:步骤S210,将神经网络中的权重卷积核规整化为三维空间矩阵。在此步骤中,将神经网络中的权重卷积核建模为三维空间分布的排列。例如,基于原二维卷积核的尺寸以及所选的三维空间边长进行权重的三维划分,以原卷积核尺寸为4x4为例,依次提取4个4x4的二维卷积核构成三维空间形式的排列,即三维空间尺寸为4x4x4,在本文中也称为三维空间矩阵,参见图3(a)所示,为了清楚示意各卷积核矩阵包含的值,以平面图的形式示出了4个4x4的卷积核,其中,每个卷积核中的空白部分表示权重为0。三维空间的边长满足Km,其中,K为大于等于2的整数,m为大于等于2的整数。在此示例中,K为2,m为2。在卷积核的边长不满足Km的情况下,将三维空间矩阵规整化为正方体,并将新添加的元素设置为0。例如,对于5x本文档来自技高网
...

【技术保护点】
1.一种神经网络中的权重存储方法,包括以下步骤:步骤1:将原二维权重卷积核构建为三维空间矩阵;步骤2:查找所述三维空间矩阵中的有效权重并建立有效权重索引,其中,所述有效权重是非零权重,所述有效权重索引用于标记所述有效权重在所述三维空间矩阵的位置;步骤3:存储所述有效权重以及所述有效权重索引。

【技术特征摘要】
1.一种神经网络中的权重存储方法,包括以下步骤:步骤1:将原二维权重卷积核构建为三维空间矩阵;步骤2:查找所述三维空间矩阵中的有效权重并建立有效权重索引,其中,所述有效权重是非零权重,所述有效权重索引用于标记所述有效权重在所述三维空间矩阵的位置;步骤3:存储所述有效权重以及所述有效权重索引。2.根据权利要求1所述的权重存储方法,其中,步骤1还包括:步骤21:将所述三维空间矩阵规整化为正方体形式的三维空间矩阵,其中,正方体的边长满足Km,K为大于等于2的整数,m为大于等于2的整数。3.根据权利要求1或2所述的方法,其中,步骤2包括:步骤22:将所述三维空间矩阵等分为K3个子空间,其中,K为大于等于2的整数;步骤23:对于所述K3个子空间中包含有效权重的子空间进一步递归式K3等分,直到子空间仅包含一个权重,从而获得多级子空间;步骤24:对于所述多级子空间中包含有效权重的子空间,标记有效分支,并通过组合各级有效分支获得所述有效权重索引。4.根据权利要求3所述的方法,其中,在步骤24中,对于所述多级子空间中包含有效权重的子空间,标记该子空间对应的分支为比特值1,当该子空间中不包含有效权重时,标记该子空间对应的分支为比特值0。5.根据权利要求2所述的权重存储方法,其中,在...

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

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

1