神经网络的数据处理方法、装置、芯片、设备和存储介质与流程

文档序号:14686894发布日期:2018-06-15 03:53阅读:167来源:国知局

本发明涉及神经网络,特别是涉及神经网络的数据处理方法、装置、芯片、设备和存储介质。



背景技术:

人工神经网络是一种通过模仿生物大脑的突触-神经元结构进行数据处理的计算模型,其主要由多层的计算节点和层间的连接组成,每个节点模拟一个神经元,节点之间的连接模拟神经突触。在传统人工神经网络中,神经元将来自连接的累加值用激活函数处理后作为自身的输出,同时通过调整网络结构、激活函数等参数,使得传统人工神经网络可以实现多种多样的功能。

上述人工神经网络的数据处理过程中,经常会涉及到神经形态电路,该神经形态电路主要完成神经网络中的积分运算和发放运算,其中,发放运算的结果依赖于积分运算的结果。也就是说,传统的神经形态电路中,负责积分运算的树突模块会将神经网络中的所有神经元进行积分运算后,将结果输出给负责发放运算的胞体模块,由胞体模块进行后续的发放处理。

但是,上述方案对数据的处理效率低下,且功耗较高。



技术实现要素:

基于此,有必要针对传统技术中神经网络的数据处理效率低且功耗较高的技术问题,提供一种神经网络的数据处理方法、装置、芯片、设备和存储介质。

一种神经网络的数据处理方法,包括:

控制树突模块依次对所述神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将所述模电位集合存储至缓冲区;其中,每个神经元组中包括至少一个神经元,所述模电位集合包括所述神经元组中的每个神经元的模电位;

控制胞体模块在所述树突模块对第N个神经元组执行模电位积分运算时,读取所述缓冲区内存储的第N-1个神经元组的模电位集合,并对所述第N-1个神经元组的模电位集合执行发放运算处理;其中,所述N为大于1的整数。

在其中一个实施例中,所述控制胞体模块在所述树突模块对第N个神经元组执行模电位积分运算时,读取所述缓冲区内存储的第N-1个神经元组的模电位集合之前,所述方法还包括:

在监测到所述树突模块对所述第N-1个神经元组的模电位积分运算结束后,启动所述胞体模块;

控制所述缓冲区面向所述胞体模块为可读写状态以及面向所述树突模块为禁止读写状态。

在其中一个实施例中,所述对所述第N-1个神经元组的模电位集合执行发放运算处理之后,所述方法还包括:

在监测到所述胞体模块对所述第N-1个神经元组的模电位集合的发放运算处理结束后,控制所述缓冲区面向所述胞体模块为禁止读写状态以及面向所述树突模块为可读写状态。

在其中一个实施例中,所述方法还包括:

若所述第N个神经元组为所述神经网络中的最后一个神经元组,则在监测到所述树突模块对所述第N个神经元组的模电位积分运算结束后,控制所述树突模块停止运算。

在其中一个实施例中,所述控制树突模块依次对所述神经网络中的每个神经元组执行模电位积分运算,包括:

控制所述树突模块在对当前神经元组执行模电位积分运算时,对所述当前神经元组中位于同一层的神经元并行执行模电位积分运算;其中,不同的神经元组中位于同一层的神经元的输入相同。

在其中一个实施例中,所述对所述第N-1个神经元组的模电位集合执行发放运算处理,包括:

控制所述胞体模块根据所述第N-1个神经元组的模电位集合中每个神经元的模电位,确定所述第N-1个神经元组中每个神经元的偏置模电位;

控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位,确定所述第N-1个神经元组中每个神经元待发送至路由上的发放模电位;

控制所述胞体模块将所述第N-1个神经元组中每个神经元的偏置模电位存储至缓冲区。

在其中一个实施例中,所述神经网络为人工神经网络;所述控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位,确定所述第N-1个神经元组中每个神经元待发送至路由上的发放模电位,包括:

控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位与发放值查找表,确定第N-1个神经元组中每个神经元的发放模电位。

在其中一个实施例中,所述神经网络为脉冲神经网络;所述控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位,确定所述第N-1个神经元组中每个神经元待发送至路由上的发放模电位,包括:

控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位以及预设阈值,确定第N-1个神经元组中每个神经元的发放模电位。

