CN105844330B - 神经网络处理器的数据处理方法及神经网络处理器 - Google Patents
神经网络处理器的数据处理方法及神经网络处理器 Download PDFInfo
- Publication number
- CN105844330B CN105844330B CN201610165618.2A CN201610165618A CN105844330B CN 105844330 B CN105844330 B CN 105844330B CN 201610165618 A CN201610165618 A CN 201610165618A CN 105844330 B CN105844330 B CN 105844330B
- Authority
- CN
- China
- Prior art keywords
- input data
- absolute value
- data
- nonlinear mapping
- neural network
- 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
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例提供一种神经网络处理器的数据处理方法及神经网络处理器。该方法包括:通过加法器将输入数据和相应的权重绝对值相加,输入数据为前一级输出的数据,输入数据和权重绝对值为n元向量,依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射。将第一非线性映射后的结果通过累加器进行n次累加操作,累加操作包括权重符号位控制的加法操作和减法操作,将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。从而提高了量化效率,降低了数据的存储需求和带宽需求。
Description
技术领域
本发明实施例涉及电子芯片技术领域,尤其涉及一种神经网络处理器的数据处理方法及神经网络处理器。
背景技术
神经网络及深度学习算法已经获得了非常成功的应用,并处于迅速发展的过程中,业界普遍预期新的计算方式有助于实现更为普遍、复杂的智能应用。神经网络及深度学习算法近年来在图像识别应用领域取得了非常突出的成就,因此业界对神经网络及深度学习算法的优化及高效率实现开始关注并重视,诸如facebook,Qualcomm,***,***等公司都投入了神经网络优化算法的研究。Qualcomm公司发布了在下一代芯片中集成神经网络处理模块的计划,提高神经网络算法的处理效率,相关算法的改进,及芯片实现的效率是其关注和研究的核心问题。
图1为一个n级(层)的神经网络计算模型示意图,神经网络处理其中的一个神经元的计算形如:y=f(x1*w1+x2*w2+…+xn*wn+b),计算是分级进行的,前一级的输出是后一级的输入。图2为传统的计算方法流程图,前级输出作为数据输入(x1、x2、…xn),x1、x2、…xn分别与对应的权参数相乘,然后由累加器完成x1*w1+x2*w2+…+xn*wn+b的累加操作,再经过非线性映射y=f(累加后的结果)得到计算结果,最后完成数据输出。
可以看出,在上述数据处理方法中,由于涉及到的乘法的计算复杂度比较高,在一定计算精度要求下,对应数据的存储需求和带宽需求也比较高,计算效率不高。
发明内容
本发明实施例提供一种神经网络处理器的数据处理方法及神经网络处理器,以解决现有的处理方法中存在的数据的存储需求和带宽需求较高、计算效率不高的问题。
第一方面,本发明实施例提供一种神经网络处理器的数据处理方法,该方法包括:首先通过加法器将输入数据和相应的权重绝对值相加,输入数据为前一级输出的数据,输入数据和权重绝对值为n元向量。接着依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射。然后将第一非线性映射后的结果通过累加器进行n次累加操作,累加操作包括权重符号位控制的加法操作和减法操作。最后将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。从而实现了将复杂的乘法计算转变为加法计算,提高了量化效率,存储的容量和带宽可以压缩,因此降低了数据的存储需求和带宽需求,提高了计算效率。而且输入数据不限于0/1二元量化,使得计算精度满足实际应用网络的需求,能适用除神经网络计算以外更广范围的应用目标。
在一个可能的设计中,第一非线性映射为2的M次幂变换,M为输入数据和相应的权重绝对值相加后的n项数据中的各项。采用2的M次幂变换由于映射关系简单,硬件实现代价低。
在一个可能的设计中,当第一非线性映射是m的M次幂变换,m不等于2时,为使电路实现简单,将m的M次幂变换转换为2的M次幂变换,通过加法器将输入数据和相应的权重绝对值相加之前,还包括:对输入数据乘以比例系数K1,和/或,对权重绝对值乘以比例系数K2,K1与K2相等或不等;或者,通过加法器将输入数据和相应的权重绝对值相加之后,还包括:对相加后的n项数据中的各项乘以比例系数K3。其中,K1、K2、K3不等于0。
在一个可能的设计中,K1、K2、K3为1+1/2N或1-1/2N。
在一个可能的设计中,输入数据或权重绝对值等于0时,累加操作为当前累加项维持不变。权重符号位为负时,累加操作为减法操作。累加器处于维持状态,由于在实际的神经网络计算过程中,无论数输入数据还是权重,存在大量的0,因此这样可以简化处理,降低功耗。
在一个可能的设计中,通过模拟电路实现第一非线性映射或第二非线性映射或累加操作。模拟非线性转换,加法的实现都是可以瞬时完成的,不依懒于数字时钟的速率。
第二方面,本发明实施例提供一种神经网络处理器,包括:加法电路,用于将输入数据和相应的权重绝对值相加,输入数据为前一级输出的数据,输入数据和权重绝对值为n元向量。第一非线性映射电路,用于依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射。累加电路,用于将第一非线性映射后的结果进行n次累加操作,累加操作包括权重符号位控制的加法操作和减法操作。第二非线性映射电路,用于将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。
在一个可能的设计中,第一非线性映射电路为2的M次幂变换电路,M为输入数据和相应的权重绝对值相加后的n项数据中的各项。
在一个可能的设计中,还包括:第一乘法电路,用于在加法电路将输入数据和相应的权重绝对值相加之前,对输入数据乘以比例系数K1;和/或,第二乘法电路,用于在加法电路将输入数据和相应的权重绝对值相加之前,对权重绝对值乘以比例系数K2,K1与K2相等或不等;或者,第三乘法电路,用于在加法电路将输入数据和相应的权重绝对值相加之后,对相加后的n项数据中的各项乘以比例系数K3;其中,K1、K2、K3不等于0。
在一个可能的设计中,K1、K2、K3为1+1/2N或1-1/2N。
在一个可能的设计中,输入数据或权重绝对值等于0时,累加操作为当前累加项维持不变;权重符号位为负时,累加操作为减法操作。
上述第二方面以及上述第二方面的各可能的设计中所提供的神经网络处理器,其有益效果可以参见上述第一方面和第一方面的各可能的设计中所带来的有益效果,在此不再赘述。
本发明实施例提供的神经网络处理器的数据处理方法及神经网络处理器,通过加法器将输入数据和相应的权重绝对值相加,输入数据为前一级输出的数据,接着依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射,将第一非线性映射后的结果通过累加器进行n次累加操作,累加操作包括权重符号位控制的加法操作和减法操作,最后将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。从而实现了将复杂的乘法计算转变为加法计算,提高了量化效率,存储的容量和带宽可以压缩,因此降低了数据的存储需求和带宽需求,提高了计算效率。而且输入数据不限于0/1二元量化,使得计算精度满足实际应用网络的需求,能适用除神经网络计算以外更广范围的应用目标。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个n级(层)的神经网络计算模型示意图;
图2为传统的计算方法流程图;
图3为本发明神经网络处理器的数据处理方法实施例一的流程图;
图4为本发明神经网络处理器的数据处理方法实施例二的计算框图;
图5为本发明神经网络处理器的数据处理方法实施例三的计算框图;
图6为本发明神经网络处理器的数据处理方法实施例三中2的M次幂变换示意图;
图7为本发明神经网络处理器实施例一的结构示意图;
图8为本发明神经网络处理器实施例二的结构示意图;
图9为本发明神经网络处理器实施例三的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
本发明实施例提供一种神经网络处理器的数据处理方法及神经网络处理器,可应用于例如图像数据、语音数据、视频数据等数据需要进行神经网络计算的场景,接收到的数据作为输入数据进行神经网络计算(单级神经网络计算或多级神经网络计算),通过本发明实施例提供的下述数据处理方法,复杂的乘法计算转变为加法计算,提高了量化效率,存储的容量和带宽可以压缩,因此降低了数据的存储需求和带宽需求,提高了计算效率。
本发明实施例提供的神经网络处理器可能有物理实体形式。例如,在云端服务器应用场合,可以是独立的处理芯片,在终端(如手机)应用上,可以是终端处理器芯片里的一个模块。信息的输入来自语音、图像、自然语言等需要智能处理的各种信息输入,经过必要的预处理(如采样,模数转换,特征提取等)形成待进行神经网络运算的数据。信息的输出送到其他后续处理模块或软件,例如图形或其他可以理解可用的表现方式。其中,在云端应用形态下,神经网络处理器的前后级的处理单元例如可以由其他服务器运算单元承担,在终端应用环境下,神经网络处理器的前后级处理单元可由终端软硬件的其他部分(如包括传感器、接口电路等)完成。
图3为本发明神经网络处理器的数据处理方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
S101、通过加法器将输入数据和相应的权重绝对值相加,输入数据为前一级输出的数据,输入数据和权重绝对值为n元向量。
对于多级神经网络,前一级的输出作为后一级的输入。其中的权重包括权重绝对值和权重符号位。
S102、依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射。
其中,第一非线性映射可以是任意底数m的M次幂变换,还可以是形如y=A*mB,y=B*B的非线性变换。优选地,第一非线性映射为2的M次幂变换,M为输入数据和相应的权重绝对值相加后的数据中的各项。采用2的M次幂变换由于映射关系简单,硬件实现代价低。
S103、将第一非线性映射后的结果通过累加器进行n次累加操作。
累加操作包括权重符号位控制的加法操作和减法操作,即就是说,权重符号位为负,则累加器做减法运算,权重符号位为正,累加器做加法运算。
S104、将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。
其中,当第一非线性映射是m的M次幂变换,m不等于2时,为使电路实现简单,将m的M次幂变换转换为2的M次幂变换,具体通过:S101中通过加法器将输入数据和相应的权重绝对值相加之前,还包括:
对输入数据乘以比例系数K1,和/或,对权重绝对值乘以比例系数K2,K1与K2相等或不等;或者,通过加法器将输入数据和相应的权重绝对值相加之后,还包括:对相加后的n项数据中的各项乘以比例系数K3。其中,K1、K2、K3不等于0,可选地,K1、K2、K3可以为1+1/2N或1-1/2N。
通过上述操作,在电路实现时可以将m的M次幂变换转化为2的M次幂变换来实现,因为2的M次幂变换的映射关系简单,硬件实现代价低。
进一步地,输入数据或权重绝对值存在等于0的情况,权重也存在为负数的情况,因此,输入数据或权重绝对值等于0时,累加操作为当前累加项维持不变。累加器处于维持状态,由于在实际的神经网络计算过程中,无论数输入数据还是权重,存在大量的0,因此这样可以简化处理,降低功耗。
权重符号位为负时,累加操作为减法操作,即累加器做减法运算。做减法就是对原来的数取反加1。
可选地,可以通过模拟电路实现第一非线性映射或第二非线性映射或累加操作。模拟非线性转换,加法的实现都是可以瞬时完成的,不依懒于数字时钟的速率。
需要说明的是,本发明实施例中上文提到的加法器、累加器以及下文提到的乘法器是分立的、物理的电路,不是通过通用CPU实现的软件模块。
本实施例提供的神经网络处理器的数据处理方法,通过加法器将输入数据和相应的权重绝对值相加,输入数据为前一级输出的数据,接着依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射,将第一非线性映射后的结果通过累加器进行n次累加操作,累加操作包括权重符号位控制的加法操作和减法操作,最后将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。从而实现了将复杂的乘法计算转变为加法计算,提高了量化效率,存储的容量和带宽可以压缩,因此降低了数据的存储需求和带宽需求,提高了计算效率。而且输入数据不限于0/1二元量化,使得计算精度满足实际应用网络的需求,能适用除神经网络计算以外更广范围的应用目标。
下面结合公式推导过程和一个具体的实施例详细说明本发明实施例提供的神经网络处理器的数据处理方法的处理过程。
具体地,采用m的M次幂变换将复杂的乘法计算转变为加法计算,详细的计算公式推导过程如下:
以背景技术中提到形如y=f(x1*w1+x2*w2+…+xn*wn+b)的计算为例,
先假设x>0,s(w)为W的符号位。
y=f(s(w1)eln(x1)+ln(|w1|)+s(w2)eln(x2)+ln(|w2|)+…s(wn)eln(xn)+ln(|wn|)+b)
ln(y)=ln(f(s(w1)eln(x1)+ln(|w1|)+s(w2)eln(x2)+ln(|w2|)+…s(wn)eln(xn)+ln(|wn|)+b))
假设u=ln(y),v=ln(x),c=ln(|w|),这个公式重新表示为:
u=ln(f(s(w1)ev1+c1+s(w2)ev2+c2+…s(wn)evn+cn+b))
如果指数关系是2的指数,对数关系是以2为底的对数,计算公式写为:
y=f(s(w1)2log 2 (x1)+log 2 (|w1|)+s(w2)2log 2 (x2)+log 2 (|w2|)+…+s(wn)2log 2 (xn)+log 2 (|wn|)…+b)
log2y=log2f(s(w1)2log 2 (x1)+log 2 (|w1|)+s(w2)2log 2 (x2)+log 2 (|w2|)+…+s(wn)2log 2 (xn)+log 2 (|wn|)…+b)
假设u=log2y,v=log2x,c=log2|w|,这个公式重新表示为:
u=log2f(s(w1)2v1+c1+s(w2)2v2+c2+…s(wn)2vn+cn+b)
令g(x)=2(x),ff(x)=log2f(x),则计算公式简写为:
u=ff(s(w1)g(v1+c1)+s(w2)g(v2+c2)+…s(wn)g(vn+cn)+b)
其中,g(x)对应第一非线性映射,ff(x)对应第二非线性映射。图4为本发明神经网络处理器的数据处理方法实施例二的计算框图,如图4所示,前级输出作为输入数据,输入数据和相应的权重绝对值为n元向量,首先通过加法器将输入数据和相应的权重绝对值相加,得到相加后的n项数据v1+c1、v2+c2、、、vn+cn,依次将相加后的n项数据v1+c1、v2+c2、、、vn+cn进行n次第一非线性映射(g(x)=2(x)),得到第一非线性映射后的结果2v1+c1、2v2+c2、、、2vn+cn,接着进行n次累加操作得到2v1+c1+2v2+c2+…2vn+cn+b,如果输入数据或权重为0,则当前累加项维持不变。如果权重符号位为负,则累加器做减法运算。最后将n次累加操作后的结果进行第二非线性映射(ff(x))得到处理结果并进行数据输出。
如果指数关系是以m为底的指数,对数关系是以m为底的对数,计算公式写为:
y=f(s(w1)mlog m (x1)+log m (|w1|)+s(w2)mlog m (x2)+log m (|w2|)+…+s(wn)mlog m (xn)+log m (|wn|)…+b)
logmy=logmf(s(w1)mlog m (x1)+log m (|w1|)+s(w2)mlog m (x2)+log m (|w2|)+…+s(wn)mlog m (xn)+log m (|wn|)…+b)
假设u=logmy,v=logmx,c=logm|w|,这个公式重新表示为:
u=logmf(s(w1)mv1+c1+s(w2)mv2+c2+…+s(wn)mvn+cn+b)
u=logmf(s(w1)2(v1+c1)*log 2 m+s(w2)2(v2+c2)*log 2 m+…+s(wn)2(vn+cn)*log 2 m+b)
令g(x)=2(x),ff(x)=logmf(x),k=log2m,则计算公式简写为:
u=ff(s(w1)g(c1*k+v1*k)+s(w2)g(c2*k+v2*k)+…s(wn)g(cn*k+vn*k)+b)
其中g(x)对应第一非线性映射,ff(x)对应第二非线性映射。如图5所示,图5为本发明神经网络处理器的数据处理方法实施例三的计算框图。上述计算公式中的k为所乘的比例系数,通过在加法器将输入数据和相应的权重绝对值相加之前或之后乘以比例系数k,可将m的M次幂变换转换为2的M次幂变换,使得映射关系简单,电路实现上也简单,进而硬件实现代价低。结合图5,本实施的方法包括:
S201、从n-1级数据输出单元输出的数据(即前级输出)作为n级的输入数据。
S202、n级的加法器对本级的输入数据和相应的权重绝对值做相加操作。
S203、在输入数据和权重绝对值相加的通道上,或者在输入数据和相应的权重绝对值相加后的结果上,乘以比例系数k,常用的比例系数k例如型如1+1/2N,1-1/2N的比例系数。
S204、依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射。
其中,第一非线性映射例如是可以简化设计的2的M次幂变换。图6为本发明神经网络处理器的数据处理方法实施例三中2的M次幂变换示意图,如图6所示,具体包括:
S2041、相加后的数据中,数据的浮点部分,经过译码器电路,转换为反映浮点权实际大小的二进制数。
S2042、数据的小数部分,经过查表或简化的组合电路,完成数据的指数变换映射。
S2043、指数变换后的数据,和浮点的权,通过组合电路结合完成非常简单的1位对n位乘法,形成最后的结果。
S205、累加器对第一非线性映射后输出的累加项进行n次累加操作。如果输入数据或权重为0,则当前累加项维持不变。如果权重符号位为负,则累加器做减法运算。
S206、将n次累加操作后的结果进行第二非线性映射。一般地,该第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。该变换的一个特例是包括了2种变换的级联,其1是神经网络原始的非线性变换,例如Sigmoid,ReLU等,其2是调整数据分布规律的对数变换。
S207、将处理结果进行数据输出。
例如,对应一个形如:y=f(x1*w1+x2*w2+…+xn*wn+b)的计算,x,w,y的原始数据精度需要单精度的浮点(32bit),至少也需要16bit的定点数,对应的数据带宽按16bit成比例计算,同时需要16bit的乘法器。
首先可以对x,w,y都进行对数变换,A=logmB。实验表明,变换后的数据,8比特的量化可以满足实用的要求,甚至还可以进一步做到6比特,4比特。
变换后的数据记为P.Q,其中P是小数点前的部分,Q是小数点后面的部分,P有p位,Q有q位,p+q是数据的总比特数。
本实施例中用Pv.Qv表示对应的,经过变换后的x,w,y数据。
因此,经过对数变换后的加法计算就转变为:
没有进位的情况:Px.Qx+Pw.Qw=(Px+Pw).(Qx+Qw)或
有进位的情况:Px.Qx+Pw.Qw=(Px+Pw+1).(Qx+Qw-1)
记做:Pt.Qt
对Pt.Qt做一个简单的乘法,乘的系数为:Log2m,通过这个乘法,可以把后续需要做的mPt.Qt,转换为2Ps.Qs来做。而Ps.Qs=Pt.Qt*Log2m。
在多数情况下,取2的对数或指数可以满足应用要求。特殊情况下,如果适当调整的对数关系可以更好地满足应用的要求,可以通过乘这个系数来适当调节。通过一次加法,可以满足的调整范围为型如:1+1/2N,1-1/2N的任意系数。假设Pt是4bit,Qt是4bit,后续的计算,Pt直接送到4线转16线的译码器,而Qt直接送一个4bit到4bit的查找表,或反映指数映射数据规律的简单组合电路。
图7为本发明神经网络处理器实施例一的结构示意图,如图7所示,本实施例的神经网络处理器可以包括:加法电路11、第一非线性映射电路12、累加电路13和第二非线性映射电路14。其中,加法电路11用于将输入数据和相应的权重绝对值相加,输入数据为前一级输出的数据,输入数据和权重绝对值为n元向量。第一非线性映射电路12用于依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射。累加电路13用于将第一非线性映射后的结果进行n次累加操作,累加操作包括权重符号位控制的加法操作和减法操作。第二非线性映射电路14用于将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。
其中,第一非线性映射电路12可以是任意底数m的M次幂变换电路,还可以是形如y=A*mB,y=B*B的非线性变换电路。优选地,第一非线性映射电路12为2的M次幂变换电路,M为输入数据和相应的权重绝对值相加后的n项数据中的各项。
进一步地,当第一非线性映射电路12是m的M次幂变换电路,m不等于2时,为使电路实现简单,将m的M次幂变换转换为2的M次幂变换,具体地,图8为本发明神经网络处理器实施例二的结构示意图,如图8所示,在图7所示神经网络处理器的基础上,进一步地,还包括:第一乘法电路15,用于在加法电路11将输入数据和相应的权重绝对值相加之前,对输入数据乘以比例系数K1;和/或,第二乘法电路16,用于在加法电路11将输入数据和相应的权重绝对值相加之前,对权重绝对值乘以比例系数K2,K1与K2相等或不等。
图9为本发明神经网络处理器实施例三的结构示意图,如图9所示,在图7所示神经网络处理器的基础上,进一步地,还包括:第三乘法电路17,用于在加法电路11将输入数据和相应的权重绝对值相加之后,对相加后的n项数据中的各项乘以比例系数K3。
其中,K1、K2、K3不等于0。可选的,K1、K2、K3可以为1+1/2N或1-1/2N。
进一步地,输入数据或权重绝对值等于0时,累加操作为当前累加项维持不变;权重符号位为负时,累加操作为减法操作。累加器处于维持状态,由于在实际的神经网络计算过程中,无论数输入数据还是权重,存在大量的0,因此这样可以简化处理,降低功耗。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本实施例提供的神经网络处理器,通过加法电路将输入数据和相应的权重绝对值相加,输入数据为前一级输出的数据,接着第一非线性映射电路依次将输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射,累加电路将第一非线性映射后的结果通过累加器进行n次累加操作,累加操作包括权重符号位控制的加法操作和减法操作,最后第二非线性映射电路将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,第二非线性映射根据神经网络非线性映射的规律和第一非线性映射的逆映射制定。从而实现了将复杂的乘法计算转变为加法计算,提高了量化效率,存储的容量和带宽可以压缩,因此降低了数据的存储需求和带宽需求,提高了计算效率。而且输入数据不限于0/1二元量化,使得计算精度满足实际应用网络的需求,能适用除神经网络计算以外更广范围的应用目标。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的范围。
Claims (11)
1.一种神经网络处理器的数据处理方法,其特征在于,包括:
通过加法器将输入数据和相应的权重绝对值相加,所述输入数据为前一级输出的数据,所述输入数据和所述权重绝对值为n元向量;
依次将所述输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射;
将第一非线性映射后的结果通过累加器进行n次累加操作,所述累加操作包括权重符号位控制的加法操作和减法操作;
将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,所述第二非线性映射根据神经网络非线性映射的规律和所述第一非线性映射的逆映射制定。
2.根据权利要求1所述的方法,其特征在于,所述第一非线性映射为2的M次幂变换,M为所述输入数据和相应的权重绝对值相加后的n项数据中的各项。
3.根据权利要求1所述的方法,其特征在于,所述通过加法器将输入数据和相应的权重绝对值相加之前,还包括:
对所述输入数据乘以比例系数K1,和/或,对所述权重绝对值乘以比例系数K2,K1与K2相等或不等;或者,
所述通过加法器将输入数据和相应的权重绝对值相加之后,还包括:
对相加后的n项数据中的各项乘以比例系数K3;
其中,K1、K2、K3不等于0。
4.根据权利要求3所述的方法,其特征在于,K1、K2、K3为1+1/2N或1-1/2N。
5.根据权利要求1-4任一项所述的方法,其特征在于,
所述输入数据或所述权重绝对值等于0时,所述累加操作为当前累加项维持不变;
所述权重符号位为负时,所述累加操作为减法操作。
6.根据权利要求1-4任一项所述的方法,其特征在于,通过模拟电路实现所述第一非线性映射或所述第二非线性映射或所述累加操作。
7.一种神经网络处理器,其特征在于,包括:
加法电路,用于将输入数据和相应的权重绝对值相加,所述输入数据为前一级输出的数据,所述输入数据和所述权重绝对值为n元向量;
第一非线性映射电路,用于依次将所述输入数据和相应的权重绝对值相加后的n项数据进行n次第一非线性映射;
累加电路,用于将第一非线性映射后的结果进行n次累加操作,所述累加操作包括权重符号位控制的加法操作和减法操作;
第二非线性映射电路,用于将n次累加操作后的结果进行第二非线性映射得到处理结果并进行数据输出,所述第二非线性映射根据神经网络非线性映射的规律和所述第一非线性映射的逆映射制定。
8.根据权利要求7所述的神经网络处理器,其特征在于,所述第一非线性映射电路为2的M次幂变换电路,M为所述输入数据和相应的权重绝对值相加后的n项数据中的各项。
9.根据权利要求7所述的神经网络处理器,其特征在于,还包括:
第一乘法电路,用于在所述加法电路将输入数据和相应的权重绝对值相加之前,对所述输入数据乘以比例系数K1;和/或,
第二乘法电路,用于在所述加法电路将输入数据和相应的权重绝对值相加之前,对所述权重绝对值乘以比例系数K2,K1与K2相等或不等;
或者,
第三乘法电路,用于在所述加法电路将输入数据和相应的权重绝对值相加之后,对相加后的n项数据中的各项乘以比例系数K3;
其中,K1、K2、K3不等于0。
10.根据权利要求9所述的神经网络处理器,其特征在于,K1、K2、K3为1+1/2N或1-1/2N。
11.根据权利要求7-10任一项所述的神经网络处理器,其特征在于,所述输入数据或所述权重绝对值等于0时,所述累加操作为当前累加项维持不变;
所述权重符号位为负时,所述累加操作为减法操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610165618.2A CN105844330B (zh) | 2016-03-22 | 2016-03-22 | 神经网络处理器的数据处理方法及神经网络处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610165618.2A CN105844330B (zh) | 2016-03-22 | 2016-03-22 | 神经网络处理器的数据处理方法及神经网络处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105844330A CN105844330A (zh) | 2016-08-10 |
CN105844330B true CN105844330B (zh) | 2019-06-28 |
Family
ID=56587746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610165618.2A Active CN105844330B (zh) | 2016-03-22 | 2016-03-22 | 神经网络处理器的数据处理方法及神经网络处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105844330B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552732B2 (en) * | 2016-08-22 | 2020-02-04 | Kneron Inc. | Multi-layer neural network |
CN111126590B (zh) * | 2016-12-23 | 2023-09-29 | 中科寒武纪科技股份有限公司 | 一种人工神经网络运算的装置及方法 |
WO2018120019A1 (zh) * | 2016-12-30 | 2018-07-05 | 上海寒武纪信息科技有限公司 | 用于神经网络数据的压缩/解压缩的装置和*** |
US11315009B2 (en) * | 2017-03-03 | 2022-04-26 | Hewlett Packard Enterprise Development Lp | Analog multiplier-accumulators |
US11238334B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method of input alignment for efficient vector operations in an artificial neural network |
US10387298B2 (en) | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
US11544545B2 (en) | 2017-04-04 | 2023-01-03 | Hailo Technologies Ltd. | Structured activation based sparsity in an artificial neural network |
US11615297B2 (en) | 2017-04-04 | 2023-03-28 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network compiler |
US11551028B2 (en) | 2017-04-04 | 2023-01-10 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network |
CN109359736A (zh) * | 2017-04-06 | 2019-02-19 | 上海寒武纪信息科技有限公司 | 网络处理器和网络运算方法 |
CN108734280A (zh) * | 2017-04-21 | 2018-11-02 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
US11010338B2 (en) | 2017-04-06 | 2021-05-18 | Shanghai Cambricon Information Technology Co., Ltd | Data screening device and method |
CN107256424B (zh) * | 2017-05-08 | 2020-03-31 | 中国科学院计算技术研究所 | 三值权重卷积网络处理***及方法 |
CN107169563B (zh) | 2017-05-08 | 2018-11-30 | 中国科学院计算技术研究所 | 应用于二值权重卷积网络的处理***及方法 |
WO2019001418A1 (zh) * | 2017-06-26 | 2019-01-03 | 上海寒武纪信息科技有限公司 | 数据共享***及其数据共享方法 |
CN109214543B (zh) | 2017-06-30 | 2021-03-30 | 华为技术有限公司 | 数据处理方法及装置 |
CN109214509B (zh) * | 2017-07-05 | 2021-07-06 | 中国科学院沈阳自动化研究所 | 一种用于深度神经网络高速实时量化结构和运算实现方法 |
CN107729990B (zh) * | 2017-07-20 | 2021-06-08 | 上海寒武纪信息科技有限公司 | 支持离散数据表示的用于执行正向运算的装置及方法 |
CN107292458B (zh) * | 2017-08-07 | 2021-09-10 | 北京中星微人工智能芯片技术有限公司 | 一种应用于神经网络芯片的预测方法和预测装置 |
CN109726805B (zh) * | 2017-10-30 | 2021-02-09 | 上海寒武纪信息科技有限公司 | 利用黑盒模拟器进行神经网络处理器设计的方法 |
CN109725936B (zh) * | 2017-10-30 | 2022-08-26 | 上海寒武纪信息科技有限公司 | 扩展计算指令的实现方法以及相关产品 |
TWI657346B (zh) * | 2018-02-14 | 2019-04-21 | 倍加科技股份有限公司 | 資料減量及建立資料識別模型的方法、電腦系統及電腦可讀取的記錄媒體 |
CN111767998B (zh) * | 2018-02-27 | 2024-05-14 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN108510065A (zh) * | 2018-03-30 | 2018-09-07 | 中国科学院计算技术研究所 | 应用于长短时记忆神经网络的计算装置和计算方法 |
CN110413255B (zh) * | 2018-04-28 | 2022-08-19 | 赛灵思电子科技(北京)有限公司 | 人工神经网络调整方法和装置 |
CN110533174B (zh) * | 2018-05-24 | 2023-05-12 | 华为技术有限公司 | 神经网络***中数据处理的电路和方法 |
CN109242091B (zh) * | 2018-09-03 | 2022-03-22 | 郑州云海信息技术有限公司 | 图像识别方法、装置、设备及可读存储介质 |
CN111105019B (zh) * | 2018-10-25 | 2023-11-10 | 上海登临科技有限公司 | 一种神经网络运算装置和运算方法 |
CN109376854B (zh) * | 2018-11-02 | 2022-08-16 | 矽魅信息科技(上海)有限公司 | 用于深度神经网络的多底数对数量化装置 |
WO2020093654A1 (en) * | 2018-11-06 | 2020-05-14 | Genesys Logic, Inc. | Multichip system and data processing method adapted to the same for implementing neural network application |
US11263077B1 (en) | 2020-09-29 | 2022-03-01 | Hailo Technologies Ltd. | Neural network intermediate results safety mechanism in an artificial neural network processor |
US11221929B1 (en) | 2020-09-29 | 2022-01-11 | Hailo Technologies Ltd. | Data stream fault detection mechanism in an artificial neural network processor |
US11811421B2 (en) | 2020-09-29 | 2023-11-07 | Hailo Technologies Ltd. | Weights safety mechanism in an artificial neural network processor |
US11237894B1 (en) | 2020-09-29 | 2022-02-01 | Hailo Technologies Ltd. | Layer control unit instruction addressing safety mechanism in an artificial neural network processor |
CN112153081A (zh) * | 2020-11-24 | 2020-12-29 | 浙江齐安信息科技有限公司 | 一种工业网络异常状态的检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523453A (zh) * | 2011-12-29 | 2012-06-27 | 西安空间无线电技术研究所 | 一种图像超大压缩传输方法及传输*** |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理*** |
CN103501224A (zh) * | 2013-09-23 | 2014-01-08 | 长春理工大学 | 基于量子细胞神经网络***的非对称图像加密解密方法 |
CN105260773A (zh) * | 2015-09-18 | 2016-01-20 | 华为技术有限公司 | 一种图像处理装置以及图像处理方法 |
CN105389592A (zh) * | 2015-11-13 | 2016-03-09 | 华为技术有限公司 | 一种图像识别方法和装置 |
-
2016
- 2016-03-22 CN CN201610165618.2A patent/CN105844330B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523453A (zh) * | 2011-12-29 | 2012-06-27 | 西安空间无线电技术研究所 | 一种图像超大压缩传输方法及传输*** |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理*** |
CN103501224A (zh) * | 2013-09-23 | 2014-01-08 | 长春理工大学 | 基于量子细胞神经网络***的非对称图像加密解密方法 |
CN105260773A (zh) * | 2015-09-18 | 2016-01-20 | 华为技术有限公司 | 一种图像处理装置以及图像处理方法 |
CN105389592A (zh) * | 2015-11-13 | 2016-03-09 | 华为技术有限公司 | 一种图像识别方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105844330A (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105844330B (zh) | 神经网络处理器的数据处理方法及神经网络处理器 | |
CN107578099B (zh) | 计算装置和方法 | |
US20190164043A1 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
WO2020074989A1 (en) | Data representation for dynamic precision in neural network cores | |
CN112508125A (zh) | 一种图像检测模型的高效全整数量化方法 | |
CN108628807A (zh) | 浮点数矩阵的处理方法、装置、设备及计算机可读存储介质 | |
CN108229648A (zh) | 卷积计算方法和装置、电子设备、计算机存储介质 | |
WO2022111002A1 (zh) | 用于训练神经网络的方法、设备和计算机可读存储介质 | |
CN113255922A (zh) | 量子纠缠量化方法和装置、电子设备、计算机可读介质 | |
KR20220042315A (ko) | 교통 데이터 예측 방법, 장치 및 전자 기기 | |
CN117351299A (zh) | 图像生成及模型训练方法、装置、设备和存储介质 | |
CN115953651A (zh) | 一种基于跨域设备的模型训练方法、装置、设备及介质 | |
CN112532251A (zh) | 一种数据处理的方法及设备 | |
CN113361621B (zh) | 用于训练模型的方法和装置 | |
CN113139490B (zh) | 一种图像特征匹配方法、装置、计算机设备及存储介质 | |
CN115880502A (zh) | 检测模型的训练方法、目标检测方法、装置、设备和介质 | |
US10394810B1 (en) | Iterative Z-score calculation for big data using components | |
CN114841361A (zh) | 一种模型训练方法及其相关设备 | |
CN108805271A (zh) | 一种运算装置和方法 | |
KR20230076641A (ko) | 부동-소수점 연산을 위한 장치 및 방법 | |
CN112558918A (zh) | 用于神经网络的乘加运算方法和装置 | |
CN116188875B (zh) | 图像分类方法、装置、电子设备、介质和产品 | |
CN110782003A (zh) | 一种基于哈希学习的神经网络压缩方法及*** | |
CN110751274A (zh) | 一种基于随机投影哈希的神经网络压缩方法及*** | |
CN115951860A (zh) | 数据处理装置、数据处理方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |