CN108875919B - 数据处理装置、数据处理方法和存储介质产品 - Google Patents

数据处理装置、数据处理方法和存储介质产品 Download PDF

Info

Publication number
CN108875919B
CN108875919B CN201710602148.6A CN201710602148A CN108875919B CN 108875919 B CN108875919 B CN 108875919B CN 201710602148 A CN201710602148 A CN 201710602148A CN 108875919 B CN108875919 B CN 108875919B
Authority
CN
China
Prior art keywords
data
value
neurons
neuron
output
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
CN201710602148.6A
Other languages
English (en)
Other versions
CN108875919A (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.)
Beijing Kuangshi Technology Co Ltd
Beijing Megvii Technology Co Ltd
Original Assignee
Beijing Kuangshi Technology Co Ltd
Beijing Megvii Technology Co Ltd
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 Beijing Kuangshi Technology Co Ltd, Beijing Megvii Technology Co Ltd filed Critical Beijing Kuangshi Technology Co Ltd
Priority to CN201710602148.6A priority Critical patent/CN108875919B/zh
Publication of CN108875919A publication Critical patent/CN108875919A/zh
Application granted granted Critical
Publication of CN108875919B publication Critical patent/CN108875919B/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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit

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)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

一种数据处理装置、数据处理方法和存储介质产品。该数据处理方法包括至少一次重复执行如下操作:接收最初的输入数据或上一次执行下述操作的输出数据;将多个神经元划分为至少一个神经元子集并对于每个神经元子集执行如下操作:通过处理所接收的数据依次获取神经元子集中的神经元输出的数据,将神经元输出的数据转换为二值数据。在最大值优先的情况下,当确定二值数据的值为第一值时,则不再处理神经元子集中剩余的神经元且将第一值作为神经元子集的输出数据,或者,在最小值优先的情况下,当确定二值数据的值为第二值时,则不再处理神经元子集中剩余的神经元且将第二值作为神经元子集的输出数据。该数据处理方法降低了数据处理量。

Description

数据处理装置、数据处理方法和存储介质产品
技术领域
本公开的实施例涉及一种数据处理装置、数据处理方法和存储介质产品。
背景技术
神经网络在图像识别、语音识别以及文字识别等领域中已经有了广泛且成功的应用。然而,在实际使用神经网络时,由于神经网络参数多,消耗的计算资源较大。尤其是在手机等计算能力受限的平台上。计算量较大不仅会造成长延时,而且还会引起功耗、散热等诸多问题。
发明内容
本公开的至少一个实施例提供了一种数据处理装置,该数据处理装置包括至少一个处理单元,至少一个所述处理单元包括至少一个神经元计算单元,且配置为接收最初的输入数据或上一级处理单元的输出数据;至少一个所述神经元计算单元包括:多个神经元,配置为通过处理所接收的数据依次获取所述神经元输出的数据,并进一步将所述神经元输出的数据转换为二值数据,所述二值数据为较大的第一值或较小的第二值,并且,在最大值优先的情况下,当确定所述二值数据的值为所述第一值时,则不再处理所述神经元计算单元中剩余的神经元且将所述第一值作为所述神经元计算单元的输出数据,或者,在最小值优先的情况下,当确定所述二值数据的值为所述第二值时,则不再处理所述神经元计算单元中剩余的神经元且将所述第二值作为所述神经元计算单元的输出数据。
例如,在本公开的至少一个实施例提供的数据处理装置中,所述神经元计算单元配置为,在最大值优先的情况下,基于最大值操作或/和或运算操作依次处理所述二值数据,以获取所述神经元计算单元的输出数据;或者在最小值优先的情况下,基于最小值操作或/和与运算操作依次处理所述二值数据,以获取所述神经元计算单元的输出数据。
例如,在本公开的至少一个实施例提供的数据处理装置中,所述处理单元包括多个所述神经元计算单元,所述处理单元配置为获取每个所述神经元计算单元的输出数据,并将所获取的多个所述神经元计算单元的输出数据作为所述处理单元的输出数据。
例如,在本公开的至少一个实施例提供的数据处理装置中,多个所述神经元计算单元中的神经元的个数均相等,所述处理单元中的所述神经元的个数等于所述神经元计算单元中的神经元个数的整数倍。
例如,在本公开的至少一个实施例提供的数据处理装置中,所述神经元计算单元配置为通过以下方式将所述神经元输出的数据转换为所述二值数据:在所述神经元输出的数据大于预设阈值的情况,将所述神经元输出的数据转化为所述第一值,在所述神经元输出的数据小于或等于预设阈值的情况,将所述神经元输出的数据转化为所述第二值。
本公开的至少一个实施例还提供了一种数据处理方法,该数据处理方法包括至少一次重复执行如下操作:接收最初的输入数据或上一次执行下述操作的输出数据;将多个神经元划分为至少一个神经元子集并对于每个所述神经元子集执行如下操作:通过处理所接收的数据依次获取所述神经元子集中的所述神经元输出的数据,将所述神经元输出的数据转换为二值数据,所述二值数据为较大第一值或较小的第二值,并且,在最大值优先的情况下,当确定所述二值数据的值为所述第一值时,则不再处理所述神经元子集中剩余的神经元且将所述第一值作为所述神经元子集的输出数据,或者,在最小值优先的情况下,当确定所述二值数据的值为所述第二值时,则不再处理所述神经元子集中剩余的神经元且将所述第二值作为所述神经元子集的输出数据。
例如,在本公开的至少一个实施例提供的数据处理方法中,在最大值优先的情况下,基于最大值操作或/和或运算操作依次处理所述二值数据;或者在最小值优先的情况下,基于最小值操作或/和与运算操作依次处理所述二值数据。
例如,在本公开的至少一个实施例提供的数据处理方法中,将所述多个神经元划分为多个所述神经元子集,获取每个所述神经元子集的输出数据,以及将所获取的多个所述神经元子集的输出数据作为当前操作的输出数据。
例如,在本公开的至少一个实施例提供的数据处理方法中,多个所述神经元子集中的神经元的个数均相等。
例如,在本公开的至少一个实施例提供的数据处理方法中,通过以下方式将所述神经元输出的数据转换为所述二值数据:在所述神经元输出的数据大于预设阈值的情况,将所述神经元输出的数据转化为所述第一值,在所述神经元输出的数据小于或等于预设阈值的情况,将所述神经元输出的数据转化为所述第二值。
本公开的至少一个实施例还提供了一种数据处理装置,该数据处理装置包括处理器和存储器,所述存储器中存储有适于所述处理器执行的计算机程序指令,所述计算机程序指令被所述处理器运行时至少一次重复执行以下步骤:接收最初的输入数据或上一次执行下述操作的输出数据;将多个神经元划分为至少一个神经元子集并对于每个所述神经元子集执行如下操作:通过处理所接收的数据依次获取所述神经元子集中的所述神经元输出的数据,将所述神经元输出的数据转换为二值数据,所述二值数据为较大第一值或较小的第二值,并且,在最大值优先的情况下,当确定所述二值数据的值为所述第一值时,则不再处理所述神经元子集中剩余的神经元且将所述第一值作为所述神经元子集的输出数据,或者,在最小值优先的情况下,当确定所述二值数据的值为所述第二值时,则不再处理所述神经元子集中剩余的神经元且将所述第二值作为所述神经元子集的输出数据。
本公开的至少一个实施例还提供了一种存储介质产品,该存储介质产品存储有计算机程序指令,所述计算机程序指令被处理器运行时至少一次重复执行以下步骤:接收最初的输入数据或上一次执行下述操作的输出数据;将多个神经元划分为至少一个神经元子集并对于每个所述神经元子集执行如下操作:通过处理所接收的数据依次获取所述神经元子集中的所述神经元输出的数据,将所述神经元输出的数据转换为二值数据,所述二值数据为较大第一值或较小的第二值,并且,在最大值优先的情况下,当确定所述二值数据的值为所述第一值时,则不再处理所述神经元子集中剩余的神经元且将所述第一值作为所述神经元子集的输出数据,或者,在最小值优先的情况下,当确定所述二值数据的值为所述第二值时,则不再处理所述神经元子集中剩余的神经元且将所述第二值作为所述神经元子集的输出数据。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,并非对本公开的限制。
图1A是实施例一提供的数据处理装置的示例性框图;
图1B是实施例一提供的一种数据处理装置的示意图;
图1C是实施例一提供的另一种数据处理装置的示意图;
图2A是实施例一提供的一种处理单元的示例性框图;
图2B是实施例一提供的神经元的一种输入和输出的示意图;
图3A是实施例二提供的数据处理方法的示意性流程图;
图3B是实施例二提供的基于最大值优先原则处理神经元子集的示意性流程图;
图3C是实施例二提供的基于最小值优先原则处理神经元子集的示意性流程图;
图4是实施例三提供的数据处理装置的示例性框图;
图5是实施例四提供的存储介质产品的示例性框图;
图6A示出了卷积神经网络的一种典型构型;以及
图6B抽象地示出了的卷积神经网络中一个神经元的输入与输出。
具体实施方式
下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述参考在附图中示出并在以下描述中详述的非限制性示例实施例,更加全面地说明本公开的示例实施例和它们的多种特征及有利细节。应注意的是,图中示出的特征不是必须按照比例绘制。本公开省略了已知材料、组件和工艺技术的描述,从而不使本公开的示例实施例模糊。所给出的示例仅旨在有利于理解本公开示例实施例的实施,以及进一步使本领域技术人员能够实施示例实施例。因而,这些示例不应被理解为对本公开的实施例的范围的限制。
除非另外特别定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。此外,在本公开各个实施例中,相同或类似的参考标号表示相同或类似的构件。
图6A示出了卷积神经网络的一种典型构型。图像数据通过输入层输入到卷积神经网络后,依次经过若干个处理过程(如图6A中的每个层级)后输出识别结果。每个层级的处理过程可包括:卷积(convolution)以及下采样(down-sampling)。每个层级的处理过程根据需要还可以包括归一化处理(例如,LCN,即local constant normalization)等。图6B抽象地示出了的卷积神经网络中一个神经元的输入与输出,如图所示,C1、C2到Cn指代不同的信号通道,针对某一个局部感受域(该局部感受域包含多个通道),使用不同的滤波器对该局部感受域的C1到Cn信号通道上的数据进行卷积,卷积结果被输入刺激节点,该刺激节点根据相应的函数进行计算以得到特征信息。因此,卷积神经网络通常最主要的组成部分包括:多个卷积层、多个下采样层(又称为池化层)、全连接层。一个完整的卷积神经网络由这三种层叠加组成。
卷积层是卷积神经网络的核心层,对输入数据(图像)应用若干个滤波器,输入数据被用来进行多种类型的特征提取。对于输入数据应用一个滤波器之后得到的结果被称为特征图(feature map),特征图的数目与滤波器的数目相等。一个卷积层输出的特征图可以被输入到下一个层级的卷积层再次处理以得到新的特征图。下采样层是夹在连续的卷积层之间的中间层,用于缩减输入数据的规模,也在一定程度上减小过拟合的现象。例如,输入一个12×12的图像,通过6×6的下采样,那么可以得到2×2的输出图像,这意味着原图像上的36个像素合并为输出图像中的1个像素。实现下采样的方法由很多种,这些方法包括但不限于:最大值合并(max-pooling)、平均值合并(avg-pooling)、随机合并、欠采样(decimation,例如选择固定的像素)、解复用输出(demuxout,将输入图像拆分为多个更小的图像)等。通常最后一个下采样层或卷积层连接到一个或多个全连接层,全连接层的输出作为最终输出,可得到一个一维矩阵,也就是向量。
本公开的实施例提供了一种数据处理装置、数据处理方法和存储介质产品,该数据处理装置、数据处理方法例如可以通过神经网络实现,且可以降低数据处理过程中的处理量,减少系统开销,提高系统效率。
下面通过几个实施例对根据本公开实施例提供的数据处理装置、数据处理方法和存储介质产品进行说明。
实施例一
本实施例提供了一种数据处理装置10,该数据处理装置10例如可以实现为人工神经网络。例如,图1A是实施例一提供的数据处理装置10的示例性框图。例如,如图1A所示,该数据处理装置10可以包括至少一个处理单元100。例如,数据处理装置10包括的处理单元的个数可以根据实际应用需求进行设定,本公开的实施例对此不作具体限定。
例如,如图1B所示,在数据处理装置10包括一个处理单元100的情况下,上述一个处理单元100(例如,处理单元100的输入端)可以配置为接收最初的输入数据,上述一个处理单元100的输出数据例如可以配置为该数据处理装置10的输出数据(例如,最终的输出数据)。例如,在本公开的实施例中,数据处理装置10的最初的输入数据和最终的输出数据的具体类型可以根据实际应用需求进行设定,本公开的实施例对此不作具体限定。例如,最初的输入数据可以是与图像、语音、语言类信息等相关的数据,但本公开的实施例不限于此。例如,最终的输出数据可以是数字(例如,1或0)或者输入数据是否满足预定条件的结论(例如,输入图片中的物体不是苹果),但本公开的实施例不限于此。
例如,如图1C所示,在数据处理装置10包括多个处理单元的情况下,处理单元之间可以是“串联”关系,也即,上一级处理单元的输出端与当前处理单元的输入端相连接,当前处理单元的输出端与下一级处理单元的输入端相连接。例如,上述多个处理单元可以配置为接收最初的输入数据或上一级处理单元的输出数据。例如,上述多个处理单元(例如,N个)可以配置为如下形式,也即,第一级处理单元可以配置为接收最初的输入数据,第二级处理单元可以配置为接收第一级处理单元的输出数据,......,第N级处理单元可以配置为接收第N-1级处理单元的输出数据。例如,第N级处理单元的输出数据可以配置为该数据处理装置10的输出数据。
例如,在数据处理装置10包括多个处理单元的情况下,本公开实施例中提供的处理单元100可以实现为数据处理装置10中数据处理量最大的一个处理单元,但本公开的实施例不限于此。又例如,根据实际应用需求,本公开实施例中提供的处理单元100还可以实现为数据处理装置10的多个或全部的处理单元。例如,在数据处理装置10所包括的处理单元中的部分处理单元(例如,第3级处理单元)实现为本公开实施例中提供的处理单元100情况下,剩余的处理单元(例如,第1-2级处理单元100以及第4-N级处理单元)可以为常规的处理单元。
例如,下面将结合图2A-图2B具体说明本公开实施例中提供的处理单元100。
例如,处理单元100可以包括至少一个神经元计算单元110。例如,处理单元100包括的神经元计算单元110的个数可以根据实际应用需求进行设定,本公开的实施例对此不作具体限定。例如,处理单元100可以包括一个神经元计算单元110;又例如,如图2A所示,该处理单元100还可以包括多个神经元计算单元110,例如大于10或大于100个。例如,在该处理单元100包括多个神经元计算单元110的情况下,如图2A所示,多个神经元计算单元110可以“并列”设置,此处的并列设置是指任意一个神经元计算单元110的输出数据不影响该处理单元100所包括的其它神经元计算单元110的输出数据。
例如,在该处理单元100包括多个神经元计算单元110的情况下,多个神经元计算单元110中的神经元111的个数可以均相等,此时处理单元100中的神经元111的个数等于神经元计算单元110中的神经元111个数的整数倍,但本公开的实施例不限于此。例如,在该处理单元100包括多个神经元计算单元110的情况下,处理单元100可以配置为获取每个神经元计算单元110的输出数据,并将所获取的多个神经元计算单元110的输出数据作为处理单元100的输出数据。
例如,神经元计算单元110可以包括多个神经元111,例如大于10或大于100个。例如,神经元计算单元110可以遵从最大值优先的原则(即,将神经元计算单元110所包括神经元111的输出数据中的最大值作为神经元计算单元110的输出数据)或最小值优先的原则(即,将神经元计算单元110所包括神经元111的输出数据中的最小值作为神经元计算单元110的输出数据)处理其所包含的多个神经元111,并获取该神经元计算单元110的输出数据,但本公开的实施例不限于此。
例如,在神经元计算单元110遵从最大值优先的情况下,每个神经元计算单元110可以通过以下的步骤依次处理多个神经元111,并获取该神经元计算单元110的输出数据。
步骤S111:通过处理所接收的数据获取神经元输出的数据;
步骤S112:将神经元输出的数据转换为二值数据,二值数据为较大的第一值或较小的第二值;
步骤S113:当确定二值数据的值为第一值时,则不再处理神经元计算单元中剩余的神经元且将第一值作为神经元计算单元的输出数据,当确定的二值数据的值为第二值时,则继续处理神经元计算单元中剩余的神经元。
例如,在步骤S111中,任一神经元111基于输入数据获取输出数据的方法可以参见图2B。例如,如图2B所示,神经元111(即,由图2B中的圆形表示)的输入数据包括X=(x1,x2,x3,……,xn),对应于神经元111的输入数据的权重为W=(w1,w2,w3,……,wn),神经元111的响应参数为b,神经元111的输出数据h可以满足以下方程,但本公开的实施例不限于此。
h=w1×x1+w2×x2+……+wn×xn+b
例如,神经元111的输入数据的个数可以根据实际应用需求进行设定,本公开的实施例对此不作具体限定。例如,每个神经元111的输入数据的个数可以等于上一级处理单元100中神经元111的个数,但本公开的实施例不限于此。例如,对应于神经元111的输入数据的权重W和神经元111的响应参数为b可以在神经网络训练阶段获取,具体方法可以参见常规的神经网络训练方法,在此不再赘述。
例如,在步骤S112中,神经元计算单元110可以通过多种适当的方式将神经元111输出的数据转换为二值数据。例如,神经元计算单元110可以配置为通过以下方式将神经元111输出的数据转换为二值数据,也即,在神经元111输出的数据大于预设阈值的情况,将神经元111输出的数据转化为第一值,在神经元111输出的数据小于或等于预设阈值的情况,将神经元111输出的数据转化为第二值。例如,在本公开的实施例中,第一值大于第二值。例如,第一值可以是1,第二值可以是0,但本公开的实施例不限于此。又例如,根据实际应用需求,第一值还可以是10,第二值还可以是5。例如,预设阈值可以根据实际应用需求进行设定,本公开的实施例对此不作具体限定。例如,一种二值化处理可以通过如下方式实现:
Figure BDA0001357413080000081
例如,神经元计算单元110将神经元111输出的数据转换为二值数据的方法不限于上述方法。例如,神经元计算单元110还可以配置为通过以下方式将神经元111输出的数据转换为二值数据,也即,在神经元111输出的数据大于或等于预设阈值的情况,将神经元111输出的数据转化为第一值,在神经元111输出的数据小于预设阈值的情况,将神经元111输出的数据转化为第二值。
例如,在步骤S113中,当确定二值数据的值为第一值时,则不再处理神经元计算单元110中剩余的神经元111且将第一值作为神经元计算单元110的输出数据,当确定的二值数据的值为第二值时,则继续处理神经元计算单元110中剩余的神经元111。
例如,下面将结合一个示例对基于步骤S111-步骤S113(即,最大值处理原则)获取神经元计算单元110的输出数据的方法做具体说明,但本公开的实施例不限于该示例。
例如,该神经元计算单元110包括M个神经元111(M>5),在神经元111输出的数据大于5的情况下,将神经元111输出的数据转化为1,在神经元111输出的数据小于或等于5的情况下,将神经元111输出的数据转化为0;假设第一个神经元111输出的数据为3,则基于第一个神经元111输出的数据获取的二值数据的数值为0,因此该神经元计算单元110将继续处理第二个神经元111;假设第二个神经元111输出的数据为1,则基于第二个神经元111输出的数据获取的二值数据的数值为0,因此该神经元计算单元110将继续处理第三个神经元111;假设第三个神经元111输出的数据为8,则基于第三个神经元111输出的数据获取的二值数据的数值为1,此时无论神经元计算单元110中剩余的神经元111的输出数据是什么,该神经元计算单元110的输出数据(即,神经元计算单元110所包括神经元111的输出数据中的最大值)均为1;因此,神经元计算单元110可以不再处理剩余的神经元111(即,第4个神经元111至第M个神经元111)并且可以将第一值(即,1)作为神经元计算单元110的输出数据。
例如,神经元计算单元110可以基于最大值操作或/和或运算操作实现步骤S113。例如,以神经元计算单元110基于或运算操作实现步骤S113为例,对于上述的示例,在神经元计算单元110获取第三个神经元111的二值数据的数值的情况下,或运算操作输出数值为0or 0or 1=1,这表明神经元计算单元110所包括神经元111的输出数据中的最大值为1,由此神经元计算单元110可以不再处理神经元计算单元110中剩余的神经元111并且可以将数值1作为神经元计算单元110的输出数据。
例如,相比于常规的神经元计算单元需要处理M个神经元之后才能获取神经元计算单元的输出数据,本公开实施例提供的神经元计算单元可以仅需处理其所包括的部分神经元即可获得神经元计算单元的输出数据,因此可以大幅降低神经元计算单元以及包括该神经元计算单元的数据处理装置的数据处理量。
例如,神经元计算单元110处理其所包括的神经元111的顺序可以根据实际应用需求进行设定,本公开的实施例对此不做具体限定。例如,神经元计算单元110可以按照预定的顺序处理其所包括的神经元111。又例如,神经元计算单元110还可以按照随机原则处理其所包括的神经元111。
例如,在神经元计算单元110遵从最小值优先的情况下,每个神经元计算单元110可以通过以下的步骤依次处理多个神经元111,并获取该神经元计算单元110的输出数据。
步骤S121:通过处理所接收的数据获取神经元输出的数据;
步骤S122:将神经元输出的数据转换为二值数据,二值数据为较大的第一值或较小的第二值;
步骤S123:当确定二值数据的值为第二值时,则不再处理神经元计算单元中剩余的神经元且将第二值作为神经元计算单元的输出数据,当确定的二值数据的值为第一值时,则继续处理神经元计算单元中剩余的神经元。
例如,步骤S121和步骤S122的具体方法可以参见步骤S111和步骤S112,在此不再赘述。
例如,在步骤S123中,当确定二值数据的值为第二值时,则不再处理神经元计算单元110中剩余的神经元111且将第二值作为神经元计算单元110的输出数据,当确定的二值数据的值为第一值时,则继续处理神经元计算单元110中剩余的神经元111。例如,下面将结合一个示例对基于步骤S121-步骤S123(即,最小值处理原则)获取神经元计算单元110的输出数据的方法做具体说明,但本公开的实施例不限于该示例。
例如,该神经元计算单元110包括M个神经元111(M>5),在神经元111输出的数据大于5的情况下,将神经元111输出的数据转化为1,在神经元111输出的数据小于或等于5的情况下,将神经元111输出的数据转化为0;假设第一个神经元111输出的数据为7,则基于第一个神经元111输出的数据获取的二值数据的数值为1,因此该神经元计算单元110将继续处理第二个神经元111;假设第二个神经元111输出的数据为8,则基于第二个神经元111输出的数据获取的二值数据的数值为1,因此该神经元计算单元110将继续处理第三个神经元111;假设第三个神经元111输出的数据为3,则基于第三个神经元111输出的数据获取的二值数据的数值为0,此时无论神经元计算单元110中剩余的神经元111的输出数据是什么,该神经元计算单元110的输出数据(即,神经元计算单元110所包括神经元111的输出数据中的最小值)均为0;因此,神经元计算单元110可以不再处理剩余的神经元111(即,第4个神经元111至第M个神经元111)并且可以将第二值(即,0)作为神经元计算单元110的输出数据。
例如,神经元计算单元110可以基于最小值操作或/和与运算操作实现步骤S123。例如,以神经元计算单元110基于与运算操作实现步骤S123为例,对于上述的示例,在神经元计算单元110获取第三个神经元111的二值数据的数值的情况下,与运算操作输出数值为1and 1and 0=0,这表明神经元计算单元110所包括神经元111的输出数据中的最小值为0,由此神经元计算单元110可以不再处理神经元计算单元110中剩余的神经元111并且可以将数值0作为神经元计算单元110的输出数据,由此可以大幅降低神经元计算单元110以及包括该神经元计算单元110的数据处理装置10的数据处理量。
需要说明的是,在处理单元100包括多个神经元计算单元110的情况下,处理单元100所包括的多个神经元计算单元110中的每个均遵从最大值优先的原则,或者,处理单元100所包括多个神经元计算单元110中的每个均遵从最小值优先的原则。
需要说明的是,在处理单元100包括多个神经元计算单元110均遵从最大值优先的原则处理其所包括的多个神经元111的情况下,多个神经元计算单元110可以根据实际应用需求选择最大值操作或/和或运算操作实现步骤S113;例如,多个神经元计算单元110可以均使用最大值操作实现步骤S113,或者均使用或运算操作实现步骤S113;又例如,还可以部分神经元计算单元110使用最大值操作实现步骤S113,部分神经元计算单元110使用或运算操作实现步骤S113。类似地,在处理单元100包括多个神经元计算单元110均遵从最小值优先的原则处理其所包括的多个神经元111的情况下,多个神经元计算单元110可以根据实际应用需求选择最小值操作或/和与运算操作实现步骤S123。
例如,本实施例提供的数据处理装置10可以实现为人工神经网络,该人工神经网络例如可以为卷积神经网络,但本公开的实施例不限于此。例如,在本实施例提供的数据处理装置10为卷积神经网络的情况下,卷积神经网络的卷积层、池化层等可以实现为本实施例提供的数据处理装置10,由此可以大幅减少卷积神经网络在数据过程中的数据处理量。
实施例二
本实施例提供了一种数据处理方法。例如,该数据处理方法可用于本公开任一实施例提供数据处理装置中,例如,该数据处理方法可用于人工神经网络的数据处理中。例如,根据实际应用需求,人工神经网络的部分或全部数据处理工作(即,人工神经网络的部分层,例如卷积层或池化层)可采用本公开实施例提供的数据处理方法。例如,如图3A所示,该数据处理方法可以包括以下的步骤:
S100:接收最初的输入数据或上一次执行下述的步骤S200和步骤S300的输出数据;
S200:将多个神经元划分为至少一个神经元子集;
S300:基于最大值优先原则处理每个神经元子集或者基于最小值优先原则处理每个神经元子集。
例如,如图3B所示,在基于最大值优先原则处理每个神经元子集的情况下,可以通过以下的步骤依次处理每个神经元子集包括的多个神经元,并获取该神经元子集的输出数据:
步骤S311:通过处理所接收的数据获取神经元输出的数据;
步骤S312:将神经元输出的数据转换为二值数据,二值数据为较大的第一值或较小的第二值;
步骤S313:当确定二值数据的值为第一值时,则不再处理神经元子集中剩余的神经元且将第一值作为神经元子集的输出数据,当确定的二值数据的值为第二值时,则继续处理神经元子集中剩余的神经元。
例如,如图3C所示,在基于最小值优先原则处理每个神经元子集的情况下,可以通过以下的步骤依次处理每个神经元子集包括的多个神经元,并获取该神经元子集的输出数据:
步骤S321:通过处理所接收的数据获取神经元输出的数据;
步骤S322:将神经元输出的数据转换为二值数据,二值数据为较大的第一值或较小的第二值;
步骤S323:当确定二值数据的值为第二值时,则不再处理神经元子集中剩余的神经元且将第二值作为神经元子集的输出数据,当确定的二值数据的值为第一值时,则继续处理神经元子集中剩余的神经元。
例如,在步骤S311和步骤S321中,任一神经元基于输入数据获取输出数据的方法可以参见图2B。例如,如图2B所示,神经元的输入数据包括X=(x1,x2,x3,……,xn),对应于神经元的输入数据的权重为W=(w1,w2,w3,……,wn),神经元的响应参数为b,神经元的输出数据h可以满足以下方程,但本公开的实施例不限于此。
h=w1×x1+w2×x2+……+wn×xn+b
例如,神经元的输入数据的个数可以根据实际应用需求进行设定,本公开的实施例对此不作具体限定。例如,对应于神经元的输入数据的权重W和神经元的响应参数为b可以在神经网络训练阶段获取,具体方法可以参见常规的神经网络训练方法,在此不再赘述。
例如,在步骤S312和步骤S322中,可以通过以下方式将神经元输出的数据转换为二值数据,也即,在神经元输出的数据大于预设阈值的情况,将神经元输出的数据转化为第一值,在神经元输出的数据小于或等于预设阈值的情况,将神经元输出的数据转化为第二值。例如,在本公开的实施例中,第一值大于第二值。例如,预设阈值可以根据实际应用需求进行设定,本公开的实施例对此不作具体限定。例如,神经元计算单元将神经元输出的数据转换为二值数据的方法不限于上述方法。
例如,可以基于最大值操作或/和或运算操作实现步骤S313。例如,可以基于最小值操作或/和与运算操作实现步骤S323。例如,步骤S311-步骤S313和步骤S321-步骤S323的具体实现方法可以分别参见实施例一中的步骤S111-步骤S113和步骤S121-步骤S123,在此不再赘述。
例如,由于步骤S311-步骤S313和步骤S321-步骤S323可以通过处理神经元子集所包括的部分神经元获得神经元子集的输出数据,因此可以大幅降低数据处理量。
例如,在将多个神经元划分为多个神经元子集的情况下,多个神经元子集中的神经元的个数均相等,但本公开的实施例不限于此。例如,在将多个神经元划分为多个神经元子集的情况下,可以分别获取每个神经元子集的输出数据,然后将所获取的多个神经元子集的输出数据作为当前操作的输出数据。例如,根据实际应用需求,当前操作的输出数据可用于下一次执行步骤S100-步骤S300或者可以作为数据处理方法的最终的输出数据。
例如,由于本实施例提供的数据处理方法可以通过处理神经元子集所包括的部分神经元获得神经元子集的输出数据,因此可以大幅降低数据处理量。
本公开实施例中各个功能(包括但不限于卷积神经网络等)可通过硬件、软件、固件或其任何组合中实现。
实施例三
本实施例提供了一种数据处理装置。例如,如图4所示,该数据处理装置包括处理器和存储器。存储器中存储有适于处理器执行的计算机程序指令,计算机程序指令被处理器运行时至少一次重复执行以下步骤:
接收最初的输入数据或上一次执行下述操作的输出数据;
将多个神经元划分为至少一个神经元子集并对于每个神经元子集执行如下操作:
通过处理所接收的数据依次获取神经元子集中的神经元输出的数据,将神经元输出的数据转换为二值数据,二值数据为较大第一值或较小的第二值,并且,在最大值优先的情况下,当确定二值数据的值为第一值时,则不再处理神经元子集中剩余的神经元且将第一值作为神经元子集的输出数据,或者,在最小值优先的情况下,当确定二值数据的值为第二值时,则不再处理神经元子集中剩余的神经元且将第二值作为神经元子集的输出数据。
例如,由于本实施例提供的数据处理装置可以通过处理神经元子集所包括的部分神经元获得神经元子集的输出数据,因此可以大幅降低数据处理量。
在本公开的实施例中,处理器可以为中央处理器(CPU)、图形处理器GPU、张量处理器(TPU)等各种具有计算能力的器件。例如,该CPU可以为X86或ARM处理器等各种类型;GPU可单独地直接集成到主板上,或者内置于主板的北桥芯片中,也可以内置于中央处理器(CPU)上,由于其具有强大的图像处理能力;TPU是一款为机器学习而定制的芯片,经过了专门深度机器学习方面的训练,它可以有更高效能(每瓦计算能力)。本发明实施例可使用CPU/GPU/TPU对卷积神经网络等进行训练以及基于卷积神经网络进行图像处理。
本公开实施例中各个功能如果在软件中实现,则这些功能可以作为一条或多条指令或代码存储在存储器即存储介质之中,同时用于计算机程序指令的数据或产生的数据也可以存储在该存储介质中。该存储介质可以是能被计算机访问的任何可用存储介质。作为示例而非限定,这样的计算机可读存储介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来承载或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。
实施例四
本实施例提供了一种存储介质产品。例如,如图5所示,该存储介质产品存储有计算机程序指令,计算机程序指令被处理器运行时至少一次重复执行以下步骤:
接收最初的输入数据或上一次执行下述操作的输出数据;
将多个神经元划分为至少一个神经元子集并对于每个神经元子集执行如下操作:
通过处理所接收的数据依次获取神经元子集中的神经元输出的数据,将神经元输出的数据转换为二值数据,二值数据为较大第一值或较小的第二值,并且,在最大值优先的情况下,当确定二值数据的值为第一值时,则不再处理神经元子集中剩余的神经元且将第一值作为神经元子集的输出数据,或者,在最小值优先的情况下,当确定二值数据的值为第二值时,则不再处理神经元子集中剩余的神经元且将第二值作为神经元子集的输出数据。
例如,由于本实施例提供的存储介质产品可以通过处理神经元子集所包括的部分神经元获得神经元子集的输出数据,因此可以大幅降低数据处理量。
本公开的实施例提供了一种数据处理装置、数据处理方法和存储介质产品,该数据处理装置、数据处理方法和存储介质产品在工作过程可降低数据处理过程中的处理量,减少系统开销,提高系统效率。
虽然上文中已经用一般性说明及具体实施方式,对本公开作了详尽的描述,但在本公开实施例基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本公开精神的基础上所做的这些修改或改进,均属于本公开要求保护的范围。

