本申请涉及计算机技术领域,具体涉及大数据、深度学习等人工智能技术领域,尤其涉及神经网络加速器的数据处理方法、装置、电子设备及存储介质。
背景技术:
相关技术中,神经网络加速器中会设置卷积单元、全连接单元等,其中,神经网络加速器设置较多单元容易使得神经网络加速器的芯片占用面积越来越大,硬件资源消耗较多,导致无法对神经网络加速器中的数据(如语音数据)进行处理。因此如何更好的实现神经网络加速器的数据处理成为亟待解决的问题。
技术实现要素:
本申请提供了一种神经网络加速器的数据处理方法、装置、电子设备以及存储介质。
根据本申请的第一方面,提供了一种神经网络加速器的数据处理方法,包括:
获取待处理数据以及对应的待执行操作;
获取与所述待执行操作对应的实数全连接操作;
根据所述神经网络加速器的实数全连接单元,对所述待处理数据执行所述实数全连接操作,以得到所述待执行操作针对所述待处理数据的执行结果。
根据本申请的第二方面,提供了一种神经网络加速器的数据处理装置,包括:
第一获取模块,用于获取待处理数据以及对应的待执行操作;
第二获取模块,用于获取与所述待执行操作对应的实数全连接操作;
第一处理模块,用于根据所述神经网络加速器的实数全连接单元,对所述待处理数据执行所述实数全连接操作,以得到所述待执行操作针对所述待处理数据的执行结果。
根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请的第一方面所述的神经网络加速器的数据处理方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请第一方面所述的面所述的神经网络加速器的数据处理方法。
根据本申请的第五方面,提供了一种计算机程序产品,所述计算机程序被处理器执行时实现本申请第一方面所述的神经网络加速器的数据处理方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一个实施例的神经网络加速器的数据处理方法的流程图;
图2是根据本申请一个具体实施例的神经网络加速器的数据处理方法的流程图;
图3-1是根据本申请另一个实施例的神经网络加速器的数据处理方法的流程图;
图3-2是根据本申请一个实施例的卷积操作与全连接操作关联关系的示意图;
图4是根据本申请又一个实施例的神经网络加速器的数据处理方法的流程图;
图5是根据本申请再一个实施例的神经网络加速器的数据处理方法的流程图;
图6是根据本申请一个神经网络加速器的数据处理装置的示意图;
图7是根据本申请另一个神经网络加速器的数据处理装置的示意图;
图8是根据本申请又一个神经网络加速器的数据处理装置的示意图;
图9是根据本申请再一个神经网络加速器的数据处理装置的示意图;
图10是根据本申请另一个神经网络加速器的数据处理装置的示意图;
图11是根据本申请另一个神经网络加速器的数据处理装置的示意图;
图12是根据本申请一个神经网络加速器的数据处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
相关技术中,神经网络加速器中会设置卷积单元、全连接单元等,其中,神经网络加速器设置较多单元容易使得神经网络加速器的芯片占用面积越来越大,硬件资源消耗较多,导致无法对神经网络加速器中的数据(如语音数据)进行处理。因此,芯片设计需要尽可能的使用少的硬件资源,或者相同的硬件资源去实现更多的算子操作是目前亟需解决的技术问题。
为了解决上述问题,本申请提出了一种神经网络加速器的数据处理方法、装置、电子设备及存储介质,本申请在获取待处理数据以及对应的待执行操作,之后获取与待执行操作对应的实数全连接操作,然后根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。由此通过神经网络加速器的实数全连接单元,可以实现对待处理数据的任何操作,从而实现了实数全连接单元的复用,在硬件逻辑最少的情况下,实现了多种操作。
下面参考附图描述本申请实施例的神经网络加速器的数据处理方法、装置、电子设备以及存储介质。
图1是根据本申请一个实施例的神经网络加速器的数据处理方法的流程图。需要说明的是,本申请实施例的神经网络加速器的数据处理方法可应用于本申请实施例的神经网络加速器的数据处理装置,该装置具体可以为硬件设备,或者硬件设备中的软件等,并且该装置可应用在电子设备中,其中,电子设备可以包括终端设备或者服务器。例如移动终端包括智能手机、平板电脑、pad、个人数字助理等。本申请实施例对此不作限定。
s101、获取待处理数据以及对应的待执行操作。
在本申请的实施例中,可通过电子设备获取神经网络加速器中的待处理数据以及对应的待执行操作。
需要说明的是,神经网络可理解为由大量的人工神经元联结进行计算,是一种非线性统计性数据建模工具,其中,神经网络具有以下三个部分:1)结构(architecture),结构指定了网络中的变量和它们的拓扑关系。例如,神经网络中的变量可以是神经元连接的权重(weights)和神经元的激励值(activitiesoftheneurons);2)激励函数(activityrule),大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。一般激励函数依赖于网络中的权重(即该网络的参数);3)学习规则(learningrule),学习规则指定了网络中的权重如何随着时间推进而调整。一般被看做是一种长时间尺度的动力学规则。一般情况下,学习规则依赖于神经元的激励值。它也可能依赖于监督者提供的目标值和当前权重的值。例如,用于手写识别的一个神经网络,有一组输入神经元。输入神经元会被输入图像的数据所激发。在激励值被加权并通过一个函数(由网络的设计者确定)后,这些神经元的激励值被传递到其他神经元。这个过程不断重复,直到输出神经元被激发。最后,输出神经元的激励值决定了识别出来的是哪个字母。
基于上述拥有的神经网络之后,不但可以在云端架设服务器提供人工智能服务,且可以应用到智能手机、智能安防甚至智能汽车中实现图像识别、物体跟踪和语音识别等任务。但这些应用由于其应用场景的不同,还有算法特性的限制,因此需要提供低功耗、高效的,专门设计用来运行神经网络算法的芯片,即理解为神经网络加速器。
举例而言,在本申请的一个实施例中,待处理数据可以为语音频域数据,其中,语音频域数据是对语音数据进行频域转换得到的数据,对语音频域转换的待执行的操作可以为复数卷积操作、复数全连接操作、分组实数卷积操作、实数卷积操作等。
s102、获取与待执行操作对应的实数全连接操作。
也就是说,获取到待处理数据以及对应的待执行操作后,可获取待执行操作对应的实数全连接操作。
其中,不同的待执行操作,其对应不同的实数全连接操作。具体的实现过程可参考后续实施例。
s103、根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
举例而言,获取到与待执行操作对应的实数全连接操作后,可根据神经网络加速器的实数全连接单元,对获取到的语音频域数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
根据本申请实施例的神经网络加速器的数据处理方法,通过获取待处理数据以及对应的待执行操作,之后获取与待执行操作对应的实数全连接操作,然后根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。由此通过神经网络加速器的实数全连接单元,可以实现对待处理数据的任何操作,从而实现了实数全连接单元的复用,在硬件逻辑最少的情况下,实现了多种操作。
为了本领域人员更容易理解本申请,本申请提出了一个具体实施例的神经网络加速器的数据处理方法,其中,需要说明的是,所述具体实施例的神经网络加速器的数据处理方法是对第一个实施例的进一步细化或者优化。其中,本实施例以获取到的待执行操作为复数卷积操作为例,图2是根据本申请一个具体实施例的神经网络加速器的数据处理方法的流程图,如图2所示,该神经网络加速器的数据处理方法可以包括:
s201、获取待处理数据以及对应的待执行操作。
举例而言,待处理数据可以为语音频域数据,其中,语音频域数据是对语音数据进行频域转换得到的数据,对语音频域转换的待执行的操作为复数卷积操作。
s202、获取与复数卷积操作对应的实数全连接操作。
在本申请的一个实施例中,获取到待执行操作为复数卷积操作时,可通过获取复数卷积操作对应的复数权重矩阵,之后对复数权重矩阵进行拆分,以得到实部权重矩阵以及虚部权重矩阵,然后根据实部权重矩阵生成实部全连接操作,并根据虚部权重矩阵生成虚部全连接操作,将实部全连接操作和虚部全连接操作进行组合,以得到实数全连接操作。
s203、在待处理数据的输入模式不为预设的输入模式的情况,将待处理数据的输入模式转换为预设的输入模式。
s204、根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
在本申请的一个实施例中,获取到与复数卷积操作对应的实数全连接操作,以及将待处理数据的输入模式转换为预设的输入模式之后,可根据神经网络加速器的实数全连接单元,对待处理数据执行实部全连接操作,得到实部结果,然后根据神经网络加速器的实数全连接单元,对待处理数据执行虚部全连接操作,得到虚部结果,之后根据实部结果和虚部结果生成执行结果。
根据本申请实施例的神经网络加速器的数据处理方法,通过获取待处理数据以及对应的待执行操作,获取与待执行操作对应的实数全连接操作,在待处理数据的输入模式不为预设的输入模式的情况,将待处理数据的输入模式转换为预设的输入模式,根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。由此通过神经网络加速器的实数全连接单元,可以实现对待处理数据的复数卷积操作对应的实数全连接操作,从而实现了实数全连接单元的复用,在硬件逻辑最少的情况下,实现了多种操作。
为了本领域人员更容易理解本申请,本申请提出了一个具体实施例的神经网络加速器的数据处理方法,其中,需要说明的是,所述具体实施例的神经网络加速器的数据处理方法是对第一个实施例的进一步细化或者优化。其中,本实施例以获取到的待执行操作为复数全连接操作为例,图3-1是根据本申请另一个实施例的神经网络加速器的数据处理方法的流程图,如图3-1所示,该神经网络加速器的数据处理方法可以包括:
s301、获取待处理数据以及对应的待执行操作。
举例而言,待处理数据可以为语音频域数据,其中,语音频域数据是对语音数据进行频域转换得到的数据,对语音频域转换的待执行的操作为复数全连接操作。
s302、获取与复数全连接操作对应的实数全连接操作。
在本申请的一个实施例中,获取到待执行的操作为复数全连接操作时,可通过获取复数全连接操作对应的复数权重矩阵,对复数权重矩阵进行拆分,以得到实部权重矩阵以及虚部权重矩阵,然后根据实部权重矩阵生成实部全连接操作,并根据虚部权重矩阵生成虚部全连接操作,将实部全连接操作和虚部全连接操作进行组合,以得到实数全连接操作。
s303、根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
也就是说,获取到与复数全连接操作对应的实数全连接操作后,可根据神经网络加速器的实数全连接单元,对获取到的待处理数据执行复数全连接操作对应实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
需要说明的是,卷积操作和全连接操作存在联系,即卷积操作与全连接操作之间可相互转换,也就是说,卷积操作可转换为全连接操作。
例如,如图3-2所示,一个特征图的尺寸信息:c×h×w,其对应特征向量c×k×k,多个特征图的尺寸信息:c×h×w对应多个特征向量,对整个特征图进行处理,即可得到特征矩阵(h×w)×(c×k×k),其中,h×w表示卷积核的尺寸,当存在一个滤波器时,其对应特征阵:(h×w)×(c×k×k),当存在多个滤波器时,其对应多个滤波器的卷积矩阵,进而将卷积矩阵coutx(hxw)乘以特征矩阵(c×k×k)×(h×w),可得到输出矩阵。其中,在cnn的术语中,3x3的矩阵叫做“滤波器(filter)”,或者“核(kernel)”,或者“特征检测器(featuredetector)”。
一种示例性的阐述如下:常规卷积操作可以将输入数据中按卷积核大小进行数据提取,图3-2中以5x5为例,每一个channel(渠道)可以提取25个像素,三个channel共3x5x5=75个像素,其中该75个像素与一个卷积的kernel(核心)进行点积运算,可以生成一个输出的点,与c’个卷积核运算,则生成输出c’个channel的相同位置的点,即可得到一个操作,与一个输入维度是75,输出维度是c’的向量乘矩阵的操作是等价的。
首先进行im2col操作提取改位置的输入,其中,该位置的输出可理解为卷积中计算某一个点的输出,位置指的是该点,然后和c’个卷积核进行点积,输出c’个值,分别存储在不同channel的相同位置,以此类推,卷积操作可以推导成为多个全连接操作和im2col操作的结合。
其中,卷积层在神经网络中的作用是提取特征,并且卷积层都是好多层串联在一起的,以提取更高维度的特征,如vgg模型提取。在npu(网络处理器)的实现中,为了优化效率,输入的格式不再是chw(c(channel,渠道),h(height,高度),w(width,宽度))模式,而是转置成为hwc(h(height,高度),w(width,宽度),(channel,渠道))模式,其中,输出也可转换成为hwc模式,方便下一层的卷积层调用,此时,对于输入w*c方向上的数据是连续的。h方向上只有卷积核的数据内存是连续的,为了输入数据每一行占用的内存是w*c,到下一行相同的w位置取点,输入数据需要增加一个stride(步长)。对软件来说,这里的不连续需要进行地址操作,那么流水线被打断,引起了效率的损失。对于ic设计来说,多放一个相应的地址控制单元,就可以保证效率不受损失。和正常的全连接操作的效率一样。
所以,hwc模式的输入,配合npu自添加的地址计数器,可以实现和向量乘矩阵相同效率的工作,而不需要添加im2col的实现,导致效率低的问题。
需要说明的是,在本申请上述实施例中,在复数卷积操作和复数全连接操作中,复数操作需要用标准的复数单元去实现,这样增加了ic(integratedcircuitchip,芯片)的面积和功耗。但是复数的全连接可以有一个变种方式。首先,复数的乘加操作是如下表示:
r.r+=a.r*b.r-a.i*b.i;
r.i+=a.r*b.i+a.i*b.r;
其中,r为实部,i为虚部,a为输入向量,b为权重矩阵.其中,如果维持a不变,对b权重矩阵做预处理,第一行中将权重矩阵所有的虚部都取负数值,第二行权重矩阵的实部和虚部进行互换,则可以直接用实数点积的方法进行复数的点积运算。这样一个m*n的权重矩阵运算,可以看成一个2m*2n的实数矩阵运算,采用这种方法,权重矩阵的存储空间将扩大一倍,鉴于语音操作中,复数卷积操作和复数全连接操作的内存在百kb量级,而npu设计在mb量级,这个存储空间的扩大是可以接受的,带来的好处是输入直接按实数看待,硬件不增加新的运算逻辑。实现了有效的解决了复数运算的问题,在相同的点积运算架构下,可以同时支持实数运算和复数运算。
举例而言,m*n的权重矩阵运算,可以看成一个2m*2n的实数矩阵运算的实现过程可参考以下实施例,例如,1x1的复数矩阵操作,可以修改为2x2的实数矩阵操作,第一行的weight分别是b.r,-b.i,第二行的weight分别是b.i,b.r,这样和一个2维的输入a.r,a.i进行矩阵运算,能够得到输出的r.r和r.i。
根据本申请实施例的神经网络加速器的数据处理方法,通过神经网络加速器的实数全连接单元,可以实现对待处理数据的复数全连接操作对应的实数全连接操作,从而实现了实数全连接单元的复用,在硬件逻辑最少的情况下,实现了实数全连接操作。
为了本领域人员更容易理解本申请,本申请提出了一个具体实施例的神经网络加速器的数据处理方法,其中,需要说明的是,所述具体实施例的神经网络加速器的数据处理方法是对第一个实施例的进一步细化或者优化。其中,本实施例以获取到的待执行操作为分组实数卷积操作为例,图4是根据本申请又一个实施例的神经网络加速器的数据处理方法的流程图,如图4所示,该神经网络加速器的数据处理方法可以包括:
s401、获取待处理数据以及对应的待执行操作。
举例而言,待处理数据可以为语音频域数据,其中,语音频域数据是对语音数据进行频域转换得到的数据,对语音频域转换的待执行的操作为分组实数卷积操作。
s402、获取与分组实数卷积操作对应的实数全连接操作。
在本申请的一个实施例中,获取到待执行的操作为分组实数卷积操作时,可通过获取分组实数卷积操作的第一权重矩阵,然后将第一权重矩阵进行处理,以得到对应实数卷积操作所对应的第二权重矩阵,根据第二权重矩阵,进而生成实数全连接操作。
s403、根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
也就是说,获取到与分组实数卷积操作对应的实数全连接操作后,可根据神经网络加速器的实数全连接单元,对获取到的待处理数据执行分组实数卷积对应的实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
需要说明的是,上述实施例中,分组实数卷积是一种减少卷积参数,以及卷积计算开销的方法,其中,分组卷积不太适合npu(neural-networkprocessingunit,网络处理器)运算,如果增加专用的分组卷积,npu的硬件设计复杂度又会增加许多。其中,在实际模型中,使用的分组卷积最多的是深度可分卷积(deepthwiseseparableconvolution),可通过普通的矢量乘加运算得到,其中,目前在npu中也有支持。例如,对于group(组)!=c或者c’的分组卷积,将对weight进行预处理,变成常规卷积。分组卷积可以认为是输入channelc中,每个组有d=c/group个channel(渠道),这些channel和卷积核进行卷积,得到一个输出值。每个卷积核的参数量是kernelh*kernelw*d,如果仍把weight调整到每个卷积核的参数量为kernelh*kernelw*c,非channeld的卷积核参数全部为0,这样得到的结果和单独做分组卷积的结果是一样的,区别是计算量增加了。但对npu来说,分组卷积就变成了常规卷积家的操作。而卷积本身的参数量非常小,将参数量还原为cchannel大小是可行的。这样npuip的核心硬件逻辑的复杂性降低,设计更加通用,避免了不同groupnumber(分类)的分组卷积都需要支持,都需要进行硬件设计的问题。
因此,分组卷积是将weight转化为常规卷积的weight,分组卷积的实质是将卷积的weight进行了压缩。转换为常规卷积的weight时,位于其他组的weight的值都是0,这样做的目的是使用同一套硬件逻辑,因为npu的矢量单元非常强大,可专门优化处理常规卷积。
根据本申请实施例的神经网络加速器的数据处理方法,通过神经网络加速器的实数全连接单元,可以实现对待处理数据的分组实数卷积操作对应的实数全连接操作,从而实现了实数全连接单元的复用,在硬件逻辑最少的情况下,实现了实数全连接操作。
为了本领域人员更容易理解本申请,本申请提出了一个具体实施例的神经网络加速器的数据处理方法,其中,需要说明的是,所述具体实施例的神经网络加速器的数据处理方法是对第一个实施例的进一步细化或者优化。其中,本实施例以获取到的待执行操作为实数卷积操作为例,图5是根据本申请再一个实施例的神经网络加速器的数据处理方法的流程图,如图5所示,该神经网络加速器的数据处理方法可以包括:
s501、获取待处理数据以及对应的待执行操作。
举例而言,待处理数据可以为语音频域数据,其中,语音频域数据是对语音数据进行频域转换得到的数据,对语音频域转换的待执行的操作为实数卷积操作。
s502、获取与实数卷积操作对应的实数全连接操作。
在本申请的一个实施例中,获取到待执行的操作为实数卷积操作时,可通过获取实数卷积操作所对应的至少一个权重矩阵,之后根据至少一个权重矩阵,生成至少一个实数全连接操作。
s503、根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
也就是说,获取到与待执行操作对应的实数全连接操作后,可根据神经网络加速器的实数全连接单元,对获取到的待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。
根据本申请实施例的神经网络加速器的数据处理方法,可通过神经网络加速器的实数全连接单元,可以实现对待处理数据的实数卷积操作对应的实数全连接操作,从而实现了实数全连接单元的复用,在硬件逻辑最少的情况下,实现了实数全连接操作。
与上述几种实施例提供的神经网络加速器的数据处理方法相对应,本申请的一种实施例还提供一种神经网络加速器的数据处理装置,由于本申请实施例提供的神经网络加速器的数据处理装置与上述几种实施例提供的神经网络加速器的数据处理方法相对应,因此在神经网络加速器的数据处理方法的实施方式也适用于本实施例提供的神经网络加速器的数据处理装置,在本实施例中不再详细描述。
图6是根据本申请神经网络加速器的数据处理装置的示意图。如图6所示,该神经网络加速器的数据处理装置600包括:第一获取模块610、第二获取模块620和第一处理模块630。其中:
第一获取模块610,用于获取待处理数据以及对应的待执行操作;
第二获取模块620,用于获取与所述待执行操作对应的实数全连接操作;
第一处理模块630,用于根据所述神经网络加速器的实数全连接单元,对所述待处理数据执行所述实数全连接操作,以得到所述待执行操作针对所述待处理数据的执行结果。作为一种示例,所述第一处理模块,具体用于:根据所述神经网络加速器的实数全连接单元,对所述待处理数据执行所述实部全连接操作,得到实部结果:根据所述神经网络加速器的实数全连接单元,对所述待处理数据执行所述虚部全连接操作,得到虚部结果;根据所述实部结果和虚部结果生成所述执行结果。
在本申请的一个实施例中,如图7所示,所述待执行操作为复数卷积操作,所述第二获取模块720,包括:第一获取单元7201,用于获取所述复数卷积操作对应的复数权重矩阵;第二获取单元7202,用于对所述复数权重矩阵进行拆分,以得到实部权重矩阵以及虚部权重矩阵;第一生成单元7203,用于根据所述实部权重矩阵生成实部全连接操作,并根据虚部权重矩阵生成虚部全连接操作;第三获取单元7204,用于将所述实部全连接操作和所述虚部全连接操作进行组合,以得到所述实数全连接操作。
其中,图7中710-730和图6中的610-630具有相同功能和结构。
在本申请的一个实施例中,如图8所示,在所述第一处理模块之前830,所述装置还包括:转换模块840,用于在所述待处理数据的输入模式不为预设的输入模式的情况,将所述待处理数据的输入模式转换为所述预设的输入模式。
其中,图8中810-830和图7中的710-730具有相同功能和结构。
在本申请的一个实施例中,如图9所示,所述操作为复数全连接操作,所述第二获取模块920,包括:第四获取单元9201,用于获取所述复数全连接操作对应的复数权重矩阵;第五获取单元9202,用于对所述复数权重矩阵进行拆分,以得到实部权重矩阵以及虚部权重矩阵;第二生成单元9203,用于根据所述实部权重矩阵生成实部全连接操作,并根据虚部权重矩阵生成虚部全连接操作;第一组合单元9204,用于将所述实部全连接操作和所述虚部全连接操作进行组合,以得到所述实数全连接操作。
其中,图9中910-930和图6中的610-630具有相同功能和结构。
在本申请的一个实施例中,如图10所示,所述待执行操作为分组实数卷积操作,所述第二获取模块1020,包括:第六获取单元10201,用于获取所述分组实数卷积操作的第一权重矩阵;第七获取单元10202,用于将所述第一权重矩阵进行处理,以得到对应实数卷积操作所对应的第二权重矩阵;第三生成单元10203,用于根据所述第二权重矩阵,生成所述实数全连接操作。
其中,图10中1010-1030和图6中的610-630具有相同功能和结构。
在本申请的一个实施例中,如图11所示,所述待执行操作为实数卷积操作,所述第二获取模块1120,包括:第八获取单元11201,用于获取所述实数卷积操作所对应的至少一个权重矩阵;第四生成单元11202,用于根据所述至少一个权重矩阵,生成所述至少一个实数全连接操作。
其中,图11中1110-1130和图6中的610-630具有相同功能和结构。
根据本申请实施例的神经网络加速器的数据处理装置,通过获取待处理数据以及对应的待执行操作,之后获取与待执行操作对应的实数全连接操作,然后根据神经网络加速器的实数全连接单元,对待处理数据执行实数全连接操作,以得到待执行操作针对待处理数据的执行结果。由此通过神经网络加速器的实数全连接单元,可以实现对待处理数据的任何操作,从而实现了实数全连接单元的复用,在硬件逻辑最少的情况下,实现了多种操作。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图12所示,是根据本申请实施例的神经网络加速器的数据处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,设备1200包括计算单元1201,其可以根据存储在rom(read-onlymemory,只读存储器)1202中的计算机程序或者从存储单元12012加载到ram(randomaccessmemory,随机访问/存取存储器)1203中的计算机程序,来执行各种适当的动作和处理。在ram1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、rom1202以及ram1203通过总线1204彼此相连。i/o(input/output,输入/输出)接口1205也连接至总线1204。
设备1200中的多个部件连接至i/o接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于cpu(centralprocessingunit,中央处理单元)、gpu(graphicprocessingunits,图形处理单元)、各种专用的ai(artificialintelligence,人工智能)计算芯片、各种运行机器学习模型算法的计算单元、dsp(digitalsignalprocessor,数字信号处理器)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如神经网络加速器的数据处理方法。例如,在一些实施例中,神经网络加速器的数据处理可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由rom1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到ram1203并由计算单元1201执行时,可以执行上文描述的神经网络加速器的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行神经网络加速器的数据处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、fpga(fieldprogrammablegatearray,现场可编程门阵列)、asic(application-specificintegratedcircuit,专用集成电路)、assp(applicationspecificstandardproduct,专用标准产品)、soc(systemonchip,芯片上系统的系统)、cpld(complexprogrammablelogicdevice,复杂可编程逻辑设备)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、ram、rom、eprom(electricallyprogrammableread-only-memory,可擦除可编程只读存储器)或快闪存储器、光纤、cd-rom(compactdiscread-onlymemory,便捷式紧凑盘只读存储器)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(cathode-raytube,阴极射线管)或者lcd(liquidcrystaldisplay,液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:lan(localareanetwork,局域网)、wan(wideareanetwork,广域网)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtualprivateserver",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
其中,需要说明的是,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。