上述神经网络的数据处理方法,芯片通过控制树突模块依次对神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将模电位集合存储至缓冲区,然后在树突模块对第N个神经元组执行模电位积分运算时,控制胞体模块读取缓冲区内存储的第N-1个神经元组的模电位集合,并对第N-1个神经元组的模电位集合执行发放运算处理,从而使得树突模块的运算操作和胞体模块的运算操作可以并行执行,其大大提高了神经网络中神经元的模电位的数据处理效率,从而降低了树突模块和胞体模块的整体功耗。

一种神经网络的数据处理装置,其包括:

第一控制模块,用于控制树突模块依次对所述神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将所述模电位集合存储至缓冲区;其中,每个神经元组中包括至少一个神经元,所述模电位集合包括所述神经元组中的每个神经元的模电位;

第二控制模块,用于控制胞体模块在所述树突模块对第N个神经元组执行模电位积分运算时,读取所述缓冲区内存储的第N-1个神经元组的模电位集合,并对所述第N-1个神经元组的模电位集合执行发放运算处理;其中,所述N为大于1的整数。

一种芯片,包括:树突模块、胞体模块、缓冲区和处理器;所述树突模块与所述胞体模块电连接,所述树突模块和所述胞体模块均与所述处理器和所述缓冲区电连接;

其中,所述处理器用于控制所述树突模块依次对所述神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将所述模电位集合存储至缓冲区;以及,控制所述胞体模块在所述树突模块对第N个神经元组执行模电位积分运算时,读取所述缓冲区内存储的第N-1个神经元组的模电位集合,并对所述第N-1个神经元组的模电位集合执行发放运算处理;

其中,每个神经元组中包括至少一个神经元,所述模电位集合包括所述神经元组中的每个神经元的模电位,所述N为大于1的整数。

一种计算机存储介质,所述计算机存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行上述任一实施例所述的方法。

一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现上述任一实施例所述的方法。

上述神经网络的数据处理装置、芯片、设备和存储介质,能够用于控制树突模块依次对神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将模电位集合存储至缓冲区,然后在树突模块对第N个神经元组执行模电位积分运算时,控制胞体模块读取缓冲区内存储的第N-1个神经元组的模电位集合,并对第N-1个神经元组的模电位集合执行发放运算处理,从而使得树突模块的运算操作和胞体模块的运算操作可以并行执行,其大大提高了神经网络中神经元的模电位的数据处理效率,从而降低了树突模块和胞体模块的整体功耗。

附图说明

图1为本发明一个实施例提供的芯片的结构示意图;

图2为本发明一个实施例提供的神经网络的数据处理方法的流程示意图;

图3为本发明一个实施例提供的神经元组的示意图一;

图4为本发明一个实施例提供的神经元组的示意图二;

图5为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图;

图6为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图;

图7为本发明的一个实施例提供的数据处理时序示意图;

图8为本发明另一实施例提供的神经网络的数据处理方法的信令流程示意图;

图9为本发明一个实施例提供的神经网络的数据处理装置的结构示意图;

图10为本发明另一实施例提供的神经网络的数据处理装置的结构示意图;

图11为本发明另一实施例提供的神经网络的数据处理装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明实施例涉及的神经网络的数据处理方法,其执行主体可以是神经网络中的数据处理装置,该数据处理装置可以通过软件、硬件或者软硬件结合的方式实现。可选的,该数据处理装置可以为图1所示的芯片结构示意图中所示的芯片的部分或者全部。为了便于介绍后续的方法实施例,下述方法实施例中以执行主体是芯片为例来进行介绍。

如图1所示,该芯片包括:树突模块、胞体模块、缓冲区和处理器,可选的,该处理器中可以包含缓冲区仲裁器。需要说明的是,在一种可能的实施方式中,图1中的树突模块、胞体模块、缓冲区、处理器均可以通过硬件电路的方式实现。可选的,图1所示的芯片中还可以包括存储器,或者该芯片可以与外围电路中的存储器连接,从而使得该芯片可以调用存储器中的代码以执行相应的功能。其中,树突模块为可以对神经网络中的神经元进行模电位积分运算的电路模块,胞体模块为可以对神经网络中的神经元进行发放运算处理的电路模块。

另外,需要说明的是,本发明实施例涉及的神经网络,可以是人工神经网络,还可以是脉冲神经网络,本发明实施例对此并不做限制。

以人工神经网络的数据处理过程为例,传统技术中,该人工神经网络所涉及的神经形态电路主要完成积分运算和发放运算,发放运算的结果依赖于积分运算的结果,即只有等到所有神经元的积分运算结束后,才开始进行神经元的发放运算,该方法对神经网络中的数据处理效率低下,且功耗较高。

本发明实施例提供的神经网络的数据处理方法、装置、芯片和计算机存储介质,旨在解决传统技术的如上技术问题。

下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图2为本发明一个实施例提供的神经网络的数据处理方法的流程示意图。本实施例涉及的是芯片通过控制树突模块和胞体模块在对神经元组进行相应计算时的计算时序,实现树突模块和胞体模块的计算从串行转为并行,以提高数据处理效率的具体过程。如图1所示,该方法包括如下步骤:

S101:控制树突模块依次对神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将该模电位集合存储至缓冲区。

其中,每个神经元组中包括至少一个神经元,上述模电位集合包括神经元组中的每个神经元的模电位。

具体的,本实施例中,可以预先对神经网络中的神经元进行分组,得到多个神经元组,每个神经元组包括至少一个神经元。可选的,针对任一个神经元组所包含的神经元,部分神经元的树突输入可以相同,例如,参见图3所示的神经元组示意图一,该神经元组位于同一行的神经元的树突输入相同。可选的,本实施例中涉及的神经网络可以是人工神经网络,还可以是脉冲神经网络,还可以是其他的神经网络,本实施例对神经网络的类型并不做限定。

基于上述对神经网络中神经元的划分,芯片可以控制树突模块对所划分的神经元组依次执行模电位积分运算,得到每个神经元组对应的模电位集合,并将所得到的模电位集合存储至缓冲区,该模电位集合包括该神经元组中每个神经元的模电位。另外,这里的“依次”指的是:假设神经网络被划分了5个神经元组,分别为A、B、C、D、E,树突模块在执行完A组的模电位积分运算后,将A组的模电位集合存储值缓冲区,然后执行B组的模电位积分运算,以此类推,直至E组的模电位集合被存储至缓冲区为止。

可选的,以任一个神经元组为例,树突模块在针对该神经元组进行模电位积分运算时,该神经元组的模电位积分过程中的中间结果可以暂存在树突模块内,待该组的积分计算完毕后,可以将最终的结果存储至缓冲区。

可选的,作为上述芯片控制树突模块依次对所述神经网络中的每个神经元组执行模电位积分运算的一种可能的实施方式,上述芯片可以控制树突模块在对当前神经元组进行模电位积分运算时,对当前神经元组中位于同一层的神经元并行(即同时)执行模电位积分运算,即位于同一行的神经元的模电位更新可以同时进行的,以提高神经网络中数据处理的效率;同时,在同一行并行积分运算的基础上,树突模块的模电位积分运算也按照神经元组的“行”依次进行(即执行完一行神经元的模电位积分运算,然后执行下一行)。

需要说明的是,不同的神经元组中位于同一层的神经元的输入相同,该输入为上一时刻该层的神经元发放到路由上的模电位X。例如,参见图4所示的神经元组示意图二,图4中包括三个神经元组,分别为组1、组2和组3,针对组1的第一行神经元、组2的第一行神经元和组3的第一行神经元,其输入均为X1,针对组1的第二行神经元、组2的第二行神经元和组3的第二行神经元,其输入均为X2,依次类推。

另外,当树突模块在对当前神经元组进行模电位积分运算时,以一行中的任一个神经元p为例,对于神经元p和当前时刻的输入Xt,可以根据积分运算公式V(p)=V(p)'+XtWt,p得到该神经元p当前时刻的模电位;其中,Wt,p为突触权重,V(p)为当前时刻该神经元p积分运算后的模电位,V(p)'为该神经元p上一时刻的模电位。在具体积分过程中,树突模块可以将该神经元的模电位初始值从缓冲区读入到树突模块的累加寄存器中,即V(p)'=VB(p);在本组神经元积分结束后,将得到的组内的神经元的模电位从累加寄存器写回到缓冲区中,供胞体模块后续的读取操作。

S102:控制胞体模块在树突模块对第N个神经元组执行模电位积分运算时,读取缓冲区内存储的第N-1个神经元组的模电位集合,并对第N-1个神经元组的模电位集合执行发放运算处理。其中,N为大于1的整数。

具体的,当树突模块对第一个神经元组执行完模电位积分运算,并将第一个神经元组的模电位集合存储至缓冲区后,树突模块继续对下一个神经元组执行模电位积分运算;与此同时,芯片控制胞体模块从缓冲区读取第一个神经元组的模电位集合,以对第一个神经元组中的模电位集合执行发放运算处理。可选的,胞体模块可以逐个从缓冲区读取第一个神经元组中神经元的模电位,然后逐个对神经元的模电位执行发放运算处理。这里的发放运算处理可以包括:胞体模块确定是否向路由上发放该神经元。

也就是说,本实施例中,在树突模块对第N个神经元组执行模电位积分运算时,芯片控制胞体模块读取上述缓冲区内存储的第N-1个神经元组的模电位集合,并对第N-1个神经元组的模电位集合执行发放运算处理,这样使得第N-1个神经元组的发放运算处理和第N个神经元组的模电位积分运算可以并行执行,即树突模块的运算操作和胞体模块的运算操作可以并行执行,其大大提高了神经网络中神经元的模电位的数据处理效率,从而降低了树突模块和胞体模块的整体功耗。

本发明实施例提供的神经网络的数据处理方法,芯片通过控制树突模块依次对神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将模电位集合存储至缓冲区,然后在树突模块对第N个神经元组执行模电位积分运算时,控制胞体模块读取缓冲区内存储的第N-1个神经元组的模电位集合,并对第N-1个神经元组的模电位集合执行发放运算处理,从而使得树突模块的运算操作和胞体模块的运算操作可以并行执行,其大大提高了神经网络中神经元的模电位的数据处理效率,从而降低了树突模块和胞体模块的整体功耗。

图5为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图。本实施例涉及的是胞体模块对第N-1个神经元组的模电位集合执行发放运算处理的一种可能的实施方式。在上述图2所示实施例的基础上,可选的,上述S102可以包括如下步骤:

S201:控制胞体模块根据第N-1个神经元组的模电位集合中每个神经元的模电位,确定第N-1个神经元组中每个神经元的偏置模电位。

具体的,本实施例中,缓冲区一次只能提供一个神经元的模电位,因此芯片在控制胞体模块读取缓冲区中第N-1个神经元组的模电位集合时,是控制胞体模块逐个从缓冲区中读取第N-1个神经元组的模电位集合中的每个神经元的模电位的。另外,当胞体模块从缓冲区中读取到第N-1个神经元组中的第p个神经元的模电位V(p)后,胞体模块可以基于该第p个神经元的模电位V(p)和偏置值Vb(p)的和值,确定该第p个神经元的偏置模电位,即第p个神经元的偏置模电位等于V(p)+Vb(p)。基于上述方法,胞体模块就可以得到第N-1个神经元组中每个神经元的偏置模电位。

S202:控制胞体模块根据第N-1个神经元组中每个神经元的偏置模电位,确定第N-1个神经元组中每个神经元待发送至路由上的发放模电位。

可选的,在具体确定第p个神经元的发放模电位时,可以包含两种可能的实现方式,当然,本实施例并不以此为限。

第一种可能的实施方式:在人工神经网络中,芯片可以控制胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位与发放值查找表,确定第N-1个神经元组中每个神经元的发放模电位。

为了便于说明,这里以第N-1个神经元组中的第p个神经元为例来进行介绍,第N-1个神经元组中的其他神经元可以参照第p个神经元的处理过程进行。在该可能的实施方式中,胞体模块可以基于该第p个神经元的偏置模电位,查找发放值查找表fLUT,即采用F(p)=fLUT(V(p)+Vb(p))得到第p个神经元的发放模电位F(p)。

第二种可能的实施方式:控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位以及预设阈值,确定第N-1个神经元组中每个神经元的发放模电位。

这里同样以第N-1个神经元组中的第p个神经元为例来进行介绍,第N-1个神经元组中的其他神经元可以参照第p个神经元的处理过程进行。在该可能的实施方式中,胞体模块可以基于该第p个神经元的偏置模电位V(p)+Vb(p)和预设阈值Vth(p)的大小,确定第p个神经元的发放模电位F(p),具体可以根据下述公式实现:该公式中当第p个神经元的偏置模电位V(p)+Vb(p)大于或者等于预设阈值时,胞体模块确定发放第p个神经元,发放模电位等于1,当第p个神经元的偏置模电位V(p)+Vb(p)小于预设阈值时,胞体模块确定不向路由上发放第p个神经元,发放模电位即为0。

S203:控制胞体模块将每个神经元的偏置模电位存储至缓冲区。

需要说明的是,步骤S202和S203之间没有时序关系的限定,二者可以并行执行,还可以一前一后的执行,本实施例对此并不做限定。另外,由上述S202中两种可能的实施方式描述内容可以得知,芯片会控制胞体模块将该第p个神经元的偏置模电位V(p)”存储至缓冲区,即胞体模块写回到缓冲区的模电位可以通过公式:V(p)”=V(p)+Vb(p)得到。需要说明的是,V(p)、Vb(p)和Vth(p)均存储在缓冲区中,胞体模块可以按照时间顺序依次从缓冲区中读取,由于缓冲区一次只能提供一个数据,因此上述V(p)、Vb(p)和Vth(p)需要胞体模块多次进行读取。

基于上述对第p个神经元的处理过程,胞体模块在芯片的控制作用下,胞体模块也可以对第N-1个神经元组中的其他神经元执行上述过程,以得到每个神经元的发放模电位,并将其写回或者存储至缓冲区中。另外,在胞体模块对第N-1个神经元组进行上述操作的同时,芯片继续控制树突模块对第N个神经元组进行模电位积分运算,确保树突模块和胞体模块对数据的处理是并行的,从而大大提高了神经网络中数据的处理效率。

进一步地,基于上述实施例中的描述可知,树突模块和胞体模块均对缓冲区有读写需求,由于胞体模块对缓冲区的访问是随计算进行的,每次胞体模块都从缓冲区中访问一个神经元的模电位,更新后(即计算得到该神经元的偏置模电位)再写回到缓冲区中,因此,在胞体模块进行发放运算处理计算的过程中,胞体模块需要一直持有缓冲区的读写权,而树突模块只在进行读写期间持有对缓冲区的读写权。但是,由于缓冲区一个时刻只能提供一个模块所需的数据,因此芯片需要对缓冲区的读写授权进行相应的控制。下述实施例主要介绍芯片如何控制缓冲区针对树突模块和胞体模块的读写授权。可选的,芯片可以通过芯片内部的处理器或者缓冲区仲裁器执行下述过程。

图6为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图。本实施例涉及的是芯片根据树突模块执行模电位积分运算的进度或者根据胞体模块执行发放运算处理的进度控制缓冲区的读写授权的具体过程。在上述图2所示实施例的基础上,可选的,在上述S102之前,该方法还可以包括如下步骤:

S301:在监测到树突模块对第N-1个神经元组的模电位积分运算结束后,启动胞体模块。

S302:控制缓冲区面向胞体模块为可读写状态以及面向树突模块为禁止读写状态。

作为本实施例的一种可选的实施方式,芯片对缓冲区的读写授权的控制方式可以是:芯片实时监控树突模块和胞体模块的运算进度,树突模块每完成一个神经元组模电位积分运算,均会发出一个积分运算完毕信号。因此,当树突模块对第N-1个神经元组的模电位积分运算结束后,树突模块发出一个积分运算完毕信号,芯片监测到该信号后,芯片确定此时可以启动胞体模块,以控制胞体模块对第N-1个神经元组进行发放运算处理。另外,在胞体模块启动的同时,芯片控制缓冲区面向胞体模块为可读写状态以及面向树突模块为禁止读写状态,即芯片将缓冲区的读写权授权给胞体模块。

作为本实施例的另一种可选的实施方式,如上述图1所示的示意图,树突模块与胞体模块之间具有电连接关系,树突模块在对第N-1个神经元组的模电位积分运算结束后,树突模块也可以自主向胞体模块发送积分运算完毕信号,控制胞体模块启动,同时,芯片将缓冲区的读写权授权给胞体模块。

