CN108510058B - 神经网络中的权重存储方法以及基于该方法的处理器 - Google Patents

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

Info

Publication number
CN108510058B
CN108510058B CN201810166950.XA CN201810166950A CN108510058B CN 108510058 B CN108510058 B CN 108510058B CN 201810166950 A CN201810166950 A CN 201810166950A CN 108510058 B CN108510058 B CN 108510058B
Authority
CN
China
Prior art keywords
weight
unit
index
dimensional
effective
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810166950.XA
Other languages
English (en)
Other versions
CN108510058A (zh
Inventor
韩银和
闵丰
许浩博
王颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201810166950.XA priority Critical patent/CN108510058B/zh
Publication of CN108510058A publication Critical patent/CN108510058A/zh
Application granted granted Critical
Publication of CN108510058B publication Critical patent/CN108510058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

本发明提供一种神经网络中的权重存储方法以及基于该方法的神经网络存储器。该权重存储方法包括:将原二维权重卷积核构建为三维空间矩阵;查找所述三维空间矩阵中的有效权重并建立有效权重索引,其中,所述有效权重是非零权重,所述有效权重索引用于标记所述有效权重在所述三维空间矩阵的位置;存储所述有效权重以及所述有效权重索引。根据本发明的权重数据存储方法和卷积计算方法能够节省存储空间并提高计算效率。

Description

神经网络中的权重存储方法以及基于该方法的处理器
技术领域
本发明涉及计算机学习技术领域,尤其涉及一种神经网络中的权重存储方法以及基于该方法的神经网络处理器。
背景技术
近年来,深度学习技术得到了飞速发展,在解决高级抽象认知问题,例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域得到了广泛应用,成为学术界和工业界的研究热点。
深度神经网络是人工智能领域具有最高发展水平的感知模型之一,其通过建立模型来模拟人类大脑的神经连接结构,通过多个变换阶段分层对数据特征进行描述,为图像、视频和音频等大规模数据处理任务带来突破性进展。深度神经网络模型是一种运算模型,由大量节点通过网状互连结构构成,这些节点被称为神经元。每两个节点间连接强度都代表通过该连接信号在两个节点间的加权重,即权重,与人类神经网络中的记忆相对应。
然而,在现有技术中,神经网络存在处理速度慢,运行功耗大等问题。这是由于深度学习技术依赖于极大的计算量,例如,在训练阶段,需要在海量数据中通过反复迭代计算得到神经网络中的权重数据;在推理阶段,同样需要神经网络在极短的响应时间(通常为毫秒级)内完成对输入数据的运算处理,特别是当神经网络应用于实时系统时,例如,自动驾驶领域。神经网络中涉及的计算主要包括卷积操作、激活操作和池化操作等,其中,卷积过程占用了神经网络处理的大部分时间,该过程主要将输入的神经元或像素与相应卷积核的权重进行乘累加处理。
因此,为了将神经网络推向更广泛应用,例如,智能穿戴、智能机器人、自动驾驶以及模式识别等领域,需要对现有技术进行改进,以实现数据处理的实时性、低功耗以及计算资源利用率的提升。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种权重数据存储方法和基于该方法的神经网络处理器。
根据本发明的第一方面,提供了一种神经网络中的权重数据存储方法。该存储方法包括以下步骤:
步骤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。例如,对于5x5的原二维卷积核,由于5不满足Km要求,则可将其扩展为8x8x8的三维空间矩阵(即K为2,m为3,图3(b)示出了将5x5x8的矩阵扩展为8x8x8的三维空间矩阵的示意,扩充部分以0填充。
根据本发明的一个优选实施例,对三维空间矩阵进行规整化的原则是,选择与原卷积核的尺寸最接近的三维矩阵规模,例如,对于3x3的原卷积核,可以将其规整化为4x4x4,也可将其规整化为8x8x8,优选4x4x4的规模进行扩展,这种方式能够减少扩展三维空间矩阵时填充0的操作次数。
步骤S220,对于三维空间矩阵针对有效权重建立索引。
在此步骤中,对经过规整化处理之后的三维空间矩阵中的有效权重建立索引。下文将以4x4x4规模的空间矩阵为例阐述建立索引和存储权重的过程。
首先,以K3(此实施例中为23等分)等分原则将三维空间矩阵等分为K3个子三维空间,在本文中,也称为子空间或子空间矩阵。
例如,对于图4(a)示出的4x4x4的三维空间矩阵,以中心点将其划分为8个规模相等的子空间,每个子空间矩阵规模为2x2x2,即每个子空间包括2个2x2大小的矩阵。各个子空间的顺序可根据图4(b)示意的编码方式确定,例如,000至111依次对应第一子空间到第八子空间。具体地,第一子空间矩阵A1为
Figure BDA0001584733320000051
Figure BDA0001584733320000052
第二子空间矩阵A2为
Figure BDA0001584733320000053
Figure BDA0001584733320000054
第三子空间矩阵A3为
Figure BDA0001584733320000055
Figure BDA0001584733320000056
第四子空间矩阵A4为
Figure BDA0001584733320000057
Figure BDA0001584733320000058
第五子空间矩阵A5为
Figure BDA0001584733320000059
Figure BDA00015847333200000510
第六子空间矩阵A6为
Figure BDA00015847333200000511
Figure BDA00015847333200000512
第七子空间矩阵A7为
Figure BDA00015847333200000513
Figure BDA00015847333200000514
第八子空间矩阵A8为
Figure BDA00015847333200000515
Figure BDA00015847333200000516
接下来,分析每个子空间矩阵,当子空间含有有效权重时,继续以K3原则进行递归式划分,直到子空间包含单一权重。例如,对于上述第一个2x2x2规模的子空间,再次进行8等分之后,获得8个1x1的子空间矩阵,即包含单一权重,依次为0.68、0、0、0.84、0.65、0、0、0.81。类似地,将其余的7个2x2x2规模的子空间进行8等分。为了描述方便,在本文中也将第一次划分获得的子空间称为第一级子空间,将第二次划分获得的子空间称为第二级子空间,依此类推,可获得各级子空间。
利用K3树方式对各级子空间的卷积核矩阵建立索引。参见图4(c)所示,由于规整后的三维空间以及各子空间进行递归式的8等分,对于每个子空间对应8个下一级子空间,为表示各级子空间的权重状态,建立单节点8个(23个)子分支的状态树,每个子分支对应一个子空间的权重状态。具体地,对子空间进行有效值分析,当该子空间存在有效权重时,标记该子空间对应的分支的比特位为1并对该子空间进一步8等分划分,当子空间不存在有效权重时,标记该子空间对应分支比特位为0。对存在有效权重的子空间进行递归式的划分,直到子分支所表示的矩阵为单一值,而当子空间中不存在有效权重时,则不再进一步划分。例如,在此实施例中,将4x4x4的三维空间矩阵进行等分之后获得的8个第一级子空间,通过分析,均存在有效权重,因此,8个分支的比特值依次为11111111(称为K3树的第一层节点),对每个第一级子空间继续进行8等分,获得包含单一值的第二级子空间,各第二级子空间对应分支的比特值依次为10011001、01100110、01100101、10011010、11000110、11101001、01111001与00110110,该8组值组成K3树的第二层节点。由于第二层节点的分支所表示的矩阵为单一值,故该层节点也称为叶节点。
将通过上述过程获得的各级子空间的对应分支的比特值作为权重索引,即本实施例中的权重索引包括:根节点索引T:(11111111),叶节点索引L:1001100101100110011001011001101011000110111010010111101100110110),仍参见图4(c)所示。在下文中,本发明获得的权重索引称为有效权重索引或三维有效权重索引。需要说明的是,尽管此步骤针对4x4x4规模的空间矩阵,以K等于2为例阐述本发明,但本领域的技术人员可采用类似方法构建其它规模的空间矩阵并建立相应的K3树,例如,对于9x9x9的三维空间矩阵,可对其进行27(33)等分地递归式划分,以获得各级子空间。
步骤S230,将有效权重依据有效路径的顺序存储,获得压缩权重。
在此步骤中,依据索引所对应权重的有效路径存储权重。通过步骤S210和步骤S220可知,每个非0叶节点的回溯路径代表一个有效权重的有效路径。将有效权重依据建立权重索引的过程顺序(即预定的子空间的排序)进行存储,对于本实施例的4x4x4权重矩阵,有效权重的存储顺序参见图4(d)所示,即只存储了非零权重,而舍弃了对卷积结果没有影响的零值权重,从而压缩了存储空间,在本文中将采用这种方法存储的权重也称为压缩权重。
应理解的是,根据压缩权重的存储顺序结合所保存的权重索引即可解析出每个压缩权重在二维卷积核中的位置。参见图4(e)所示,在具体实施时,对于K3树的每个子空间对应的8个分支可按照一定的编码规则表示其排列顺序,例如,依次编码为000、001、010、011、100、101、110和111,由于第一个2x2x2规模的子空间,进行8等分之后,获得的8个1x1的子空间矩阵依次为0.68、0、0、0.84、0.65、0、0、0.81,则其最后一个权重0.81对应的位编码表示为000111,通过高三位比特值和低三位比特值能够分别解析出其位于个第一级的第一个子空间以及该第一个子空间包含的第8个子子空间,从而能够获知其位于提取的第二个权重卷积核的对应位置。应理解的是,这种编码方式仅用于记录权重的存储顺序,也可采用其他的编码方式或其它的任何方式来记录权重存储顺序,以能够解析出每个压缩权重在二维卷积核中的位置。
步骤S240,在卷积计算中根据有效权重的索引对相应卷积域的神经元进行筛选。
在卷积计算的过程中,可以根据有效权重的索引对卷积域的神经元进行筛选,以避免加载无效权重对应的神经元。具体地,通过有效权重索引结合建立权重索引的过程解析出权重在二维卷积核中的位置或坐标,通过该位置也能获得卷积域中与有效权重卷积匹配的神经元位置,通过这种方式能够准确锁定目标神经元。例如,对于上述4x4x4权重矩阵中的第一个二维权重卷积核矩阵
Figure BDA0001584733320000071
与有效权重匹配的卷积域神经元的位置参见图5所示,提取与有效权重位置匹配的神经元(即0、0.76、0.73、0.50、0、0.79、0.77和0.89)参与卷积计算。通过权重索引确定卷积域中与有效权重对应的神经元,能够舍弃对卷积结果没有影响的神经元,从而提高卷积计算的效率。
上述介绍了利用K3树的方式建立权重索引和存储压缩权重的方法,该方法通过建立有效权重的索引,并以建立权重索引的有效路径按顺序存储权重,能够压缩卷积核中大量权重为0的元素,从而实现了权重压缩存储的效果,能有效的降低存储空间。
图6示出了根据本发明一个实施例的神经网络处理器,该处理器可应用本发明的权重存储方法以及相应的基于权重索引加载卷积域神经元的方法。该处理器601包括控制单元602、输入数据存储单元603、输出数据存储单元605、权重存储单元604、输入神经元缓存单元606、权重缓存单元607、计算阵列600(其包括多个计算单元610)、输出缓存单元611、三维权重索引缓存单元612、三维权重压缩单元613以及神经元索引单元614。
输入数据存储单元603与输入神经元缓存单元606相连,输入数据存储单元603用于存储神经网络各层需处理的目标数据,该数据包括输入特征图数据和参与中间层计算的输入数据。
权重存储单元604与三维权重压缩单元613、三维权重索引缓存单元612以及权重缓存单元607相连,权重存储单元604用于为各单元提供原权重数据、三维权重索引以及根据本发明的方法压缩存储的权重。
输出数据存储单元605与输出缓存单元611相连,输出数据存储单元605用于存储计算阵列600计算得到的输出神经元及中间结果。
输入神经元缓存单元606与输入数据存储单元603以及神经元索引单元614相连,输入神经元缓存单元606用于暂存输入的批量神经元以及提供神经元索引单元614的输入数据。
权重缓存单元607与计算阵列600相连,权重缓存单元607用于向计算阵列提供基于本发明的压缩权重。
计算阵列600与神经元索引单元614相连,计算阵列600用于接收有效神经元数据并进行卷积运算,其结果将输出至输出缓存单元611。
三维权重索引缓存单元612与神经元索引单元614相连,三维权重索引缓存单元612提供用于向神经元索引单元614提供用于锁定匹配神经元的三维权重索引。
三维权重压缩单元613与权重存储单元604相连,三维权重压缩单元613用于对权重进行压缩以及三维索引建立,其结果将会存于权重存储单元604。
神经元索引单元614与输入神经元缓存606、三维权重索引缓存单元612以及计算阵列600相连,神经元索引单元614用于接收三维权重索引以及输入神经元,根据三维权重索引将神经元进行过滤后传输至计算单元610。
输出缓存单元611与计算单元610以及输出数据存储单元605相连,输出缓存单元611用于暂存卷积以及其他运算的中间结果及最终计算结果,当数据达到容量边界时,数据输出至输出数据存储单元605。
控制单元602分别与输入数据存储单元603、权重存储单元604、输出数据存储单元605、输入神经元缓存单元606、权重缓存单元607、计算单元610、三维权重索引缓存单元612、三维权重压缩单元613以及神经元索引单元614相连,控制单元602获得神经网络的相关参数(例如,卷积域的尺寸、计算阵列600的规模),对神经元与权重进行分组及分批处理,以控制各存储单元数据的载入及缓存数据的排列顺序,保证卷积运算的正确性。
结合图6所示的处理器,以一个输入特征图、4个输出特征图为例,并且以一个三维空间矩阵为单位介绍神经网络处理器的工作过程,参见图7,具体包括以下步骤:
步骤S710,获取权重索引并对有效权重进行压缩式存储。
在此步骤中,根据本发明的权重数据存储方法将原卷积核权重规整化为三维权重矩阵、建立有效权重的索引以及对有效权重进行压缩式存储。
具体地,三维权重压缩单元613从权重存储单元604接收训练好的权重数据,根据神经网络各层权重的尺寸和规模将权重构建三维空间矩阵;根据本发明的权重存储方法获得权重索引和压缩权重;将权重索引和压缩权重回存至权重存储单元604。
需要说明的是,图6所示的处理器中也可不包括三维权重压缩单元613,,例如,通过通用处理器或其他处理单元根据本发明的方法离线地获得权重索引和压缩权重之后,仅将权重索引和压缩权重存储到权重存储单元604。
步骤S720,将压缩权重、权重索引和输入神经元分别加载至对应的缓存单元。
具体地,根据待计算的一个三维空间矩阵规模将压缩权重从权重存储单元604加载到权重缓存单元607,将对应的权重索引加载到权重索引缓存单元612以及将相应卷积域神经元加载至输入神经元缓存单元606。
步骤S730,向计算阵列加载压缩权重和相应卷积域的神经元。
具体地,控制单元602将压缩权重以存储顺序直接加载到计算阵列600;将权重索引和对应卷积域的神经元加载到神经元索引单元614;神经元索引单元614根据权重索引获得匹配的有效神经元并将有效神经元加载到计算阵列600。
步骤S740,执行有效权重和有效神经元的卷积计算。
计算阵列600执行一个卷积域的有效权重和有效神经元的卷积计算,并将计算结果输出到输出缓存单元611,当输出缓存单元611已满时,暂停写入并将数据输出到输出数据存储单元605。
步骤S750,复用已加载压缩权重,以执行与更新的卷积域的卷积计算。
对于有多个输入特征图的情况,首先完成一个卷积域的卷积运算,然后,再依次对其他的特征图进行处理。通过这种方式,能够复用已加载的压缩权重。
接下来,对获得的卷积结果可进行激活处理和池化处理,此过程属于现有技术,在此不再赘述。
需要说明的是,控制单元602用于控制各单元之间的数据传输、逻辑转换、计算资源调用、神经网络参数分析等。具体地,控制单元602的功能包括但不限于控制向各存储单元分组以分批加载数据;根据处理速度和处理规模控制向各缓存单元加载数据;控制计算结果的输出;控制压缩权重和有效神经元向计算阵列600的加载顺序和加载速度、根据计算规模控制调用的计算单元数量等。
综上所述,本发明通过对已训练的神经网络有效权值建立索引并对有效权重进行存储,以有效权重索引直接锁定并加载卷积域内与有效权重对应的神经元进行卷积运算,在计算过程中合理利用了权重的稀疏性,从而减少数据的计算量与加载量;此外,计算过程中通过对压缩权重的复用以及多个缓存单元对卷积计算的输入及中间结果暂存与传递,保证了神经网络卷积计算的正确性并降低了能耗及数据的存储空间。
本发明的神经网络处理器可应用了各种电子设备,例如、移动电话、嵌入式电子设备等。
需要说明的是,本文涉及的卷积核、权重卷积核以及权重卷积核矩阵具有相同的含义,均指由权重值构成的矩阵,用于与卷积域的神经元进行卷积。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (7)

1.一种神经网络处理器,包括:
输入数据存储单元、输出数据存储单元、权重存储单元、输入神经元缓存单元、权重缓存单元、计算阵列、输出缓存单元、三维权重索引缓存单元、三维权重压缩单元、神经元索引单元以及控制单元,其中,
所述输入数据存储单元与所述输入神经元缓存单元相连,用于存储神经网络各层需处理的目标数据;
所述权重存储单元与所述三维权重压缩单元、所述三维权重索引缓存单元以及所述权重缓存单元相连,用于为所述三维权重压缩单元提供压缩存储的权重,为所述三维权重索引缓存单元提供三维权重索引,以及为所述权重缓存单元提供原权重数据;
所述输出数据存储单元与所述输出缓存单元相连,用于存储所述计算阵列计算得到的输出神经元及中间结果;
所述输入神经元缓存单元与所述输入数据存储单元以及所述神经元索引单元相连,用于暂存输入的批量神经元以及提供所述神经元索引单元的输入数据;
所述权重缓存单元与所述计算阵列相连,用于向计算阵列提供压缩权重;
所述计算阵列包括多个计算单元,并与所述神经元索引单元相连,用于接收有效神经元数据并进行卷积运算,将结果输出至所述输出缓存单元;
所述三维权重索引缓存单元与所述神经元索引单元相连,用于向所述神经元索引单元提供用于锁定匹配神经元的三维权重索引;
所述三维权重压缩单元与所述权重存储单元相连,用于对权重进行压缩以及三维索引建立,将其结果存于所述权重存储单元,包括:
所述三维权重压缩单元从所述权重存储单元接收训练好的权重数据;
根据所述神经网络各层权重的尺寸和规模将所述权重构建三维空间矩阵;
根据权重存储方法获得权重索引和压缩权重;以及
将所述权重索引和所述压缩权重回存至所述权重存储单元;
所述神经元索引单元与所述输入神经元缓存、所述三维权重索引缓存单元以及所述计算阵列相连,用于接收所述三维权重索引以及输入神经元,根据所述三维权重索引将神经元进行过滤后传输至所述计算单元;
所述输出缓存单元与所述计算单元以及所述输出数据存储单元相连,用于暂存卷积以及其他运算的中间结果及最终计算结果,当数据达到容量边界时,将数据输出至所述输出数据存储单元;以及
所述控制单元分别与所述输入数据存储单元、所述权重存储单元、所述输出数据存储单元、所述输入神经元缓存单元、所述权重缓存单元、所述计算单元、所述三维权重索引缓存单元、所述三维权重压缩单元以及所述神经元索引单元相连,用于控制各存储单元数据的载入及缓存数据的排列顺序。
2.一种利用如权利要求1所述神经网络处理器的权重存储方法,包括以下步骤:
步骤1:将原二维权重卷积核构建为三维空间矩阵,包括:
步骤21:将所述三维空间矩阵规整化为正方体形式的三维空间矩阵,其中,正方体的边长满足Km,K为大于等于2的整数,m为大于等于2的整数;
步骤2:查找所述三维空间矩阵中的有效权重并建立有效权重索引,其中,所述有效权重是非零权重,所述有效权重索引用于标记所述有效权重在所述三维空间矩阵的位置,包括:
步骤22:将所述三维空间矩阵等分为K3个子空间,其中,K为大于等于2的整数;
步骤23:对于所述K3个子空间中包含有效权重的子空间进一步递归式K3等分,直到子空间仅包含一个权重,从而获得多级子空间;
步骤24:对于所述多级子空间中包含有效权重的子空间,标记有效分支,并通过组合各级有效分支获得所述有效权重索引;
步骤3:存储所述有效权重以及所述有效权重索引。
3.根据权利要求2所述的方法,其中,在步骤24中,对于所述多级子空间中包含有效权重的子空间,标记该子空间对应的分支为比特值1,当该子空间中不包含有效权重时,标记该子空间对应的分支为比特值0。
4.根据权利要求2所述的权重存储方法,其中,在步骤21中,对于存在满足条件的多个正方体边长,选择与所述原权重卷积核尺寸最接近的正方体边长。
5.一种神经网络中的卷积计算方法,包括以下步骤:
步骤31:获取根据权利要求2至4中任一项所述方法存储的有效权重以及有效权重索引;
步骤32:根据所述有效权重索引获取与所述有效权重位置匹配的卷积域神经元;
步骤33:执行所述有效权重和所述卷积域神经元的卷积操作。
6.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求5所述方法的步骤。
7.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求5所述方法的步骤。
CN201810166950.XA 2018-02-28 2018-02-28 神经网络中的权重存储方法以及基于该方法的处理器 Active CN108510058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810166950.XA CN108510058B (zh) 2018-02-28 2018-02-28 神经网络中的权重存储方法以及基于该方法的处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810166950.XA CN108510058B (zh) 2018-02-28 2018-02-28 神经网络中的权重存储方法以及基于该方法的处理器

Publications (2)

Publication Number Publication Date
CN108510058A CN108510058A (zh) 2018-09-07
CN108510058B true CN108510058B (zh) 2021-07-20

Family

ID=63375804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810166950.XA Active CN108510058B (zh) 2018-02-28 2018-02-28 神经网络中的权重存储方法以及基于该方法的处理器

Country Status (1)

Country Link
CN (1) CN108510058B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928576A (zh) * 2018-09-20 2020-03-27 中兴通讯股份有限公司 一种卷积神经网络的卷积处理方法、装置及存储介质
US11461623B2 (en) * 2018-10-18 2022-10-04 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for defect-tolerant memory-based artificial neural network
CN109598293B (zh) * 2018-11-23 2023-04-07 华南理工大学 基于类别平衡采样的无人机巡检航拍图片批处理训练方法
CN109636712B (zh) * 2018-12-07 2022-03-01 北京达佳互联信息技术有限公司 图像风格迁移及数据存储方法、装置和电子设备
CN110826694B (zh) * 2019-10-30 2021-06-11 瀚博半导体(上海)有限公司 一种基于卷积神经网络的图像处理方法及装置
WO2021168815A1 (zh) * 2020-02-28 2021-09-02 华为技术有限公司 图像检索方法和图像检索装置
CN111402860B (zh) * 2020-03-16 2021-11-02 恒睿(重庆)人工智能技术研究院有限公司 一种参数管理方法、系统、介质和设备
CN115794411B (zh) * 2022-12-27 2023-05-30 阿里巴巴(中国)有限公司 模型的数据处理系统、方法和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260776A (zh) * 2015-09-10 2016-01-20 华为技术有限公司 神经网络处理器和卷积神经网络处理器
CN106529670A (zh) * 2016-10-27 2017-03-22 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片
CN106650928A (zh) * 2016-10-11 2017-05-10 广州视源电子科技股份有限公司 一种神经网络的优化方法及装置
WO2018022821A1 (en) * 2016-07-29 2018-02-01 Arizona Board Of Regents On Behalf Of Arizona State University Memory compression in a deep neural network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260776A (zh) * 2015-09-10 2016-01-20 华为技术有限公司 神经网络处理器和卷积神经网络处理器
WO2018022821A1 (en) * 2016-07-29 2018-02-01 Arizona Board Of Regents On Behalf Of Arizona State University Memory compression in a deep neural network
CN106650928A (zh) * 2016-10-11 2017-05-10 广州视源电子科技股份有限公司 一种神经网络的优化方法及装置
CN106529670A (zh) * 2016-10-27 2017-03-22 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Design and Analysis of a Neural Network Inference Engine Based on Adaptive Weight Compression》;Jong Hwan Ko,et al;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20180202;第38卷(第1期);第109-121页 *
《深度神经网络的压缩研究》;韩云飞,等;《计算机应用研究》;20181031;第35卷(第10期);第2894-2898页 *

Also Published As

Publication number Publication date
CN108510058A (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
CN108510058B (zh) 神经网络中的权重存储方法以及基于该方法的处理器
US11875268B2 (en) Object recognition with reduced neural network weight precision
CN107977704B (zh) 权重数据存储方法和基于该方法的神经网络处理器
US11144823B1 (en) Method and system for hierarchical weight-sparse convolution processing
CN111144561B (zh) 一种神经网络模型确定方法及装置
WO2021233342A1 (zh) 一种神经网络构建方法以及系统
CN107944545B (zh) 应用于神经网络的计算方法及计算装置
CN110222718B (zh) 图像处理的方法及装置
CN113095370B (zh) 图像识别方法、装置、电子设备及存储介质
CN110796251A (zh) 基于卷积神经网络的图像压缩优化方法
CN111797992A (zh) 一种机器学习优化方法以及装置
CN111931901A (zh) 一种神经网络构建方法以及装置
CN113536970A (zh) 一种视频分类模型的训练方法及相关装置
Wang et al. Evolutionary multi-objective model compression for deep neural networks
CN115018039A (zh) 一种神经网络蒸馏方法、目标检测方法以及装置
CN114511042A (zh) 一种模型的训练方法、装置、存储介质及电子装置
CN108376283B (zh) 用于神经网络的池化装置和池化方法
CN113963241B (zh) Fpga硬件架构及其数据处理方法、存储介质
WO2023122854A1 (zh) 数据处理的方法和装置
Xia et al. Efficient synthesis of compact deep neural networks
CN115115835A (zh) 图像的语义分割方法、装置、设备、存储介质及程序产品
Torres-Tello et al. Optimizing a Multispectral-Images-Based DL model, through feature selection, pruning and quantization
CN114626284A (zh) 一种模型处理方法及相关装置
CN115409697A (zh) 一种图像处理方法及相关装置
KR102429804B1 (ko) 인공지능 모델의 필터 변환을 위한 전자 장치의 제어 방법 및 프로그램

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant