基于神经网络的数据处理方法、装置、存储介质及服务器与流程

文档序号:24069129发布日期:2021-02-26 14:17阅读:62来源:国知局
基于神经网络的数据处理方法、装置、存储介质及服务器与流程

[0001]
本申请实施例涉及计算机技术领域,特别涉及一种基于神经网络的数据处理方法、装置、存储介质及服务器。


背景技术:

[0002]
神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
[0003]
现有技术中的神经网络采用流水线形式搭建每个层次的网络单元。具体搭建方法为单独设计神经网络中的每一层网络单元,像流水线形式一样将上一层网络单元的计算结果传递给下一层网络单元。如图1所示,输入数据先由第一层网络单元中的conv 1 进行计算,计算结果存入buffer中,再传递给下一层网络单元中的conv 2,计算结果存入buffer中,再依次传递,直至由最后一层网络单元输出数据。
[0004]
随着网络层次的不断增加,这种流水线结构的神经网络的弊端越发明显。首先,需要单独设计每个层次的网络单元,使得芯片的创建工作量较大;其次,当网络层次增加到某一数量时,芯片将无法容纳整个流水线的计算过程;最后,随着网络层次的不断加深,拉大了不同网络层次之间计算时间的差距,最终使得整个流水线的效率下降。


技术实现要素:

[0005]
本申请实施例提供了一种基于神经网络的数据处理方法、装置、存储介质及服务器,用于解决流水线结构的神经网络的创建工作量大、芯片无法容纳计算过程以及神经网络的计算效率低的问题。所述技术方案如下:一方面,提供了一种基于神经网络的数据处理方法,所述方法包括:在将输入数据输入神经网络中的循环网络单元时,获取所述输入数据的通道数,所述输入数据为输入所述神经网络的初始数据,或者,所述输入数据为根据所述循环网络单元前一次的输出数据得到的数据,所述循环网络单元中包括n个不同尺寸的卷积单元,n大于等于2;从所述n个卷积单元中选择与所述通道数相匹配的目标卷积单元;将所述输入数据输入所述目标卷积单元;利用所述目标卷积单元对所述输入数据进行卷积运算,将得到的第一运算结果确定为所述循环网络单元的输出数据。
[0006]
在一种可能的实现方式中,当所述循环网络单元中还包括n个先进先出队列,且每个先进先出队列与一个卷积单元相连时;在所述从所述n个卷积单元中选择与所述通道数相匹配的目标卷积单元之前,所述方法还包括:从所述n个先进先出队列中选择与所述通道数相匹配的目标先进先出队列;将所述输入数据输入所述目标先进先出队列;
所述从所述n个卷积单元中选择与所述通道数相匹配的目标卷积单元,包括:从所述n个卷积单元中选择与所述目标先进先出队列相连的目标卷积单元;所述将所述输入数据输入所述目标卷积单元,包括:将从所述目标先进先出队列中输出的输入数据输入所述目标卷积单元。
[0007]
在一种可能的实现方式中,当所述n个先进先出队列还与所述循环网络单元中的一个预定卷积单元相连时;所述方法还包括:获取从所述目标先进先出队列中输出的输入数据的通道数;所述从所述n个卷积单元中选择与所述通道数相匹配的目标卷积单元,包括:若所述通道数与所述目标先进先出队列相连的卷积单元不匹配,则将所述预定卷积单元确定为所述目标卷积单元。
[0008]
在一种可能的实现方式中,当所述循环网络单元中还包括n个指令控制单元和n个数据总控单元,每个指令控制单元与一个先进先出队列和一个数据总控单元相连,每个数据总控单元与一个卷积单元相连时,所述将从所述目标先进先出队列中输出的输入数据输入所述目标卷积单元,包括:利用指令控制模块对所述先进先出队列的输出数据进行数据缓冲;将数据缓冲后的所述输出数据输入所述数据总控单元,数据缓冲后的所述输出数据的速度与所述数据总控单元的处理速度相匹配;利用所述数据总控单元中的行列控制器对所述输出数据提供预定大小的输出窗口;将所述输出窗口内的输出数据输入所述目标卷积单元。
[0009]
在一种可能的实现方式中,所述方法还包括:若所述输入数据对应于池化单元,则利用所述池化单元对所述输出数据进行池化运算,将得到的第二运算结果确定为所述循环网络单元下一次的输入数据;若所述输入数据未对应于池化单元,则将所述输出数据确定为所述循环网络单元下一次的输入数据。
[0010]
在一种可能的实现方式中,在所述将输入数据输入神经网络中的循环网络单元之前,所述方法还包括:利用预处理卷积单元对所述输入数据进行卷积运算,得到第三运算结果;将所述第三运算结果确定为最终的输入数据。
[0011]
在一种可能的实现方式中,当所述n为3时,所述卷积单元包括3
×
3卷积单元、5
×
5卷积单元和1
×
1卷积单元。
[0012]
一方面,提供了一种基于神经网络的数据处理装置,所述装置包括:获取模块,用于在将输入数据输入神经网络中的循环网络单元时,获取所述输入数据的通道数,所述输入数据为输入所述神经网络的初始数据,或者,所述输入数据为根据所述循环网络单元前一次的输出数据得到的数据,所述循环网络单元中包括n个不同尺寸的卷积单元,n大于等于2;选择模块,用于从所述n个卷积单元中选择与所述通道数相匹配的目标卷积单元;输入模块,用于将所述输入数据输入所述目标卷积单元;确定模块,用于利用所述目标卷积单元对所述输入数据进行卷积运算,将得到的第一运算结果确定为所述循环网络单元的输出数据。
[0013]
一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的基于神经网络的数据处理方法。
[0014]
一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的基于神经网络的数据处理方法。
[0015]
本申请实施例提供的技术方案的有益效果至少包括:由于神经网络中的循环网络单元中包括n个不同尺寸的卷积单元,所以,可以根据输入数据的通道数为该输入数据选择相匹配的目标卷积单元,再利用该目标卷积单元对该输入数据进行卷积运算,将得到的第一运算结果确定为循环网络单元的输出数据。后续,可以继续将输出数据作为输入数据输入循环网络单元,从而可以通过一个循环网络单元来循环处理数据。这样,可以通过一个循环网络单元来代替流水线结构,从而减少芯片的创建工作量;循环网络单元的体积较小,芯片可以容纳其计算过程;且循环网络单元可以减小不同网络层次之间的计算时间,从而提高了数据的处理效率。
附图说明
[0016]
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]
图1是根据相关技术示出的一种流水线结构的神经网络的结构示意图;图2是本申请一个实施例提供的基于神经网络的数据处理方法的方法流程图;图3是本申请一个实施例提供的数据对应的通道的示意图;图4是本申请一个实施例提供的循环网络单元的结构示意图;图5是本申请一个实施例提供的通道的结构示意图;图6是本申请一个实施例提供的基于神经网络的数据处理装置的结构框图。
具体实施方式
[0018]
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0019]
如图1所示,现有技术中的神经网络中包括x个网络单元、全连接单元和分类器,这x个网络单元构成流水线结构,且最后一个网络单元与全连接单元相连,全连接单元与分类器相连。当将输入数据输入神经网络时,先通过第一个网络单元对该输入数据进行处理,将第一个网络单元的输出数据作为第二个网络单元的输入数据;依此类推,将最后一个网络单元的输出数据输入全连接单元和分类器,得到神经网络的输出。
[0020]
由于流水线结构存在一些弊端,所以,本实施例中创建了一种循环网络单元,可以通过复用该循环网络单元来对数据进行处理。具体的,本申请中的神经网络包括一个循环网络单元、全连接单元和分类器,循环网络单元与全连接单元相连,全连接单元与分类器相连。当将输入数据输入神经网络时,先通过循环网络单元对该输入数据进行处理,将循环网
络单元的输出数据再次作为该循环网络单元的输入数据;依此类推,将循环网络单元最后一次的输出数据输入全连接单元和分类器,得到神经网络的输出。
[0021]
需要说明的是,网络单元或循环网络单元之后还可以依据需求连接池化单元,以便通过池化单元来池化运算,本实施例不做赘述。
[0022]
下面对神经网络的数据处理流程进行详细介绍。
[0023]
请参考图2,其示出了本申请一个实施例提供的基于神经网络的数据处理方法的方法流程图,该基于神经网络的数据处理方法可以应用于服务器中。该基于神经网络的数据处理方法,可以包括:步骤201,在将输入数据输入神经网络中的循环网络单元时,获取输入数据的通道数,输入数据为输入神经网络的初始数据,或者,输入数据为根据循环网络单元前一次的输出数据得到的数据,循环网络单元中包括n个不同尺寸的卷积单元。
[0024]
当首次向循环网络单元输入输入数据时,该输入数据可以是初始数据,比如,输入数据可以是一张输入神经网络的图像。当非首次向循环网络单元输入输入数据时,该输入数据可以是根据该循环网络单元前一次的输出数据得到的数据,比如,输入数据可以是循环网络单元前一次的输出数据,或者,输入数据可以是对循环网络单元前一次的输出数据进行池化运算后得到的数据。
[0025]
需要说明的是,循环网络单元中可以包括n个不同尺寸的卷积单元,以便对不同通道数的数据进行处理。其中,n大于等于2。本实施例不对卷积单元的尺寸作限定。
[0026]
在一个实例中,当n为3时,卷积单元可以包括3
×
3卷积单元、5
×
5卷积单元和1
×
1卷积单元。
[0027]
本实施例中,在将输入数据输入神经网络中的循环网络单元之前,还可以利用预处理卷积单元对输入数据进行卷积运算,得到第三运算结果;将第三运算结果确定为输入数据。
[0028]
在一个实例中,预处理卷积单元可以是一个1
×
1卷积单元。那么,可以先利用1
×
1卷积单元对输入数据进行卷积运算,将得到的第三运算结果作为输入数据。
[0029]
步骤202,从n个卷积单元中选择与通道数相匹配的目标卷积单元。
[0030]
本实施例中,可以从n个卷积单元中选择一个卷积单元,并将该卷积单元确定为目标卷积单元。
[0031]
以现有技术中的神经网络为例对输入数据进行分类,则输入数据可以分为网络单元1-3(即conv1-3)中的第一输入数据、网络单元4-9(即conv4-9)中的第二输入数据和剩余网络单元中的第三输入数据。其中,第一输入数据的长宽尺寸较大,且数据通道较少,适合用3
×
3卷积单元对其进行处理,所以,若输入数据为第一输入数据,则目标卷积单元可以是3
×
3卷积单元。第二输入数据的数据通道数较多,适合用5
×
5卷积单元对其进行处理,或者,如果用3
×
3卷积单元对其进行处理,则还需要额外的计算单元才能达到5
×
5卷积单元对其的处理效果。所以,若输入数据为第二输入数据,则目标卷积单元可以是5
×
5卷积单元。第三输入数据适合用1
×
1卷积单元对其进行处理,所以,若输入数据为第三输入数据,则目标卷积单元可以是1
×
1卷积单元,请参考图3。
[0032]
请参考图4,在第一种实现方式中,当循环网络单元中还包括n个先进先出队列(first in first out,fifo),且每个先进先出队列与一个卷积单元相连时,则在步骤202
之前,还可以从n个先进先出队列中选择与通道数相匹配的目标先进先出队列;将输入数据输入目标先进先出队列。由于每个先进先出队列与一个卷积单元相连,所以,步骤202可以具体为从n个卷积单元中选择与目标先进先出队列相连的目标卷积单元。即,将与目标先进先出队列相连的一个卷积单元确定为目标卷积单元。
[0033]
由于在根据通道数选择先进先出队列时可能会存在错误,所以,为了提高选择目标卷积单元的准确性,本实施例中还可以对从目标先进先出队列输出的输入数据的通道数进行二次判断,从而根据二次判断来选择准确的目标卷积单元。在第二种实现方式中,可以获取从目标先进先出队列中输出的输入数据的通道数;若该通道数与目标先进先出队列相连的卷积单元相匹配,则将该卷积单元确定为目标卷积单元;若该通道数与目标先进先出队列相连的卷积单元不匹配,则将预定卷积单元确定为目标卷积单元。其中,n个先进先出队列均与循环网络单元中的一个预定卷积单元相连。以上述三个卷积单元为例,则预定卷积单元可以是1
×
1卷积单元。
[0034]
步骤203,将输入数据输入目标卷积单元。
[0035]
由于输入数据已被输入到目标先进先出队列中,所以,可以将从目标先进先出队列中输出的输入数据输入目标卷积单元。
[0036]
本实施例中,当循环网络单元中还包括n个指令控制单元和n个数据总控单元,每个指令控制单元与一个先进先出队列和一个数据总控单元相连,每个数据总控单元与一个卷积单元相连时,将从目标先进先出队列中输出的输入数据输入目标卷积单元,可以包括:利用指令控制模块对先进先出队列的输出数据进行数据缓冲;将数据缓冲后的输出数据输入数据总控单元,数据缓冲后的输出数据的速度与数据总控单元的处理速度相匹配;利用数据总控单元中的行列控制器对输出数据提供预定大小的输出窗口;将输出窗口内的输出数据输入目标卷积单元。
[0037]
请参考图5,图5中每个先进先出队列和卷积单元之间连接有一个指令控制模块和一个数据总控模块,指令控制模块作为数据接口接收先进先出队列输出的数据,其中,先进先出队列输出的数据进入指令控制模块后,进行一次数据缓冲,使先进先出队列输出的数据的速度适应数据总控模块接收数据的速度。缓冲后的数据进入数据总控模块,数据总控模块中采用行列控制器来为不同数据通道的数据提供相应大小的输出窗口,最终,经过处理后的数据由数据总控模块的输出窗口分别输出到各个卷积单元。其中,通道数与输出窗口的大小呈正相关关系。
[0038]
步骤204,利用目标卷积单元对输入数据进行卷积运算,将得到的第一运算结果确定为循环网络单元的输出数据。
[0039]
本实施例中,若输入数据对应于池化单元,则利用池化单元对输出数据进行池化运算,将得到的第二运算结果确定为循环网络单元下一次的输入数据;若输入数据未对应于池化单元,则将输出数据确定为循环网络单元下一次的输入数据。
[0040]
综上所述,本申请实施例提供的基于神经网络的数据处理方法,由于神经网络中的循环网络单元中包括n个不同尺寸的卷积单元,所以,可以根据输入数据的通道数为该输入数据选择相匹配的目标卷积单元,再利用该目标卷积单元对该输入数据进行卷积运算,将得到的第一运算结果确定为循环网络单元的输出数据。后续,可以继续将输出数据作为输入数据输入循环网络单元,从而可以通过一个循环网络单元来循环处理数据。这样,可以
通过一个循环网络单元来代替流水线结构,从而减少芯片的创建工作量;循环网络单元的体积较小,芯片可以容纳其计算过程;且循环网络单元可以减小不同网络层次之间的计算时间,从而提高了数据的处理效率。
[0041]
请参考图6,其示出了本申请一个实施例提供的基于神经网络的数据处理装置的结构框图,该基于神经网络的数据处理装置可以应用于服务器中。该基于神经网络的数据处理装置,可以包括:获取模块610,用于在将输入数据输入神经网络中的循环网络单元时,获取输入数据的通道数,输入数据为输入神经网络的初始数据,或者,输入数据为根据循环网络单元前一次的输出数据得到的数据,循环网络单元中包括n个不同尺寸的卷积单元,n大于等于2;选择模块620,用于从n个卷积单元中选择与通道数相匹配的目标卷积单元;输入模块630,用于将输入数据输入目标卷积单元;确定模块640,用于利用目标卷积单元对输入数据进行卷积运算,将得到的第一运算结果确定为循环网络单元的输出数据。
[0042]
在一个可能的实现方式中,当循环网络单元中还包括n个先进先出队列,且每个先进先出队列与一个卷积单元相连时;选择模块620,还用于在从n个卷积单元中选择与通道数相匹配的目标卷积单元之前,从n个先进先出队列中选择与通道数相匹配的目标先进先出队列;输入模块630,还用于将输入数据输入目标先进先出队列;选择模块620,还用于从n个卷积单元中选择与目标先进先出队列相连的目标卷积单元;输入模块630,还用于将从目标先进先出队列中输出的输入数据输入目标卷积单元。
[0043]
在一个可能的实现方式中,当n个先进先出队列还与循环网络单元中的一个预定卷积单元相连时;获取模块610,还用于获取从目标先进先出队列中输出的输入数据的通道数;选择模块620,还用于若通道数与目标先进先出队列相连的卷积单元不匹配,则将预定卷积单元确定为目标卷积单元。
[0044]
在一个可能的实现方式中,当循环网络单元中还包括n个指令控制单元和n个数据总控单元,每个指令控制单元与一个先进先出队列和一个数据总控单元相连,每个数据总控单元与一个卷积单元相连时,输入模块630,还用于:利用指令控制模块对先进先出队列的输出数据进行数据缓冲;将数据缓冲后的输出数据输入数据总控单元,数据缓冲后的输出数据的速度与数据总控单元的处理速度相匹配;利用数据总控单元中的行列控制器对输出数据提供预定大小的输出窗口;将输出窗口内的输出数据输入目标卷积单元。
[0045]
在一个可能的实现方式中,确定模块640,还用于:若输入数据对应于池化单元,则利用池化单元对输出数据进行池化运算,将得到的第二运算结果确定为循环网络单元下一次的输入数据;若输入数据未对应于池化单元,则将输出数据确定为循环网络单元下一次的输入数据。
[0046]
在一个可能的实现方式中,该装置还包括:运算模块,用于在将输入数据输入神经网络中的循环网络单元之前,利用预处理卷积单元对输入数据进行卷积运算,得到第三运算结果;将第三运算结果确定为输入数据。
[0047]
在一个可能的实现方式中,当n为3时,卷积单元包括3
×
3卷积单元、5
×
5卷积单元和1
×
1卷积单元。
[0048]
综上所述,本申请实施例提供的基于神经网络的数据处理装置,由于神经网络中的循环网络单元中包括n个不同尺寸的卷积单元,所以,可以根据输入数据的通道数为该输入数据选择相匹配的目标卷积单元,再利用该目标卷积单元对该输入数据进行卷积运算,将得到的第一运算结果确定为循环网络单元的输出数据。后续,可以继续将输出数据作为输入数据输入循环网络单元,从而可以通过一个循环网络单元来循环处理数据。这样,可以通过一个循环网络单元来代替流水线结构,从而减少芯片的创建工作量;循环网络单元的体积较小,芯片可以容纳其计算过程;且循环网络单元可以减小不同网络层次之间的计算时间,从而提高了数据的处理效率。
[0049]
本申请一个实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的基于神经网络的数据处理方法。
[0050]
本申请一个实施例提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的基于神经网络的数据处理方法。
[0051]
需要说明的是:上述实施例提供的基于神经网络的数据处理装置在进行基于神经网络的数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将基于神经网络的数据处理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于神经网络的数据处理装置与基于神经网络的数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0052]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0053]
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1