基于此,当芯片将缓冲区的读写权授权给胞体模块后,此时树突模块虽然可以继续对第N个神经元组的神经元进行模电位积分运算,但是计算的结果需要暂存在树突模块内,此时缓冲区并不对树突模块开放,而胞体模块可以在这个阶段继续完成第N-1个神经元组中每个神经元的发放运算处理,以将每个神经元的发放模电位写回至缓冲区。

可选的,在上述S102之后,即在胞体模块完成第N-1个神经元组的模电位集合的发放运算处理之后,本实施例的方法还可以包括:在监测到所述胞体模块对所述第N-1个神经元组的模电位集合的发放运算处理结束后,控制所述缓冲区面向所述胞体模块为禁止读写状态以及面向所述树突模块为可读写状态。

在该可选的方式中,芯片可以实时监控胞体模块的运算进度,胞体模块每完成一个神经元组的发放运算处理后,均会发出一个发放运算完毕信号。因此,当胞体模块对第N-1个神经元组的发放运算处理结束后,胞体模块发出一个发放运算完毕信号,芯片监测到该信号后,芯片确定此时可以将缓冲区的读写授权给予树突模块,此时树突模块可以将前述计算得到的第N个神经元组的模电位集合存储至缓冲区。可选的,如上述图1所示的示意图,树突模块与胞体模块之间具有电连接关系,因此,胞体模块在对第N-1个神经元组的发放运算积分运算结束后,胞体模块也可以自主向树突模块发送发放运算完毕信号,从而控制胞体模块启动,同时,芯片将缓冲区的读写权授权给树突模块。

另外,若上述第N个神经元组神经网络中的最后一个神经元组,则芯片在监测到树突模块对第N个神经元组的模电位积分运算结束后,控制树突模块停止运算。此时,芯片将缓冲区的读写授权给予胞体模块,胞体模块继续对缓冲区内的第N个神经元组的模电位集合进行发放运算处理。

需要说明的是,正常情况下,胞体模块的运算的时长小于树突模块,但当路由繁忙时,可能胞体模块向路由发送数据包的过程会受到阻碍,此时胞体模块发送数据的过程可能会较长,造成树突模块等待。因此,树突模块需要在胞体模块完成第N-1个神经元组的偏置模电位写入缓冲区的操作后,再将自身所计算的第N个神经元组的模电位写入缓冲区,具体可以参见图7所示的数据处理时序示意图。

本实施例提供的方法,芯片通过根据树突模块和胞体模块的计算进度控制缓冲区读写权的授权,避免树突模块和胞体模块写入缓冲区的操作冲突,从而保证了树突模块和胞体模块在对神经网络中的数据并行进行处理时的可靠性。

图8为本发明另一实施例提供的神经网络的数据处理方法的信令流程示意图。该实施例从芯片的内部模块交互的角度出发介绍神经网络的数据处理方法,当然,下述交互过程均在芯片的控制作用下进行。如图8所示,该方法包括:

S401、树突模块对当前神经元组执行模电位积分运算,得到当前神经元组对应的模电位集合,并将模电位集合存储至缓冲区。之后,树突模块对下一神经元组执行模电位积分运算。

S402:树突模块向胞体模块发送积分运算完毕信号,以启动胞体模块。

由于树突模块、胞体模块和缓冲区仲裁器之间的电连接关系,缓冲区仲裁器此时也可以收到积分运算完毕信号。

S403:芯片内部的缓冲区仲裁器将缓冲区的读写权授权给胞体模块。

S404:胞体模块对树突模块存入缓冲区的当前神经元组的模电位集合进行发放运算处理,并将发放运算处理之后得到的当前神经元组中每个神经元的偏置模电位写入缓冲区。

同时,依据实际的神经元的发放值的大小,胞体模块向路由上发放当前神经元组中部分或者全部神经元的发放模电位。

S405:胞体模块向树突模块发送发放运算完毕信号。

由于树突模块、胞体模块和缓冲区仲裁器之间的电连接关系,缓冲区仲裁器此时也可以收到发放运算完毕信号。

S406:缓冲区仲裁器将缓冲区的读写权授权给树突模块。