Claims (10)

1.一种数据处理装置,包括至少一个处理单元,至少一个所述处理单元包括至少一个神经元计算单元,且配置为接收最初的输入数据或上一级处理单元的输出数据;
其中,至少一个所述神经元计算单元包括:
多个神经元,配置为通过处理所接收的数据依次获取所述神经元输出的数据,并进一步将所述神经元输出的数据转换为二值数据,其中,所述二值数据为较大的第一值或较小的第二值,并且,在最大值优先的情况下,当确定所述二值数据的值为所述第一值时,则不再处理所述神经元计算单元中剩余的神经元且将所述第一值作为所述神经元计算单元的输出数据,或者,在最小值优先的情况下,当确定所述二值数据的值为所述第二值时,则不再处理所述神经元计算单元中剩余的神经元且将所述第二值作为所述神经元计算单元的输出数据,
其中,所述神经元计算单元配置为,
在最大值优先的情况下,基于最大值操作或/和或运算操作依次处理所述二值数据,以获取所述神经元计算单元的输出数据;或者
在最小值优先的情况下,基于最小值操作或/和与运算操作依次处理所述二值数据,以获取所述神经元计算单元的输出数据。
2.根据权利要求1所述的数据处理装置,其中,
所述处理单元包括多个所述神经元计算单元,所述处理单元配置为获取每个所述神经元计算单元的输出数据,并将所获取的多个所述神经元计算单元的输出数据作为所述处理单元的输出数据。
3.根据权利要求2所述的数据处理装置,其中,
多个所述神经元计算单元中的神经元的个数均相等,所述处理单元中的所述神经元的个数等于所述神经元计算单元中的神经元个数的整数倍。
4.根据权利要求1-3任一所述的数据处理装置,其中,
所述神经元计算单元配置为通过以下方式将所述神经元输出的数据转换为所述二值数据:
在所述神经元输出的数据大于预设阈值的情况,将所述神经元输出的数据转化为所述第一值,
在所述神经元输出的数据小于或等于预设阈值的情况,将所述神经元输出的数据转化为所述第二值。
5.一种数据处理方法,包括至少一次重复执行如下操作:
接收最初的输入数据或上一次执行下述操作的输出数据;
将多个神经元划分为至少一个神经元子集并对于每个所述神经元子集执行如下操作:
通过处理所接收的数据依次获取所述神经元子集中的所述神经元输出的数据,
将所述神经元输出的数据转换为二值数据,其中,所述二值数据为较大第一值或较小的第二值,并且,在最大值优先的情况下,当确定所述二值数据的值为所述第一值时,则不再处理所述神经元子集中剩余的神经元且将所述第一值作为所述神经元子集的输出数据,或者,在最小值优先的情况下,当确定所述二值数据的值为所述第二值时,则不再处理所述神经元子集中剩余的神经元且将所述第二值作为所述神经元子集的输出数据,
其中,在最大值优先的情况下,基于最大值操作或/和或运算操作依次处理所述二值数据;或者
在最小值优先的情况下,基于最小值操作或/和与运算操作依次处理所述二值数据。
6.根据权利要求5所述的数据处理方法,其中,
将所述多个神经元划分为多个所述神经元子集,
获取每个所述神经元子集的输出数据,以及
将所获取的多个所述神经元子集的输出数据作为当前操作的输出数据。
7.根据权利要求6所述的数据处理方法,其中,
多个所述神经元子集中的神经元的个数均相等。
8.根据权利要求5-7任一所述的数据处理方法,其中,
通过以下方式将所述神经元输出的数据转换为所述二值数据:
在所述神经元输出的数据大于预设阈值的情况,将所述神经元输出的数据转化为所述第一值,
在所述神经元输出的数据小于或等于预设阈值的情况,将所述神经元输出的数据转化为所述第二值。
9.一种数据处理装置,包括处理器和存储器,其中,所述存储器中存储有适于所述处理器执行的计算机程序指令,所述计算机程序指令被所述处理器运行时至少一次重复执行以下步骤:
接收最初的输入数据或上一次执行下述操作的输出数据;
将多个神经元划分为至少一个神经元子集并对于每个所述神经元子集执行如下操作:
通过处理所接收的数据依次获取所述神经元子集中的所述神经元输出的数据,
将所述神经元输出的数据转换为二值数据,其中,所述二值数据为较大第一值或较小的第二值,并且,在最大值优先的情况下,当确定所述二值数据的值为所述第一值时,则不再处理所述神经元子集中剩余的神经元且将所述第一值作为所述神经元子集的输出数据,或者,在最小值优先的情况下,当确定所述二值数据的值为所述第二值时,则不再处理所述神经元子集中剩余的神经元且将所述第二值作为所述神经元子集的输出数据,
其中,在最大值优先的情况下,基于最大值操作或/和或运算操作依次处理所述二值数据;或者
在最小值优先的情况下,基于最小值操作或/和与运算操作依次处理所述二值数据。
10.一种存储介质产品,该存储介质产品存储有计算机程序指令,所述计算机程序指令被处理器运行时至少一次重复执行以下步骤:
接收最初的输入数据或上一次执行下述操作的输出数据;
将多个神经元划分为至少一个神经元子集并对于每个所述神经元子集执行如下操作:
通过处理所接收的数据依次获取所述神经元子集中的所述神经元输出的数据,
将所述神经元输出的数据转换为二值数据,其中,所述二值数据为较大第一值或较小的第二值,并且,在最大值优先的情况下,当确定所述二值数据的值为所述第一值时,则不再处理所述神经元子集中剩余的神经元且将所述第一值作为所述神经元子集的输出数据,或者,在最小值优先的情况下,当确定所述二值数据的值为所述第二值时,则不再处理所述神经元子集中剩余的神经元且将所述第二值作为所述神经元子集的输出数据,
其中,在最大值优先的情况下,基于最大值操作或/和或运算操作依次处理所述二值数据;或者
在最小值优先的情况下,基于最小值操作或/和与运算操作依次处理所述二值数据。
CN201710602148.6A 2017-07-21 2017-07-21 数据处理装置、数据处理方法和存储介质产品 Active CN108875919B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710602148.6A CN108875919B (zh) 2017-07-21 2017-07-21 数据处理装置、数据处理方法和存储介质产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710602148.6A CN108875919B (zh) 2017-07-21 2017-07-21 数据处理装置、数据处理方法和存储介质产品

Publications (2)

Publication Number Publication Date
CN108875919A CN108875919A (zh) 2018-11-23
CN108875919B true CN108875919B (zh) 2021-04-02

Family

ID=64325383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710602148.6A Active CN108875919B (zh) 2017-07-21 2017-07-21 数据处理装置、数据处理方法和存储介质产品

Country Status (1)

Country Link
CN (1) CN108875919B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016211A (en) * 1989-02-02 1991-05-14 Samsung Electronics Co., Ltd. Neural network implementation of a binary adder
WO1992012497A1 (fr) * 1991-01-02 1992-07-23 Claude Abin Reseau neuronal a operateurs binaires et procedes pour sa realisation
CN1349198A (zh) * 2001-12-04 2002-05-15 上海交通大学 基于结构的神经网络建模与优化方法
CN103761172A (zh) * 2013-12-29 2014-04-30 哈尔滨工业大学 基于神经网络的硬件故障诊断系统
CN104899640A (zh) * 2014-07-21 2015-09-09 徐志强 神经网络的模拟装置及方法
CN105654176A (zh) * 2014-11-14 2016-06-08 富士通株式会社 神经网络系统及神经网络系统的训练装置和方法
CN105913118A (zh) * 2015-12-09 2016-08-31 上海大学 一种基于概率计算的人工神经网络硬件实现装置
CN106056211A (zh) * 2016-05-25 2016-10-26 清华大学 神经元计算单元、神经元计算模块及人工神经网络计算核
CN106295799A (zh) * 2015-05-12 2017-01-04 核工业北京地质研究院 一种深度学习多层神经网络的实现方法
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN106909970A (zh) * 2017-01-12 2017-06-30 南京大学 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016211A (en) * 1989-02-02 1991-05-14 Samsung Electronics Co., Ltd. Neural network implementation of a binary adder
WO1992012497A1 (fr) * 1991-01-02 1992-07-23 Claude Abin Reseau neuronal a operateurs binaires et procedes pour sa realisation
CN1349198A (zh) * 2001-12-04 2002-05-15 上海交通大学 基于结构的神经网络建模与优化方法
CN103761172A (zh) * 2013-12-29 2014-04-30 哈尔滨工业大学 基于神经网络的硬件故障诊断系统
CN104899640A (zh) * 2014-07-21 2015-09-09 徐志强 神经网络的模拟装置及方法
CN105654176A (zh) * 2014-11-14 2016-06-08 富士通株式会社 神经网络系统及神经网络系统的训练装置和方法
CN106295799A (zh) * 2015-05-12 2017-01-04 核工业北京地质研究院 一种深度学习多层神经网络的实现方法
CN105913118A (zh) * 2015-12-09 2016-08-31 上海大学 一种基于概率计算的人工神经网络硬件实现装置
CN106056211A (zh) * 2016-05-25 2016-10-26 清华大学 神经元计算单元、神经元计算模块及人工神经网络计算核
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN106909970A (zh) * 2017-01-12 2017-06-30 南京大学 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Bounds on the number of hidden neurons in three-layer binary neural networks;Zhaozhi Zhang et al;《Neural Networks》;20030930;第16卷(第7期);第995-1002页 *
一个新的二进前向多层网学习算法及布尔函数优化实现;马晓敏等;《电子学报》;19991231;第27卷(第12期);第110-112页及第87页 *
基于二进神经网络的0/1分布系统可靠性分析;杨娟等;《自动化学报》;20140731;第40卷(第7期);第1472-1480页 *
基于稳健神经网络的CMOS电路开关级设计;王柏祥等;《浙江大学学报(工学版)》;20040731;第38卷(第7期);第835-838页 *

