CN113688983A - 脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端 - Google Patents
脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端 Download PDFInfo
- Publication number
- CN113688983A CN113688983A CN202110909685.1A CN202110909685A CN113688983A CN 113688983 A CN113688983 A CN 113688983A CN 202110909685 A CN202110909685 A CN 202110909685A CN 113688983 A CN113688983 A CN 113688983A
- Authority
- CN
- China
- Prior art keywords
- neuron
- weight vector
- vector
- weight
- dimensional
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 33
- 210000002569 neuron Anatomy 0.000 claims abstract description 265
- 239000013598 vector Substances 0.000 claims abstract description 147
- 210000003050 axon Anatomy 0.000 claims abstract description 71
- 238000004364 calculation method Methods 0.000 claims abstract description 31
- 230000001537 neural effect Effects 0.000 claims abstract description 22
- 239000012528 membrane Substances 0.000 claims abstract description 16
- 238000013507 mapping Methods 0.000 claims description 38
- 238000012421 spiking Methods 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001174 ascending effect Effects 0.000 claims description 4
- 210000004027 cell Anatomy 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000000946 synaptic effect Effects 0.000 description 5
- 210000001787 dendrite Anatomy 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明的脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端,包括:获取储存的神经核中第一神经元的一维权重向量;其中,所述神经核包括:依次排列的N个神经元;对所述第一神经元的一维权重向量进行移位,获得对应所述神经核的第i神经元的一维权重向量;将第i神经元的一维权重向量与对应该神经元的轴突向量进行卷积计算,获得对应第i神经元的神经元膜电压计算结果。本发明通过一个神经元核只存储一个神经元的权重,神经元核中的其他神经元的权重根据存储的权重进行变换得到,大大降低了权重存储空间。
Description
技术领域
本发明涉及脉冲神经网络卷积计算领域,特别是涉及一种脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端。
背景技术
深度神经网络(DNN)研究近年来取得了飞速发展并得到初步应用。然而实现这样的算法,通常需要消耗大量的算力。如经典的深度卷积网络(CNN)模型AlexNet,需要进行至少7.2 亿次的乘法运算。大的运算量产生大的功耗,一般功耗在10瓦到100瓦左右。
另一方面,脉冲神经网络(SNN)近年来以其低功耗和更接近人脑的特点吸引了学术界和产业界的关注。在脉冲神经网络中,轴突是接收脉冲的单元,神经元是发送脉冲的单元,一个神经元通过树突连接到多个轴突,树突和轴突的连接点称为突触。轴突接收到脉冲后,所有和这一轴突有突触连接的树突会收到脉冲,进而影响到树突下游神经元。神经元将来自多个轴突的脉冲累加,如果数值超过阈值,就向下游发送一个脉冲。脉冲神经网络内传播的是1比特的脉冲,脉冲的激活频率比较低,并且只需要加减法运算,没有乘法运算。相比于基于深度学习的神经网路,脉冲神经网络功耗更低。
基于神经生物学的研究成果,发现人脑的神经元脉冲激活频率在10Hz左右,两次脉冲之间间隔在数毫秒。因此实现中每个神经元每1毫秒左右处理一次输入脉冲。另外加减法运算需要的时间在纳秒级。我们可以使用时分复用的方法,多个神经元复用同一个运算单元对不同轴突进行处理。要对运算单元进行时分复用,就必须知道轴突和神经元的连接关系,这一关系就是突触连接。一个轴突上接收到了脉冲,所有和这个轴突有突触连接的神经元都受到影响,和这个轴突没有突触连接的神经元则不受影响。突触连接关系是存储在突触连接 RAM中的。通常的实现中一个神经元核集成了多个神经元。同一个核中所有的神经元共用计算电路,这个核所有的输入轴突和核中所有的神经元的连接关系存在同一块突触连接RAM 中。
当脉冲神经网络硬件实现人工智能中的卷积运算时,突触连接就是权重。权重常用的宽度为8比特。如果一个神经元核中集成N个神经元,每个神经元支持M个轴突输入,这个神经元核用于存储权重需要的存储为N*M*8比特=N*M Byte,如果N=M=256,权重存储空间高达64K Byte,大大增加了权重储存压力。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端,用于解决现有技术中脉冲神经网络硬件实现人工智能中的卷积运算时需储存所有神经元的权重,导致大大增加了权重储存压力的问题。
为实现上述目的及其他相关目的,本发明提供一种脉冲神经网络中减少权重储存的卷积运算实现方法,所述方法包括:获取储存的神经核中第一神经元的一维权重向量;其中,所述神经核包括:依次排列的N个神经元;并且其中,N为大于或等于1的整数;对所述第一神经元的一维权重向量进行移位,获得对应所述神经核的第i神经元的一维权重向量;其中,i为大于1且小于或等于N的整数;将第i神经元的一维权重向量与对应该神经元的轴突向量进行卷积计算,获得对应第i神经元的神经元膜电压计算结果。
于本发明的一实施例中,所述对所述第一神经元的一维权重向量进行移位,获得对应所述神经核中的第i神经元的一维权重向量的方式包括:对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
于本发明的一实施例中,所述对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量的方式包括:当判断卷积步长stride为1 时,对所述第一神经元的一维权重向量右移i-1个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;当判断卷积步长stride不为1时,对所述第一神经元的一维权重向量右移(i-1)*stride个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
于本发明的一实施例中,所述轴突向量由特征图上每个单元按照预设映射顺序映射到对应该神经元的所有轴突输入上获得。
于本发明的一实施例中,所述对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量的方式包括:当判断轴突输入的通道数不为1时,基于所述轴突向量的预设映射顺序,对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
于本发明的一实施例中,所述基于所述轴突向量的预设映射顺序,对所述第一神经元的一维权重向量右移一或多个权重位宽的方式包括:若所述轴突向量的预设映射顺序为一个通道内所述特征图的各单元从左到右从上到下的顺序顺次映射完毕,下一个通道内所述特征图的各单元从左到右从上到下的顺序顺次映射完毕,直到所有通道映射完毕的顺序时,对所述第一神经元的一维权重向量右移(i-1)*stride个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;若所述轴突向量的预设映射顺序为所述特征图的每个单元从通道0开始按通道数递增的顺序将所有通道映射完毕,再从左到右从上到下的顺序顺次映射完毕,直到所有通道映射完毕的顺序时,对所述第一神经元的一维权重向量右移(i-1) *stride*inchannel_count个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;其中,所述inchannel_count为轴突输入的通道数。
于本发明的一实施例中,所述将第i神经元的一维权重向量与对应该神经元的轴突向量进行卷积计算,获得对应第i神经元的神经元膜电压计算结果的方式包括:将第i神经元的一维权重向量与对应该神经元的轴突向量的转置相乘,获得对应第i神经元的神经元膜电压计算结果。
为实现上述目的及其他相关目的,本发明提供一种脉冲神经网络中减少权重储存的卷积运算实现电路,所述电路包括:权重储存器,用于储存一或多个神经核的第一神经元的一维权重向量;权重获取模块,连接所述权重储存器,用于获取储存的各神经核中第一神经元的一维权重向量;其中,每个神经核包括:依次排列的N个神经元;并且其中,N为大于或等于1的整数;权重移位模块,连接所述权重获取模块,用于对各神经核的第一神经元的一维权重向量分别进行移位,获得对应各神经核的第i神经元的一维权重向量;其中,i为大于1 且小于或等于N的整数;一或多个计算模块,连接所述权重移位模块,用于将各神经核的第 i神经元的一维权重向量与对应各神经核的第i神经元的轴突向量进行卷积计算,获得对应各神经核的第i神经元的神经元膜电压计算结果。
为实现上述目的及其他相关目的,本发明提供一种脉冲神经网络中减少权重储存的卷积运算实现终端,包括:存储器,用于存储计算机程序;处理器,用于执行所述的脉冲神经网络中减少权重储存的卷积运算实现方法。
如上所述,本发明的一种脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端,具有以下有益效果:本发明通过一个神经元核只存储一个神经元的权重,神经元核中的其他神经元的权重根据存储的权重进行变换得到,大大降低了权重存储空间。
附图说明
图1显示为本发明一实施例中的脉冲神经网络中减少权重储存的卷积运算实现方法的流程示意图。
图2显示为本发明一实施例中的神经元的一维权重向量示意图。
图3显示为本发明一实施例中的二维卷积及轴突、神经元映射示意图。
图4显示为本发明一实施例中的脉冲神经网络中减少权重储存的卷积运算实现电路的结构示意图。
图5显示为本发明一实施例中的脉冲神经网络中减少权重储存的卷积运算实现终端的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、““下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。
其中提到的第一、第二及第三等术语是为了说明多样的部分、成份、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成份、区域、层或段区别于其它部分、成份、区域、层或段。因此,以下叙述的第一部分、成份、区域、层或段在不超出本发明范围的范围内,可以言及到第二部分、成份、区域、层或段。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
本发明实施例中提供一种脉冲神经网络中减少权重储存的卷积运算实现方法,本发明通过一个神经元核只存储一个神经元的权重,神经元核中的其他神经元的权重根据存储的权重进行变换得到,大大降低了权重存储空间。
下面以附图为参考,针对本实用新型的实施例进行详细说明,以便本实用新型所述技术领域的技术人员能够容易地实施。本实用新型可以以多种不同形态体现,并不限于此处说明的实施例。
如图1所示,展示本发明实施例中的脉冲神经网络中减少权重储存的卷积运算实现方法的流程示意图。
所述方法包括:
步骤S11:获取储存的神经核中第一神经元的一维权重向量。
详细来说,所述神经核包括:依次排列的N个神经元。并且其中,N为大于或等于1的整数;
可选的,每个神经元都对应着一个二维权重矩阵,将神经元对应的权重矩阵按照从左到右从上到下的顺序顺次排列,组成一维的权重向量。
步骤S12:对所述第一神经元的一维权重向量进行移位,获得对应所述神经核的第i神经元的一维权重向量。
详细来说,i为大于1且小于或等于N的整数。
可选的,对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
可选的,每个神经元都对应着一个二维权重矩阵,且每个神经元权重矩阵是通过基于第一神经元移动卷积核得到。
可选的,对于右移权重位宽的个数,与进行卷积计算的卷积步长相关,因此步骤S12包括:当判断卷积步长stride为1时,对所述第一神经元的一维权重向量右移i-1个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;当判断卷积步长stride不为1时,对所述第一神经元的一维权重向量右移(i-1)*stride个权重位宽,获得对应所述神经核中的第i 神经元的一维权重向量。举例来说,如图2所示,当判断卷积步长stride为1时,每个神经元的一维权重向量w1D_vec(i)都可以由w1D_vec(0)右移i个权重位宽得到。
可选的,所述神经元的轴突向量由特征图上每个单元按照预设映射顺序映射到对应该神经元的所有轴突输入上获得;在一具体实施例中,将一个宽度为width,高度为height的特征图上每个单元按照预设映射顺序顺次映射到轴突输入上,组成轴突向量axon_vec。举例来说,预设映射顺序为按照从左到右从上到下的顺序顺次映射。
可选的,对于右移权重位宽的个数,还与所述轴突输入的输入通道个数相关;若通道个数大于1,则右移权重位宽的个数由所述轴突向量的预设映射顺序决定;因此步骤S12包括:当判断轴突输入的通道数不为1时,基于所述轴突向量的预设映射顺序,对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
可选的,所述基于所述轴突向量的预设映射顺序,对所述第一神经元的一维权重向量右移一或多个权重位宽的方式包括:
若所述轴突向量的预设映射顺序为一个通道内所述特征图的各单元从左到右从上到下的顺序顺次映射完毕,下一个通道内所述特征图的各单元从左到右从上到下的顺序顺次映射完毕,直到所有通道映射完毕的顺序时,对所述第一神经元的一维权重向量右移(i-1)*stride 个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;举例来说,若步长stride 为1,则第4神经元的一维权重向量需右移(4-1)*1=3个权重位宽。
若所述轴突向量的预设映射顺序为所述特征图的每个单元从通道0开始按通道数递增的顺序将所有通道映射完毕,再从左到右从上到下的顺序顺次映射完毕,直到所有通道映射完毕的顺序时,对所述第一神经元的一维权重向量右移(i-1)*stride*inchannel_count个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;其中,所述inchannel_count为轴突输入的通道数。举例来说,若步长stride为1,通道数为2,则第4神经元的一维权重向量需右移(4-1)*1*2=6个权重位宽。
步骤S13:将第i神经元的一维权重向量与对应该神经元的轴突向量进行卷积计算,获得对应第i神经元的神经元膜电压计算结果。
可选的,将第i神经元的一维权重向量与对应该神经元的轴突向量的转置相乘,获得对应第i神经元的神经元膜电压计算结果。
可选的,脉冲神经网络采用了类似于crossbar的结构,神经元核中的每个神经元膜电压计算结果都是该神经元对应的一维权重向量w1D_vec与所有的轴突输入组成的轴突向量 axon_vec的转置相乘的结果。
为了更好的描述所述脉冲神经网络中减少权重储存的卷积运算实现方法,提供具体实施例;
实施例1:一种脉冲神经网络中减少权重储存的卷积运算实现方法。
所述方法包括:
获取储存的神经核中第一神经元的一维权重向量w1D_vec(0);其中,所述神经核包括:依次排列的N个神经元;并且其中,N为大于或等于1的整数;
每个神经元的一维权重向量w1D_vec(i)都可以由w1D_vec(0)右移i个权重位宽得到;
脉冲神经网络采用了类似于crossbar的结构,神经元核中的每个神经元膜电压计算结果 neuron1D都是该神经元对应的一维权重向量w1D_vec与所有的轴突输入组成的轴突向量 axon_vec的转置相乘的结果;具体的,如图3所示,将一个宽度为width,高度为height的特征图块与宽度与高度都是R的权重矩阵进行卷积运算,获得神经元膜电压计算结果neuron1D;将特征图上每个单元按照从左到右从上到下的顺序顺次映射到轴突输入上,组成axon_vec。图3上部矩形代表了特征图块,右方显示了R*R大小的卷积核(权重矩阵)。特征图上的各单元与右移的卷积核单元进行乘加运算得到二维激活块上的一个单元neuron(m,n)。m表示所处的行,n表示所处的列。在将二维的neuron矩阵按照从左到右从上到下的顺序顺次映射到一维neuron1D向量上。
与上述实施例原理相似的是,本发明提供一种脉冲神经网络中减少权重储存的卷积运算实现电路。
以下结合附图提供具体实施例:
如图4展示本发明实施例中的一种脉冲神经网络中减少权重储存的卷积运算实现电路的结构示意图。
所述电路包括:
权重储存器41,用于储存一或多个神经核的第一神经元的一维权重向量;
权重获取模块42,连接所述权重储存器41,用于获取储存的各神经核中第一神经元的一维权重向量;其中,每个神经核包括:依次排列的N个神经元;并且其中,N为大于或等于 1的整数;
权重移位模块43,连接所述权重获取模块42,用于对各神经核的第一神经元的一维权重向量分别进行移位,获得对应各神经核的第i神经元的一维权重向量;其中,i为大于1且小于或等于N的整数;
一或多个计算模块44,连接所述权重移位模块43,用于将各神经核的第i神经元的一维权重向量与对应各神经核的第i神经元的轴突向量进行卷积计算,获得对应各神经核的第i 神经元的神经元膜电压计算结果。
可选的,所述权重储存器41只储存各神经核的第一神经元的一维权重向量。举例来说,如果一个神经元核中集成N个神经元,每个神经元支持M个轴突输入,权重存储空间只需要传统方法存储空间的1/N。如果N=M=256,神经元核的权重存储由64K Byte降到256Byte。
可选的,所述权重移位模块43可以同时输出多个权重从而支持多个并行计算模块。
可选的,所述权重移位模块43用于对各神经核的第一神经元的一维权重向量右移一或多个权重位宽,获得对应各神经核中的第i神经元的一维权重向量。
可选的,所述权重移位模块43用于当判断卷积步长stride为1时,对各神经核的第一神经元的一维权重向量右移i-1个权重位宽,获得对应各神经核的第i神经元的一维权重向量;当判断卷积步长stride不为1时,对各神经核的第一神经元的一维权重向量右移(i-1)*stride 个权重位宽,获得对应各神经核的第i神经元的一维权重向量。
可选的,所述轴突向量由特征图上每个单元按照预设映射顺序映射到对应该神经元的所有轴突输入上获得。所述权重移位模块43用于当判断轴突输入的通道数不为1时,基于所述轴突向量的预设映射顺序,对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
优选的,若所述轴突向量的预设映射顺序为一个通道内所述特征图的各单元从左到右从上到下的顺序顺次映射完毕,下一个通道内所述特征图的各单元从左到右从上到下的顺序顺次映射完毕,直到所有通道映射完毕的顺序时,所述权重移位模块43用于对所述第一神经元的一维权重向量右移(i-1)*stride个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;若所述轴突向量的预设映射顺序为所述特征图的每个单元从通道0开始按通道数递增的顺序将所有通道映射完毕,再从左到右从上到下的顺序顺次映射完毕,直到所有通道映射完毕的顺序时,所述权重移位模块43用于对所述第一神经元的一维权重向量右移(i-1) *stride*inchannel_count个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;其中,所述inchannel_count为轴突输入的通道数。
可选的,可以对应各神经元分别设置一计算模块44,也可以多个神经元利用一计算模块进行卷积计算。
可选的,所述计算模块44用于将第i神经元的一维权重向量与对应该神经元的轴突向量的转置相乘,获得对应第i神经元的神经元膜电压计算结果。
可选的,所述电路还包括:神经元计数模块45,连接所述权重移位模块43,用于对进行移位的各神经核的神经元计数;举例来说,所述神经元计数模块45可以是 stride*inchannel_count的累加计数。
如图5展示本发明实施例中的脉冲神经网络中减少权重储存的卷积运算实现终端50的结构示意图。
所述脉冲神经网络中减少权重储存的卷积运算实现终端50包括:存储器51及处理器52 所述存储器51用于存储计算机程序;所述处理器52运行计算机程序实现如图1所述的脉冲神经网络中减少权重储存的卷积运算实现方法。
可选的,所述存储器51的数量均可以是一或多个,所述处理器52的数量均可以是一或多个,而图5中均以一个为例。
可选的,所述脉冲神经网络中减少权重储存的卷积运算实现终端50中的处理器52会按照如图1所述的步骤,将一个或多个以应用程序的进程对应的指令加载到存储器51中,并由处理器52来运行存储在第一存储器51中的应用程序,从而实现如图1所述脉冲神经网络中减少权重储存的卷积运算实现方法中的各种功能。
可选的,所述存储器51,可能包括但不限于高速随机存取存储器、非易失性存储器。例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备;所述处理器52,可能包括但不限于中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选的,所述处理器52可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明还提供计算机可读存储介质,存储有计算机程序,所述计算机程序运行时实现如图1所示的脉冲神经网络中减少权重储存的卷积运算实现方法。所述计算机可读存储介质可包括,但不限于,软盘、光盘、CD-ROM(只读光盘存储器)、磁光盘、ROM(只读存储器)、 RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存、或适于存储机器可执行指令的其他类型的介质/机器可读介质。所述计算机可读存储介质可以是未接入计算机设备的产品,也可以是已接入计算机设备使用的部件。
综上所述,本发明脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端,本发明通过一个神经元核只存储一个神经元的权重,神经元核中的其他神经元的权重根据存储的权重进行变换得到,大大降低了权重存储空间。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种脉冲神经网络中减少权重储存的卷积运算实现方法,其特征在于,所述方法包括:
获取储存的神经核中第一神经元的一维权重向量;其中,所述神经核包括:依次排列的N个神经元;并且其中,N为大于或等于1的整数;
对所述第一神经元的一维权重向量进行移位,获得对应所述神经核的第i神经元的一维权重向量;其中,i为大于1且小于或等于N的整数;
将第i神经元的一维权重向量与对应该神经元的轴突向量进行卷积计算,获得对应第i神经元的神经元膜电压计算结果。
2.根据权利要求1中所述的脉冲神经网络中减少权重储存的卷积运算实现方法,其特征在于,所述对所述第一神经元的一维权重向量进行移位,获得对应所述神经核中的第i神经元的一维权重向量的方式包括:
对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
3.根据权利要求2中所述的脉冲神经网络中减少权重储存的卷积运算实现方法,其特征在于,所述对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量的方式包括:
当判断卷积步长stride为1时,对所述第一神经元的一维权重向量右移i-1个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;
当判断卷积步长stride不为1时,对所述第一神经元的一维权重向量右移(i-1)*stride个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
4.根据权利要求2中所述的脉冲神经网络中减少权重储存的卷积运算实现方法,其特征在于,所述轴突向量由特征图上每个单元按照预设映射顺序映射到对应该神经元的所有轴突输入上获得。
5.根据权利要求4中所述的脉冲神经网络中减少权重储存的卷积运算实现方法,其特征在于,所述对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量的方式包括:
当判断轴突输入的通道数不为1时,基于所述轴突向量的预设映射顺序,对所述第一神经元的一维权重向量右移一或多个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量。
6.根据权利要求5中所述的脉冲神经网络中减少权重储存的卷积运算实现方法,其特征在于,所述基于所述轴突向量的预设映射顺序,对所述第一神经元的一维权重向量右移一或多个权重位宽的方式包括:
若所述轴突向量的预设映射顺序为一个通道内所述特征图的各单元从左到右从上到下的顺序顺次映射完毕,下一个通道内所述特征图的各单元从左到右从上到下的顺序顺次映射完毕,直到所有通道映射完毕的顺序时,对所述第一神经元的一维权重向量右移(i-1)*stride个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;
若所述轴突向量的预设映射顺序为所述特征图的每个单元从通道0开始按通道数递增的顺序将所有通道映射完毕,再从左到右从上到下的顺序顺次映射完毕,直到所有通道映射完毕的顺序时,对所述第一神经元的一维权重向量右移(i-1)*stride*inchannel_count个权重位宽,获得对应所述神经核中的第i神经元的一维权重向量;其中,所述inchannel_count为轴突输入的通道数。
7.根据权利要求1中所述的脉冲神经网络中减少权重储存的卷积运算实现方法,其特征在于,所述将第i神经元的一维权重向量与对应该神经元的轴突向量进行卷积计算,获得对应第i神经元的神经元膜电压计算结果的方式包括:
将第i神经元的一维权重向量与对应该神经元的轴突向量的转置相乘,获得对应第i神经元的神经元膜电压计算结果。
8.一种脉冲神经网络中减少权重储存的卷积运算实现电路,其特征在于,所述电路包括:
权重储存器,用于储存一或多个神经核的第一神经元的一维权重向量;
权重获取模块,连接所述权重储存器,用于获取储存的各神经核中第一神经元的一维权重向量;其中,每个神经核包括:依次排列的N个神经元;并且其中,N为大于或等于1的整数;
权重移位模块,连接所述权重获取模块,用于对各神经核的第一神经元的一维权重向量分别进行移位,获得对应各神经核的第i神经元的一维权重向量;其中,i为大于1且小于或等于N的整数;
一或多个计算模块,连接所述权重移位模块,用于将各神经核的第i神经元的一维权重向量与对应各神经核的第i神经元的轴突向量进行卷积计算,获得对应各神经核的第i神经元的神经元膜电压计算结果。
9.根据权利要求8中所述的脉冲神经网络中减少权重储存的卷积运算实现电路,其特征在于,所述电路还包括:
神经元计数模块,连接所述权重移位模块,用于对进行移位的各神经核的神经元计数。
10.一种脉冲神经网络中减少权重储存的卷积运算实现终端,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行如权利要求1至7中任一项所述的脉冲神经网络中减少权重储存的卷积运算实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110909685.1A CN113688983B (zh) | 2021-08-09 | 2021-08-09 | 脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110909685.1A CN113688983B (zh) | 2021-08-09 | 2021-08-09 | 脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113688983A true CN113688983A (zh) | 2021-11-23 |
CN113688983B CN113688983B (zh) | 2024-07-05 |
Family
ID=78579236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110909685.1A Active CN113688983B (zh) | 2021-08-09 | 2021-08-09 | 脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113688983B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103201610A (zh) * | 2010-10-29 | 2013-07-10 | 国际商业机器公司 | 带有使用模拟学习的突触权重的神经形态-突触器脉冲神经网络 |
CN106529670A (zh) * | 2016-10-27 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
CN107977704A (zh) * | 2017-11-10 | 2018-05-01 | 中国科学院计算技术研究所 | 权重数据存储方法和基于该方法的神经网络处理器 |
US20200218963A1 (en) * | 2019-01-07 | 2020-07-09 | International Business Machines Corporation | Weight shifting for neuromorphic synapse array |
CN111475986A (zh) * | 2020-04-02 | 2020-07-31 | 重庆大学 | 一种基于lstm-aon的齿轮剩余寿命的预测方法 |
CN111582451A (zh) * | 2020-05-08 | 2020-08-25 | 中国科学技术大学 | 图像识别层间并行流水线型二值化卷积神经网络阵列架构 |
CN111814408A (zh) * | 2020-08-25 | 2020-10-23 | 安徽大学 | 一种基于条件变分自编码器的电机数据生成模型建模方法 |
CN111950191A (zh) * | 2020-07-07 | 2020-11-17 | 湖南大学 | 基于混合深度神经网络的回转窑烧结温度预测方法 |
CN112183739A (zh) * | 2020-11-02 | 2021-01-05 | 中国科学技术大学 | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 |
CN112534445A (zh) * | 2018-07-20 | 2021-03-19 | 意大利电信股份公司 | 具有数量被减少的参数的神经网络 |
CN112598119A (zh) * | 2021-01-05 | 2021-04-02 | 中国人民解放军国防科技大学 | 一种面向液体状态机的神经形态处理器片上存储压缩方法 |
CN112712457A (zh) * | 2021-01-14 | 2021-04-27 | 清华大学 | 数据处理方法以及人工智能处理器 |
CN112711898A (zh) * | 2019-10-25 | 2021-04-27 | 黑莓有限公司 | 用于装运集装箱有载与空载估计的方法和*** |
CN112784972A (zh) * | 2021-01-15 | 2021-05-11 | 之江实验室 | 一种面向片上神经网络的突触实现架构 |
CN113128675A (zh) * | 2021-04-21 | 2021-07-16 | 南京大学 | 一种基于脉冲神经网络的无乘法卷积调度器及其硬件实现方法 |
-
2021
- 2021-08-09 CN CN202110909685.1A patent/CN113688983B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103201610A (zh) * | 2010-10-29 | 2013-07-10 | 国际商业机器公司 | 带有使用模拟学习的突触权重的神经形态-突触器脉冲神经网络 |
CN106529670A (zh) * | 2016-10-27 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
CN107977704A (zh) * | 2017-11-10 | 2018-05-01 | 中国科学院计算技术研究所 | 权重数据存储方法和基于该方法的神经网络处理器 |
CN112534445A (zh) * | 2018-07-20 | 2021-03-19 | 意大利电信股份公司 | 具有数量被减少的参数的神经网络 |
US20200218963A1 (en) * | 2019-01-07 | 2020-07-09 | International Business Machines Corporation | Weight shifting for neuromorphic synapse array |
CN112711898A (zh) * | 2019-10-25 | 2021-04-27 | 黑莓有限公司 | 用于装运集装箱有载与空载估计的方法和*** |
CN111475986A (zh) * | 2020-04-02 | 2020-07-31 | 重庆大学 | 一种基于lstm-aon的齿轮剩余寿命的预测方法 |
CN111582451A (zh) * | 2020-05-08 | 2020-08-25 | 中国科学技术大学 | 图像识别层间并行流水线型二值化卷积神经网络阵列架构 |
CN111950191A (zh) * | 2020-07-07 | 2020-11-17 | 湖南大学 | 基于混合深度神经网络的回转窑烧结温度预测方法 |
CN111814408A (zh) * | 2020-08-25 | 2020-10-23 | 安徽大学 | 一种基于条件变分自编码器的电机数据生成模型建模方法 |
CN112183739A (zh) * | 2020-11-02 | 2021-01-05 | 中国科学技术大学 | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 |
CN112598119A (zh) * | 2021-01-05 | 2021-04-02 | 中国人民解放军国防科技大学 | 一种面向液体状态机的神经形态处理器片上存储压缩方法 |
CN112712457A (zh) * | 2021-01-14 | 2021-04-27 | 清华大学 | 数据处理方法以及人工智能处理器 |
CN112784972A (zh) * | 2021-01-15 | 2021-05-11 | 之江实验室 | 一种面向片上神经网络的突触实现架构 |
CN113128675A (zh) * | 2021-04-21 | 2021-07-16 | 南京大学 | 一种基于脉冲神经网络的无乘法卷积调度器及其硬件实现方法 |
Non-Patent Citations (2)
Title |
---|
徐志康: "脉冲神经网络在线学习处理核设计与实现", 《中国优秀硕士论文全文数据库》 * |
李凌开: "基于神经元转换方法的混合卷积脉冲神经网络", 《杭州电子科技大学学报(自然科学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113688983B (zh) | 2024-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844826B (zh) | 神经网络处理单元及包含该处理单元的处理*** | |
US10394929B2 (en) | Adaptive execution engine for convolution computing systems | |
CN107578098B (zh) | 基于脉动阵列的神经网络处理器 | |
EP3179415B1 (en) | Systems and methods for a multi-core optimized recurrent neural network | |
CN111242289B (zh) | 一种规模可扩展的卷积神经网络加速***与方法 | |
CN107609641B (zh) | 稀疏神经网络架构及其实现方法 | |
KR101788829B1 (ko) | 콘볼루션 신경망 컴퓨팅 장치 | |
CN107766292B (zh) | 一种神经网络处理方法及处理*** | |
Chen et al. | Neuromorphic computing's yesterday, today, and tomorrow–an evolutional view | |
CN110580519B (zh) | 一种卷积运算装置及其方法 | |
Ienne et al. | Modified self-organizing feature map algorithms for efficient digital hardware implementation | |
CN108985449B (zh) | 一种对卷积神经网络处理器的控制方法及装置 | |
JP7332722B2 (ja) | データ処理方法、装置、記憶媒体及び電子機器 | |
CN111368981B (zh) | 减小突触连接的存储面积的方法、装置、设备和存储介质 | |
Sommer et al. | Efficient hardware acceleration of sparsely active convolutional spiking neural networks | |
CN112016522B (zh) | 一种视频数据处理方法、***及相关组件 | |
KR20200020117A (ko) | 파이프라인 구조를 가지는 인공신경망용 연산 가속 장치 | |
CN113688983A (zh) | 脉冲神经网络中减少权重储存的卷积运算实现方法、电路及终端 | |
Chitty-Venkata et al. | Array aware training/pruning: Methods for efficient forward propagation on array-based neural network accelerators | |
US20230065725A1 (en) | Parallel depth-wise processing architectures for neural networks | |
EP4384899A1 (en) | Partial sum management and reconfigurable systolic flow architectures for in-memory computation | |
CN114296684A (zh) | 交叉开关阵列装置和使用该装置的模拟乘积累加操作方法 | |
Kim et al. | Markov chain Hebbian learning algorithm with ternary synaptic units | |
CN110765413A (zh) | 矩阵求和结构及神经网络计算平台 | |
KR102548283B1 (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 |