S407:树突模块将第N个神经元组的模电位集合存储至缓冲区。

上述S401-S407的具体过程可以参照上述实施例的描述内容,其实现原理和技术效果类似,在此不再赘述。

图9为本发明一个实施例提供的神经网络的数据处理装置的结构示意图。如图9所示,该装置包括第一控制模块11和第二控制模块12。

具体的,第一控制模块11,用于控制树突模块依次对神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将模电位集合存储至缓冲区;其中,每个神经元组中包括至少一个神经元,模电位集合包括神经元组中的每个神经元的模电位;

第二控制模块12,用于控制胞体模块在树突模块对第N个神经元组执行模电位积分运算时,读取缓冲区内存储的第N-1个神经元组的模电位集合,并对第N-1个神经元组的模电位集合执行发放运算处理;其中,N为大于1的整数。

本实施例提供的神经网络中的数据处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

图10为本发明另一实施例提供的神经网络中的数据处理装置的结构示意图。在图9所示实施例的基础上,上述装置还可以包括监测模块13和第三控制模块14。

具体的,监测模块13,用于监测树突模块或者胞体模块的数据处理进度;

第三控制模块14,用于在监测模块13监测到树突模块对第N-1个神经元组的模电位积分运算结束后,启动胞体模块,以及控制缓冲区面向胞体模块为禁止读写状态以及面向树突模块为可读写状态。

可选的,上述第三控制模块14,还可以用于在监测模块13监测到胞体模块对第N-1个神经元组的模电位集合的发放运算处理结束后,控制缓冲区面向胞体模块为禁止读写状态以及面向树突模块为可读写状态。

可选的,若第N个神经元组为神经网络中的最后一个神经元组,上述第三控制模块14,还可以用于在监测模块13监测到树突模块对第N个神经元组的模电位积分运算结束后,控制树突模块停止运算。

在其中的一个实施例中,上述第一控制模块11,具体用于控制树突模块在对当前神经元组执行模电位积分运算时,对当前神经元组中位于同一层的神经元并行执行模电位积分运算;其中,不同的神经元组中位于同一层的神经元的输入相同。

在其中的一个实施例中,参见图11所示,该实施例在上述图10所示实施例的基础上,第二控制模块12,具体包括:第一控制单元121、第二控制单元122和第三控制单元123。

具体的,第一控制单元121,用于控制胞体模块根据第N-1个神经元组的模电位集合中每个神经元的模电位,确定第N-1个神经元组中每个神经元的偏置模电位;

第二控制单元122,用于控制胞体模块根据第N-1个神经元组中每个神经元的偏置模电位,确定第N-1个神经元组中每个神经元待发送至路由上的发放模电位;

第三控制单元123,用于控制胞体模块将第N-1个神经元组中每个神经元的偏置模电位存储至缓冲区。

针对上述图11所示的实施例,当上述神经网络为人工神经网络时,在一种可能的实施方式中,上述第二控制单元122,具体用于控制胞体模块根据第N-1个神经元组中每个神经元的偏置模电位与发放值查找表,确定第N-1个神经元组中每个神经元的发放模电位。

针对上述图11所示的实施例,当上述神经网络为脉冲神经网络时,在一种可能的实施方式中,上述第二控制单元122,具体用于控制胞体模块根据第N-1个神经元组中每个神经元的偏置模电位以及预设阈值,确定第N-1个神经元组中每个神经元的发放模电位。

上述实施例提供的神经网络中的数据处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

继续参见上述图1,图1为本发明一个实施例提供的芯片的结构示意图。该芯片包括树突模块21、胞体模块22、缓冲区23和处理器24;树突模块21与胞体模块22电连接,树突模块21和胞体模块22均与处理器24和缓冲区23电连接。

其中,处理器24用于控制树突模块21依次对神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将模电位集合存储至缓冲区23;以及,控制胞体模块22在树突模块21对第N个神经元组执行模电位积分运算时,读取缓冲区23内存储的第N-1个神经元组的模电位集合,并对第N-1个神经元组的模电位集合执行发放运算处理;

其中,每个神经元组中包括至少一个神经元,模电位集合包括神经元组中的每个神经元的模电位,N为大于1的整数。