Also Published As

Publication number Publication date
CN108875919A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
EP3407266B1 (en) Artificial neural network calculating device and method for sparse connection
CN109478144B (zh) 一种数据处理装置和方法
CN110852439B (zh) 数据处理方法及装置、存储介质
US20180197084A1 (en) Convolutional neural network system having binary parameter and operation method thereof
CN110659725B (zh) 神经网络模型的压缩与加速方法、数据处理方法及装置
CN110245741A (zh) 多层神经网络模型的优化和应用方法、装置及存储介质
CN111295675B (zh) 用于使用内核来处理卷积运算的设备和方法
US20190303757A1 (en) Weight skipping deep learning accelerator
US11586903B2 (en) Method and system of controlling computing operations based on early-stop in deep neural network
CN110929865B (zh) 网络量化方法、业务处理方法及相关产品
CN107766292B (zh) 一种神经网络处理方法及处理系统
CN107944545A (zh) 应用于神经网络的计算方法及计算装置
CN110647974A (zh) 深度神经网络中的网络层运算方法及装置
CN108171328B (zh) 一种神经网络处理器和采用其执行的卷积运算方法
CN111831355B (zh) 权重精度配置方法、装置、设备及存储介质
CN110874626B (zh) 一种量化方法及装置
CN111831359B (zh) 权重精度配置方法、装置、设备及存储介质
KR20240025523A (ko) 깊이별 CNN(convolutional neural network)을 지원하는 CIM(computation in memory) 아키텍처 및 데이터 흐름
CN111831356B (zh) 权重精度配置方法、装置、设备及存储介质
CN108875919B (zh) 数据处理装置、数据处理方法和存储介质产品
CN114298289A (zh) 一种数据处理的方法、数据处理设备及存储介质
CN110555099B (zh) 计算机执行的、利用神经网络进行语言处理的方法及装置
WO2018112892A1 (zh) 一种支持快速人工神经网络运算的装置及方法
CN111724309B (zh) 图像处理方法及装置、神经网络的训练方法、存储介质
WO2023109748A1 (zh) 一种神经网络的调整方法及相应装置

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