需要说明的是,本实施例中的树突模块21、胞体模块22、缓冲区仲裁器、缓冲区23均可以通过硬件电路的方式实现。

本实施例提供的芯片,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

本发明的一个实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行上述方法实施例中涉及的神经网络的数据处理方法。

本发明的一个实施例中,还提供一种计算机程序产品,其包含指令,当所述计算机程序被计算机所执行时,该指令使得计算机执行上述方法中神经网络的数据处理方法的功能。

上述实施例可以全部或者部分的通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或者部分地以计算机程序产品的形式实现,所述计算机程序产品可以包括一个或者多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或者部分地产生按照本发明实施例所述的流程或者功能。其中,所述计算机可以是通用的计算机、专用计算机、计算机网络或者其他可编程装置;所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤数字用户线DSL)或者无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或者数据中心进行传输;所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或者多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如软盘、硬盘、磁带、光介质(例如DVD)、或者半导体介质(例如固态硬盘SSD)等。

本发明一个实施例中,还提供一种计算机设备,所述计算机设备包括处理器、存储器以及存储在存储器上的计算机指令,所述计算机指令在被所述处理器执行时实现上述神经网络的数据处理方法,所述方法包括:

控制树突模块依次对所述神经网络中的每个神经元组执行模电位积分运算,得到每个神经元组对应的模电位集合,并将所述模电位集合存储至缓冲区;其中,每个神经元组中包括至少一个神经元,所述模电位集合包括所述神经元组中的每个神经元的模电位;

控制胞体模块在所述树突模块对第N个神经元组执行模电位积分运算时,读取所述缓冲区内存储的第N-1个神经元组的模电位集合,并对所述第N-1个神经元组的模电位集合执行发放运算处理;其中,所述N为大于1的整数。

在其中的一个实施例中,所述控制胞体模块在所述树突模块对第N个神经元组执行模电位积分运算时,读取所述缓冲区内存储的第N-1个神经元组的模电位集合之前,所述方法还包括:

在监测到所述树突模块对所述第N-1个神经元组的模电位积分运算结束后,启动所述胞体模块;

控制所述缓冲区面向所述胞体模块为可读写状态以及面向所述树突模块为禁止读写状态。

在其中的一个实施例中,所述对所述第N-1个神经元组的模电位集合执行发放运算处理之后,所述方法还包括:

在监测到所述胞体模块对所述第N-1个神经元组的模电位集合的发放运算处理结束后,控制所述缓冲区面向所述胞体模块为禁止读写状态以及面向所述树突模块为可读写状态。

在其中的一个实施例中,所述方法还包括:

若所述第N个神经元组为所述神经网络中的最后一个神经元组,则在监测到所述树突模块对所述第N个神经元组的模电位积分运算结束后,控制所述树突模块停止运算。

在其中的一个实施例中,所述控制树突模块依次对所述神经网络中的每个神经元组执行模电位积分运算,具体包括:

控制所述树突模块在对当前神经元组执行模电位积分运算时,对所述当前神经元组中位于同一层的神经元并行执行模电位积分运算;其中,不同的神经元组中位于同一层的神经元的输入相同。

在其中的一个实施例中,所述对所述第N-1个神经元组的模电位集合执行发放运算处理,具体包括:

控制所述胞体模块根据所述第N-1个神经元组的模电位集合中每个神经元的模电位,确定所述第N-1个神经元组中每个神经元的偏置模电位;

控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位,确定所述第N-1个神经元组中每个神经元待发送至路由上的发放模电位;

控制所述胞体模块将所述第N-1个神经元组中每个神经元的偏置模电位存储至缓冲区。

在其中的一个实施例中,所述神经网络为人工神经网络,所述控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位,确定所述第N-1个神经元组中每个神经元待发送至路由上的发放模电位,具体包括:

控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位与发放值查找表,确定第N-1个神经元组中每个神经元的发放模电位。

在其中的一个实施例中,所述神经网络为脉冲神经网络,所述控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位,确定所述第N-1个神经元组中每个神经元待发送至路由上的发放模电位,具体包括:

控制所述胞体模块根据所述第N-1个神经元组中每个神经元的偏置模电位以及预设阈值,确定第N-1个神经元组中每个神经元的发放模电位。

上述实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,在没有超过本申请的范围内,可以通过其他的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1