一种数据处理方法和装置与流程

未命名 08-02 阅读:88 评论:0


1.本技术属于人工智能技术领域,尤其涉及一种数据处理方法和装置。


背景技术:

2.神经网络(neural networks,nn)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统。目前,在基于神经网络模型的数据处理中,存在数据存储与带宽需求高、计算性能低等一系列问题,如何解决这些问题,成为本领域一个技术难点。


技术实现要素:

3.为此,本技术公开如下技术方案:
4.一种数据处理方法,所述方法包括:
5.获取包含第一目标数据的至少一个第一目标数据对象,各个第一目标数据对象中的第一目标数据至少包括各个数据处理通道对应的所有有效数据;每个第一目标数据对应相应位置信息,用于指示第一目标数据对应的第二目标数据的位置;所述第一目标数据对象的数量小于所述数据处理通道的数量;
6.根据所述第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据;
7.对所述第一目标数据和对应的第二目标数据进行数据处理。
8.可选的,每个第一目标数据对象的稀疏度小于设定阈值;所述稀疏度用于表征所述第一目标数据对象中无效数据的占比。
9.可选的,所述第一目标数据对象的形成方法包括:
10.基于模型训练过程,为每个数据处理通道生成对应的第一数据对象;
11.整合各个数据处理通道分别对应的第一数据对象中的有效数据,得到所述至少一个第一目标数据对象。
12.可选的,所述整合各个数据处理通道分别对应的第一数据对象中的有效数据,包括:
13.确定各个第一数据对象中的无效数据与有效数据;
14.将部分数量第一数据对象包含的有效数据,搬移至所述部分数量第一数据对象以外的第一数据对象中无效数据所处位置;所述至少一个第一目标数据对象包括完成搬移后所得的至少包含各个有效数据的第一数据对象。
15.可选的,所述根据所述第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据,包括:
16.对于所述第一目标数据对象中的每一第一目标数据,获取目标数据处理通道对应的第二数据对象中对应于目标位置的待处理数据,作为所述第一目标数据对应的第二目标数据;
17.其中,所述目标数据处理通道和所述目标位置,分别为所述第一目标数据的位置信息指示的数据处理通道及在所指示数据处理通道内的相应位置。
18.可选的,所述对所述第一目标数据和对应的第二目标数据进行数据处理,包括:
19.为每一第一目标数据对象分配对应的可用硬件处理通道,利用对应的可用硬件处理通道对相应第一目标数据对象内的第一目标数据和对应的第二目标数据进行数据处理;
20.或,按预设均衡策略,将各个第一目标数据和对应的第二目标数据所形成的待处理数据对按数量均衡分配至不同的可用硬件处理通道,利用对应的可用硬件处理通道对分配的待处理数据对进行数据处理。
21.可选的,所述方法,包括对预设的多个功能层所对应的第一目标数据和第二目标数据的数据处理;每个功能层对应多个数据处理通道,且每个功能层对应待处理的至少一个第一目标数据对象及在所对应各个数据处理通道上的第二数据对象,各个功能层之间依次串接;
22.所述整合各个所述数据处理通道分别对应的第一数据对象中的有效数据包括:
23.确定当前功能层在各个数据处理通道上分别对应的第一数据对象中的无效数据,与有效数据中对下游功能层的数据处理无价值的非价值数据;
24.将所述当前功能层对应的第一数据对象中部分数量第一数据对象包含的目标有效数据,搬移至所述当前功能层中所述部分数量第一数据对象以外的第一数据对象中无效数据和非价值数据所处位置;
25.其中,所述当前功能层对应的所述至少一个第一目标数据对象包括对所述当前功能层完成搬移后所得的至少包含各个有效数据的第一数据对象;所述第一数据对象包含的目标有效数据为所述第一数据对象中无效数据和非价值数据以外的数据。
26.可选的,所述非价值数据的确定过程包括:
27.若所述多个功能层中第一功能层所对应的各个第一数据对象中存在第一数据对象包括无效数据,从所述第一功能层的上游功能层对应的各个第一数据对象中确定对应的数据处理结果会被所述无效数据无效掉的待处理数据,作为所述非价值数据。
28.可选的,所述第一目标数据对象的形成方法,还包括:
29.确定各个数据处理通道分别对应的第一数据对象中的数据是否满足稀疏化条件,在满足情况下触发所述整合各个数据处理通道分别对应的第一数据对象中的有效数据,得到所述至少一个第一目标数据对象的步骤。
30.一种数据处理装置,所述装置包括:
31.第一获取单元,用于获取包含第一目标数据的至少一个第一目标数据对象,各个第一目标数据对象中的第一目标数据至少包括各个数据处理通道对应的所有有效数据;每个第一目标数据对应相应位置信息,用于指示第一目标数据对应的第二目标数据的位置;所述第一目标数据对象的数量小于所述数据处理通道的数量;
32.第二获取单元,用于根据所述第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据;
33.数据处理单元,用于对所述第一目标数据和对应的第二目标数据进行数据处理。
34.由以上方案可知,本技术公开一种数据处理方法和装置,数据处理方法包括:获取包含第一目标数据的至少一个第一目标数据对象,各个第一目标数据对象中的第一目标数
据至少包括各个数据处理通道对应的所有有效数据;每个第一目标数据对应相应位置信息,用于指示第一目标数据对应的第二目标数据的位置;所述第一目标数据对象的数量小于所述数据处理通道的数量;根据第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据;对第一目标数据和对应的第二目标数据进行数据处理。
附图说明
35.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其它的附图。
36.图1是本技术提供的有效数据整合前后的计算量对比示例;
37.图2是本技术提供的数据处理方法流程图;
38.图3是本技术提供的形成第一目标数据对象的一种流程图;
39.图4(a)是本技术提供的各个输入通道对应的稀疏权重矩阵示例;
40.图4(b)是本技术提供的对图4(a)的稀疏权重矩阵进行有效数据整合的示意图;
41.图5是本技术提供的将第一目标数据与对应的第二目标数据形成的待处理数据对均衡分配至不同可用硬件通道的示例;
42.图6(a)-图6(b)是本技术提供的有效数据整合前后的另一种计算量对比示例;
43.图7是本技术提供的形成第一目标数据对象的另一种流程图;
44.图8是本技术提供的确定非价值数据的一个示例;
45.图9是本技术提供的数据处理装置的组成结构图;
46.图10是本技术提供的电子设备的组成结构图。
具体实施方式
47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
48.目前,在基于神经网络模型的数据处理中,存在数据存储与带宽需求高、计算性能低等一系列问题。
49.在神经网络模型训练中,常常会对权重进行量化与剪枝操作,导致权重会产生大量的0值,此种网络中的大量0值现象被称为稀疏化。在典型的网络,如lenet-5、alexnet、vgg16中,经过剪枝后,在不损失精度情况下,通常能达到80%以上的稀疏率,申请人发现,神经网络中的主要运算包括乘法与加法,0值对最终的计算结果没有任何贡献,如果在传输与存储时,将0值压缩,只传输有效值,能极大减少传输与存储所需带宽,如果计算时将0值跳过,能极大提高计算性能,如图1提供的示例,若能对权重矩阵中的0值跳过,计算量会从原始的9减小为4。
50.然而,目前负责神经网络模型的数据处理的相关硬件,如相关商用芯片,都不支持
权重非结构化随机稀疏化处理,0值权重仍然参与处理、占用计算时间,而如何基于模型网络中权重的稀疏化特性,提升对其进行处理时的计算性能,降低数据存储与带宽需求量,成为一个难点。
51.基于此,本技术提供一种数据处理方法和装置,用于解决上述技术问题,可应用于但不限于个人计算机或服务器等电子设备,参见图2示出的数据处理方法流程图,该方法至少包括:
52.步骤201、获取包含第一目标数据的至少一个第一目标数据对象,各个第一目标数据对象中的第一目标数据至少包括各个数据处理通道对应的所有有效数据;每个第一目标数据对应相应位置信息,用于指示第一目标数据对应的第二目标数据的位置;第一目标数据对象的数量小于数据处理通道的数量。
53.本技术所提供的方法,可以但不限于适用于自然语言处理、图像处理、视频处理、语音识别、工业检测(如设备缺陷检测)等多种领域。
54.本技术实施例主要以神经网络模型(如深度神经网络模型)的数据处理为例,进行方案说明。
55.各个数据处理通道,可以是但不限于神经网络模型中网络层的各个输入通道,例如,对于基于神经网络模型的图像处理,各个数据处理通道具体可以是但不限于,模型各个卷积层的r、g、b三原色输入通道以及纹理输入通道、语义输入通道等。
56.各个数据处理通道在其先期的形成阶段,分别以一对一方式对应有相应的第一数据对象,每个第一数据对象包括至少一个有效数据,除此之外,还可能包含非有效数据(无效数据)。数据对象中的有效数据,是指数据对象中包含的对数据处理具有贡献价值的数据,而数据对象中包含的对数据处理不具有贡献价值的数据,则可作为数据对象的非有效数据或无效数据。
57.该步骤中,各个数据处理通道对应的有效数据,具体指各个数据处理通道对应的第一数据对象中的有效数据。
58.为提升对各个数据处理通道的数据处理性能,预先对各个数据处理通道对应的第一数据对象中的有效数据进行整合,得到至少一个第一目标数据对象,该至少一个第一目标数据对象至少包括各个数据处理通道对应的各个第一数据对象中的所有有效数据,且第一目标数据对象的数量小于数据处理通道的数量,以此实现对各个第一数据对象中至少部分无效数据的裁剪、压缩。第一目标数据对象中的数据称为第一目标数据,第一目标数据可能为有效数据,也可能为无效数据,视实际情况而定。
59.同时,为第一目标数据对象中的第一目标数据记录对应的位置信息。第一目标数据的位置信息,用于指示第一目标数据对应的第二目标数据的位置。
60.在针对各个数据处理通道的数据处理中,每个数据处理通道还对应一待处理的第二数据对象,同一数据处理通道所对应第一数据对象与第二数据对象中的数据按位置一一对应为相应的待处理数据对,第一目标数据对象中的第一目标数据对应的第二目标数据,具体为第一目标数据对象所属通道对应的第二数据对象中用于与该第一目标数据对应为待处理数据对的第二目标数据。
61.第一目标数据的位置信息,具体可以指示对应的数据处理通道及在所指示数据处理通道内的相应位置,所指示的数据处理通道为该第一目标数据所属的第一目标数据对象
对应的数据处理通道;所述在所指示数据处理通道内的相应位置,则为第一目标数据在所属第一目标数据对象中的位置。
62.但不限于此,在其它实施方式中,第一目标数据的位置信息,也可以指示第一目标数据所属的第一目标数据对象及在所属第一目标数据对象中的位置,以便基于其所属的第一目标数据对象确定对应的数据处理通道,进而确定该通道对应的第二数据对象,并基于第一目标数据在所属第一目标数据对象中的位置,在确定出的第二数据对象中进一步确定与之(第一目标数据)匹配的用于形成待处理数据对的第二目标数据。
63.以神经网络模型为例,在模型训练阶段完成模型训练时,每个输入通道对应一权重矩阵(卷积核kernel),完成训练时输入通道对应的该权重矩阵即可作为输入通道的第一数据对象,其中包括的非0值视为有效数据,0值则视为无效数据,输入通道对应的第二数据对象则为模型使用阶段输入通道上的待处理特征图,本技术实施例在完成模型训练之后,将模型网络层各个输入通道上权重矩阵中的非0值进行整合,以裁剪掉其中的至少部分0值数据,得到对应的至少一个目标权重矩阵(第一目标数据对象),整合后,网络层对应的目标权重矩阵的数量少于该网络层中输入通道的数量,目标权重矩阵中的每个权重称为目标权重。
64.同时,为目标权重矩阵中的目标权重记录对应的位置信息,可选的,目标权重的位置信息,可以指示目标权重所属的原始权重矩阵对应的输入通道及在所指示输入通道内对应的位置(在所指示输入通道内对应的位置,本质即为目标权重在所属的原始权重矩阵中的位置),或者,也可以指示目标权重所属的原始权重矩阵及在所属原始权重矩阵中的位置。
65.其中,特征图可以但不限于是图像、语音等各种类型的处理数据。具体可以对特征图进行一维卷积、二位卷积或三维卷积,不作限制,可视实际需求而定。例如针对1*3尺寸的一维卷积核,可基于1*3的权重矩阵对1*3的特征图进行一维卷积,针对3*3尺寸的二维卷积核,相应可基于3*3的权重矩阵对3*3的特征图进行二维卷积。
66.在针对各个数据处理通道进行数据处理时,首先获取各个数据处理通道对应的所述至少一个第一目标数据对象。例如,获取神经网络模型中当前网络层各个输入通道对应的至少一个目标权重矩阵,网络层可以是但不限于模型网络中的卷积层或全连接层。
67.步骤202、根据第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据。
68.之后,针对每个第一目标数据对象,根据其第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据,以与第一目标数据形成对应的待处理数据对。
69.其中,针对第一目标数据的位置信息的前一种实现方式,对每个第一目标数据对象中的每一第一目标数据,可获取目标数据处理通道对应的第二数据对象中对应于目标位置的待处理数据,作为第一目标数据对应的第二目标数据;目标数据处理通道和目标位置,分别为第一目标数据的位置信息指示的数据处理通道及在所指示数据处理通道内的相应位置。
70.针对第一目标数据的位置信息的后一种实现方式,对每个第一目标数据对象中的每一第一目标数据,可根据其位置信息确定该第一目标数据所属的第一数据对象,并从所
属第一数据对象所在的数据处理通道对应的第二数据对象中,获取与该第一目标数据在其所属第一数据对象中所处位置一致的数据,作为第二目标数据,以与该第一目标数据形成待处理数据对。
71.例如,假设神经网络模型的卷积层对应三个输入通道ch1、ch2、ch3,在完成模型训练时分别对应权重矩阵wm1、wm2、wm3,经对权重矩阵wm1、wm2、wm3中的非0权重整合得到目标权重矩阵wm0,数据处理阶段,三个输入通道ch1、ch2、ch3对应的待处理特征图分别为fm1、fm2、fm3。则针对wm0中的每个目标权重,获取其在所对应特征图中的特征值。如,假设3*3目标权重矩阵wm0中的某个目标权重,所属的原始权重矩阵为wm1,在3*3矩阵wm1中位于位置6(设定3*3矩阵中共有1,2,
……
,9共九个位置,各个位置在矩阵中依次排布),则基于该目标权重的位置信息(wm1,6),确定出通道ch1,进而确定出通道ch1对应的特征图fm1,并从fm1中获取位置6对应的特征值,与该目标权重形成待处理数据对。
72.步骤203、对第一目标数据和对应的第二目标数据进行数据处理。
73.之后,对每个待处理数据对中的第一目标数据和第二目标数据进行数据处理,得到待处理数据对的数据处理结果。进一步,还可以对各个待处理数据对分别对应的数据处理结果执行按需处理。
74.其中,可根据业务需求,确定对待处理数据对中第一目标数据和第二目标数据的处理方式,和/或对各个待处理数据对分别对应的数据处理结果的处理方式。可选的,所确定的处理方式,可以包括乘法处理和加法处理中的至少一种。
75.以对神经网络模型的数据处理为例,可对基于目标权重矩阵及特征图形成的各个待处理数据对(目标权重-特征值)进行乘累加操作,即,首先分别将每个待处理数据对中的目标权重和特征值相乘,之后,将每个待处理数据对对应的相乘结果进行累加,例如,针对两个“目标权重-特征值”数据对b-b和e-e,对其进行乘累加操作后,具体可得到b*b+e*e。
76.综上,本技术公开的数据处理方法,通过将各个数据处理通道对应的第一数据对象中的有效数据整合成至少一个第一目标数据对象,使得第一目标数据对象的数量小于数据处理通道的数量,实现了对各个数据处理通道对应的第一数据对象中至少部分无效数据的裁剪、压缩,相应可使在针对各个数据处理通道的数据处理中,跳过对至少部分无效数据的传输、存储、运算,从而提升了数据计算性能,降低了数据存储与带宽需求量。且由于裁剪的是对数据处理无贡献的无效数据,从而不会数据处理结果产生影响。
77.在一可选实施例中,每个第一目标数据对象的稀疏度小于设定阈值;所述稀疏度用于表征第一目标数据对象中无效数据的占比。
78.例如,在有效数据整合处理中,基于约束条件约束整合处理过程,使每个目标权重矩阵的稀疏度小于10%,将目标权重矩阵中0值权重的占比控制在10%以内。
79.本实施例通过限定第一目标数据对象的稀疏度,使第一目标数据对象中无效数据的占比小于设定阈值,使得设置尽可能小的稀疏度,相应尽可能保证各个数据处理通道上有足够的无效数据被裁剪掉,以进一步提升对各个数据处理通道的数据计算性能,降低数据存储与带宽需求量。
80.实际应用中,也可以适当放松对稀疏度数值的设置约束,具体可在上述设定阈值的基础上为稀疏度的设置提供一定裕度,并提供在该裕度范围内提升稀疏度数值的功能,以在尽可能保证各个数据处理通道上有足够无效数据被裁剪掉的基础上,还能适当降低整
合处理的复杂度。
81.除此之外,本实施例与一些直接通过约束条件进行模型训练,以基于训练过程,控制模型网络的权重矩阵稀疏度的方案相比,通过完成训练后的有效数据整合手段,代替了模型训练过程中基于约束条件对权重矩阵稀疏度的控制,从而可以减少对模型训练过程的约束,降低了模型训练复杂度,同时可确保所训练模型的数据处理效果。
82.在一可选实施例中,参见图3,第一目标数据对象的形成过程,可实现为:
83.步骤301、基于模型训练过程,为每个数据处理通道生成对应的第一数据对象。
84.具体可以是基于神经网络模型的模型训练过程,为模型网络中网络层的每个输入通道生成对应的权重矩阵,作为输入通道的第一数据对象,例如,基于深度神经网络模型的训练过程,为模型中各个卷积层分别对应的输入通道,生成对应的权重矩阵。
85.步骤302、整合各个数据处理通道分别对应的第一数据对象中的有效数据,得到所述至少一个第一目标数据对象。
86.之后,对各个数据处理通道分别对应的第一数据对象中的有效数据进行整合,裁剪掉其中的至少部分无效数据,得到对应的至少一个第一目标数据对象。
87.具体的,可确定各个数据处理通道分别对应的第一数据对象中的无效数据与有效数据,将部分数量第一数据对象包含的有效数据,搬移至所述部分数量第一数据对象以外的第一数据对象中无效数据所处位置,实现对各个数据处理通道分别对应的第一数据对象中有效数据的整合;所述至少一个第一目标数据对象包括完成搬移后所得的至少包含各个有效数据的第一数据对象。
88.进一步,搬移处理时,在一实施方式中,可首先将所述部分数量第一数据对象以外的第一数据对象中的无效数据清除,以将该无效数据在相应第一数据对象中所占用位置空闲出来,在此基础上,将所述部分数量第一数据对象包含的有效数据,搬移至所述部分数量第一数据对象以外的第一数据对象中无效数据所对应位置。可选的,在清除相应无效数据使无效数据所占用位置空闲后,还可以先将已清除无效数据的第一数据对象中的有效数据重排,使其各个有效数据在该第一数据对象中依次相邻排布,余留出各个依次相连的空闲位置,以便于向其中进行有效数据的搬移。
89.但不限于此,也可以在未执行无效数据清除情形下,直接将所述部分数量第一数据对象包含的有效数据,搬移至所述部分数量第一数据对象以外的第一数据对象中无效数据所处位置,并覆盖所搬移至的位置上的原有无效数据。
90.上述基于搬移处理的有效数据整合,可以作为模型训练阶段的一附加处理环节,直接在基于模型训练过程得到各个数据处理通道的第一数据对象之后执行,如在通过模型训练得到模型卷积层各个输入通道的权重矩阵后实时执行,使得最终完成训练后所得的神经网络模型,在其网络层提供的是,整合得到的数量少于输入通道数量的所述至少一个第一目标数据对象(目标权重矩阵),而非数量等于输入通道数量的各个第一数据对象(基于模型训练所得的各输入通道的原始权重矩阵),同时记录每个第一目标数据对象中第一目标数据对应的位置信息。
91.或者,可选的,也可以将上述基于搬移处理的有效数据整合,作为模型使用阶段的预处理,在使用模型进行数据处理之前,首先对模型网络层各输入通道对应的第一数据对象,执行基于搬移处理的有效数据整合,得到网络层对应的所述至少一个第一目标数据对
象,同时记录每个第一目标数据对象中第一目标数据对应的位置信息。
92.以下提供一应用示例。
93.该示例中,经训练,神经网络模型卷积层包括三个输入通道ch1、ch2、ch3,相应对应三个稀疏的卷积核权重矩阵,如图4(a)中的3*3矩阵wm1、wm2、wm3,三个稀疏权重矩阵wm1、wm2、wm3中共有9个非0权重值,可以通过软件方式,将wm1中的0值剔除,非0值的权重移动后重新集中排布,以余留出位置相连的各个空闲位置,之后将wm2、wm3中的非0值权重搬移到wm1中的对应空闲位置,具体可参见图4(b)所示,其中的有线箭头代表对数据的移动/搬移,具体表示将箭尾位置上的数据搬移到箭头所指示位置,从而形成新的稠密非0值权重矩阵wm1’,由于是将通道ch2、ch3上权重矩阵wm2、wm3中的非0值权重搬移到通道ch1的权重矩阵wm1中形成稠密矩阵wm1’,因此所得的稠密权重矩阵wm1’位于通道ch1,其余两个通道ch2、ch3形成未包含非0值权重的空闲通道;容易理解,wm1’实质涵盖了ch1、ch2、ch3三个通道上的非0值权重,从而实际意义上wm1’与这三个通道相对应。
94.同时记录wm1’中每个非0权重在整合之前对应的位置信息,如p12在整合之前对应的位置信息可以为(ch2,3),用于指示在整合之前所对应的输入通道ch2及通道内位置3,以便于基于该位置信息,从ch2对应的特征图中选取位置3上的特征值与p12形成对应的数据对,或者该位置信息也可以记录为(wm2,3),基于该位置信息,可首先根据权重矩阵与输入通道的对应关系确定出输入通道ch2,进而从ch2对应的特征图中选取位置3上的特征值与p12形成对应的数据对。
95.对于各个数据处理通道对应的第一数据对象中有效数据的整合,可通过软件方式实现,不需要改变已有神经网络模型的模型结构,仅需要在模型使用之前对模型各网络层的权重矩阵进行有效数据整合并进行相关信息记录即可,易于实现,适用于所有的神经网络模型,且硬件对于整合过程无感知,无需改变硬件结构,部署容易、实施难度低。
96.在一可选实施例中,在形成第一目标数据对象之前,还可以首先确定各个数据处理通道分别对应的第一数据对象中的数据是否满足稀疏化条件,在满足情况下,才触发整合各个数据处理通道分别对应的第一数据对象中的有效数据得到至少一个第一目标数据对象的步骤。
97.所述稀疏化条件,可以但不限于设定为如下的任意一种:
98.条件一:各个数据处理通道对应的各个第一数据对象中无效数据的总占比达到预设比例。
99.所述的总占比,是指各个第一数据对象中无效数据的总数量与各个第一数据对象所包含数据的总数量之间的比例。
100.条件二:每个数据处理通道所对应第一数据对象中的无效数据,在所属第一数据对象中的占比均达到预设比例。
101.条件三:每个数据处理通道所对应第一数据对象中的无效数据,在所属第一数据对象中的占比均达到预设比例,且各个数据处理通道对应的各个第一数据对象中无效数据的总占比达到预设比例。
102.否则,若不满足稀疏化条件,则不执行对各个数据数据通道上有效数据的整合处理,保留各个数据处理通道的原始第一数据对象,如保留神经网络模型网络层中各个输入通道的原始卷积核权重。
103.本实施例通过执行上述基于稀疏化条件的通道数据检测,并在满足稀疏化条件情况下才执行对各个数据处理通道上有效数据的整合处理,可避免通道上数据稠密情况下的无意义整合,以避免无效处理。
104.在一可选实施例中,步骤203中对第一目标数据和对应的第二目标数据进行数据处理,可进一步实现为如下的任意一种:
105.11)为每一第一目标数据对象分配对应的可用硬件处理通道,利用对应的可用硬件处理通道对相应第一目标数据对象内的第一目标数据和对应的第二目标数据进行数据处理。
106.可用硬件处理通道,为当前未被占用的能调度用于对待处理数据对进行所需运算的硬件式计算通道,如基于运算器与寄存器构成的计算通道,每个通道可以包括所需数量的运算器和寄存器,还可以包括其他所需硬件。进一步,针对神经网络模型的数据处理,可用硬件处理通道可以是npu(神经网络处理器)对应的核心硬件单元tensor core。
107.该实现方式11)中,以第一目标数据对象为单位,将每一第一目标数据对象分配至一个可用硬件处理通道,利用可用硬件处理通道对所分配的第一目标数据对象内的第一目标数据及其对应的第二目标数据进行数据处理。
108.例如,利用tensor core,对所分配的目标权重矩阵中各个目标权重分别对应的“目标权重-特征值”数据对进行乘累加运算,即首先分别将每个数据对中的目标权重和特征值相乘,之后,将每个数据对对应的相乘结果进行累加。
109.12)按预设均衡策略,将各个第一目标数据和对应的第二目标数据所形成的待处理数据对按数量均衡分配至不同的可用硬件处理通道,利用对应的可用硬件处理通道对分配的待处理数据对进行数据处理。
110.该实现方式12)中,预先设置能用于将各个待处理数据对,按数量均衡分配至不同可用硬件处理通道的均衡策略。
111.可选的,该均衡策略可以设置为:不同可用硬件处理通道上所分配的待处理数据对的数量差值绝对值小于设定数值。
112.相应可基于该均衡策略,根据各个第一目标数据和对应的第二目标数据所形成的待处理数据对数量,及当前可用硬件处理通道的数量,将各个第一目标数据和对应的第二目标数据所形成的待处理数据对,向不同的可用硬件处理通道进行分配,使各个可用硬件处理通道上所分配的待处理数据对的数量相对均衡,数量差值绝对值小于设定数值,不同可用硬件处理通道对分配的数据并行处理。
113.如图5的示例中,整合后所得的非0值稠密权重矩阵(即目标权重矩阵)共包括9个非0值权重,针对其中每个非0值权重,npu根据其位置信息从各个输入通道对应的特征图中读取对应的用于与其形成待处理对数据的特征值,得到9个特征值,与9个非0值权重按序一一对应,相应形成9个待处理数据对,假设当前共有两个可用硬件通道:可用硬件通道一、可用硬件通道二,如具体为两个可用tensor core,则基于均衡策略,将9个待处理数据对分成2组,第一组包括前5个非0值权重对应的待处理数据对,第二组包括后4个非0值权重对应的待处理数据对,并将两组待处理数据对一对一分配到两个不同的可用硬件通道,如图5所示,之后,可在累加器将各个通道的处理结果进行累加,得到输出特征图(图5中的ofm)。
114.在将9个有效权重及其对应的特征值均衡分配到两个通道后,两个通道的有效数
据量分别为5和4,针对该情形,可以告知硬件通道如tensor core,当前网络的kernel大小为5x1。这样,配置硬件每个通道的权重个数为5,两个通道并行计算,总计通过5个cycle后,即可计算出最终结果。而原始网络需要经过两轮计算,第一轮计算采用2个通道,第二轮计算采用一个通道(原始未压缩的3个3*3矩阵,共27个权重,第一轮采用两个通道并行处理两个权重矩阵及对应的特征图,需要9个cycle,第二轮采用一个通道,处理剩余的一个权重矩阵及对应的特征图,需要9个cycle),总计需要9x2=18个cycle。所以经过硬件通道数据的均衡分配后,计算时间从原始的18个时间单位减小至5。
115.可选的,在将各个数据处理通道对应的第一数据对象进行有效数据整合得到至少一个第一目标数据对象后,相对于第一目标数据对象的数量,所形成的多余空闲数据处理通道可裁剪掉,后续在读取第二数据对象的数据时,根据第一目标数据对象中第一目标数据的位置信息,索引到各个第二数据对象中与之对应的第二目标数据,并将第一目标数据与相应第二目标数据形成有效数据对送给可用硬件通道进行运算处理,可用硬件通道对有效数据整合及通道裁剪无感知,具体将获得的对应于同一第一目标数据对象的有效数据对作为一个数据处理通道上的数据对执行对应运算。
116.例如,图4(a)-图4(b)的示例中,完成整合后权重矩阵wm1’位于输入通道ch1,形成只有一个通道ch1的稠密网络,相应产生两个多余的无效通道ch2、ch3,可将ch2、ch3裁剪掉,将网络信息送给可用硬件通道时,告知硬件,此模型的网络是只有一个通道的稠密权重网络,同时将稠密权重矩阵wm1’中各权重值在原始网络中的位置通知npu。npu在读取特征图数据时,根据权重位置索引,只需读取与权重位置匹配的特征值,以形成有效数据对,并将wm1’及与其匹配的特征值送给tensor core进行运算,如进行卷积计算,tensor core对有效数据整合及通道裁剪不感知,将网络当做普通的一个通道的稠密网络进行处理。同时,计算后的输出数据,根据下一层网络的权重位置索引,只用存储有效数据,总的计算时间,从原始的27个时间单位减小为9个时间单位,具体可结合参见图6(a)-图6(b)所示。
117.其中,对空闲数据处理通道的裁剪,是指从软件层面的裁剪,而非从模型的网络结构中实际裁剪掉相应的空闲数据处理通道。即,软件针对待分配至可用硬件处理通道的第一目标数据对象,仅为其记录第一目标数据对象所在的通道的相关信息,如上述wm1’所在的ch1,不再记录相对于第一目标数据对象来说空闲的通道,如上述的ch2、ch3。
118.对于整合后形成的空闲数据处理通道,也可以不裁剪(软件层面的裁剪),不作限制,只要使可用硬件通道感知的模型网络层通道数为第一目标数据对象的数量即可。
119.通过将各个数据处理通道对应的第一数据对象中的有效数据整合成至少一个第一目标数据对象,使得第一目标数据对象的数量小于数据处理通道的数量,实现了对各个数据处理通道对应的第一数据对象中至少部分无效数据的裁剪、压缩,相应可使在针对各个数据处理通道的数据处理中,跳过对至少部分无效数据的传输、存储、运算,从而提升了数据计算性能,降低了数据存储与带宽需求量。同时,对于所作的有效数据整合等处理硬件不可知,也无需对硬件结构作任何调整。
120.在一可选实施例中,本技术的处理方法包括对预设的多个功能层所对应的第一目标数据和第二目标数据的数据处理;每个功能层对应多个数据处理通道,且每个功能层对应待处理的至少一个第一目标数据对象及在所对应各个数据处理通道上的第二数据对象,各个功能层之间依次串接。
121.以对神经网络模型的数据处理为例,多个功能层可以是模型网络的多个卷积层,每个卷积层对应多个输入通道,且对应待处理的至少一个目标权重矩阵(经有效权重整合后得到的至少包含有效权重的稠密矩阵)及在所对应各个输入通道上的特征图。第一目标数据和第二目标数据,分别是整合后得到的目标权重矩阵中的目标权重及特征图中与目标权重位置匹配以用于形成有效数据对的特征值。
122.在此基础上,参见图7,整合各个数据处理通道分别对应的第一数据对象中的有效数据,以形成至少一个第一目标数据对象,可进一步实现为:
123.步骤701、确定当前功能层在各个数据处理通道上分别对应的第一数据对象中的无效数据,与有效数据中对下游功能层的数据处理无价值的非价值数据。
124.具体的,若多个功能层中第一功能层所对应的各个第一数据对象中存在第一数据对象包括无效数据,可从该第一功能层的上游功能层对应的各个第一数据对象中确定对应的数据处理结果会被所述无效数据无效掉的待处理数据,作为非价值数据。
125.值得说明,上游功能层对应的各个第一数据对象中的某数据会被其下游功能层的无效数据无效掉,是指该数据在对下游功能层的数据运算方面不产生任何贡献,其所参与的所有运算均被下游功能层的相应无效数据无效掉。
126.参见图8的示例,图中的每一列节点对应神经网络模型的一个卷积层,表示该卷积层的输出,左右相邻的两列节点分别对应的卷积层,形成上下游关系,上一卷积层的输出为下一卷积层的输入,图中的线条表示权重,其中实线线条表示非0权重,未带圆圈标记的虚线线条表示0值权重,若网络中的某层存在稀疏化,即某卷积层存在0值权重,则可继续向其上一层追溯,确定上一层中会被该层的0值权重无效掉的权重,如图8中,层l1包括多个0值权重(未带圆圈标记的虚线线条),层l1所对应的上游层l2中的8个非0权重(l2中8个带圆圈标记的虚线线条),在l1中对应的权重全部为0,其所参与的所有运算均会被层l1中的相应0值权重无效掉,从而识别出l2中的该8个非0权重(l2中8个带圆圈标记的虚线线条)为非价值数据,而l2中该8个带圆圈标记的虚线线条以外的权重,由于在l1中均对应有相应的非0值权重,其所参与的至少部分运算不会被l1中的0值权重无效掉,从而不将其识别为非价值数据。
127.步骤702、将当前功能层对应的第一数据对象中部分数量第一数据对象包含的目标有效数据,搬移至当前功能层中所述部分数量第一数据对象以外的第一数据对象中无效数据和非价值数据所处位置。
128.其中,所述当前功能层对应的所述至少一个第一目标数据对象包括对所述当前功能层完成搬移后所得的至少包含各个有效数据的第一数据对象;所述第一数据对象包含的目标有效数据为所述第一数据对象中无效数据和非价值数据以外的数据。
129.之后,在针对各数据处理通道的有效数据整合中,将无效数据和非价值数据以外的有效数据(即目标有效数据),作为真正意义上的有效数据进行整合,以尽可能将其中的无效数据和非价值数据裁剪掉,所采用的整合方式可参见上文的相关说明,不再详述,与上文的整合过程相比,区别仅在于将非价值数据从有效数据中排除,避免将非价值数据作为有效数据参与整合,进一步精简了各功能层的有效数据对,相应可进一步提升对各功能层的数据计算性能。
130.对应于上述的数据处理方法,本技术实施例还提供一种数据处理装置,参见图9示
出的组成结构,数据处理装置至少包括:
131.第一获取单元901,用于获取包含第一目标数据的至少一个第一目标数据对象,各个第一目标数据对象中的第一目标数据至少包括各个数据处理通道对应的所有有效数据;每个第一目标数据对应相应位置信息,用于指示第一目标数据对应的第二目标数据的位置;所述第一目标数据对象的数量小于所述数据处理通道的数量;
132.第二获取单元902,用于根据所述第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据;
133.数据处理单元903,用于对所述第一目标数据和对应的第二目标数据进行数据处理。
134.在一实施方式中,每个第一目标数据对象的稀疏度小于设定阈值;所述稀疏度用于表征所述第一目标数据对象中无效数据的占比。
135.在一实施方式中,所述装置还包括生成单元,用于形成所述第一目标数据对象,所述生成单元在形成所述第一目标数据对象时,具体用于:
136.基于模型训练过程,为每个数据处理通道生成对应的第一数据对象;
137.整合各个数据处理通道分别对应的第一数据对象中的有效数据,得到所述至少一个第一目标数据对象。
138.在一实施方式中,所述生成单元在整合各个数据处理通道分别对应的第一数据对象中的有效数据时,具体用于:
139.确定各个第一数据对象中的无效数据与有效数据;
140.将部分数量第一数据对象包含的有效数据,搬移至所述部分数量第一数据对象以外的第一数据对象中无效数据所处位置;所述至少一个第一目标数据对象包括完成搬移后所得的至少包含各个有效数据的第一数据对象。
141.在一实施方式中,第二获取单元902,具体用于:
142.对于所述第一目标数据对象中的每一第一目标数据,获取目标数据处理通道对应的第二数据对象中对应于目标位置的待处理数据,作为所述第一目标数据对应的第二目标数据;
143.其中,所述目标数据处理通道和所述目标位置,分别为所述第一目标数据的位置信息指示的数据处理通道及在所指示数据处理通道内的相应位置。
144.在一实施方式中,数据处理单元903,具体用于:
145.为每一第一目标数据对象分配对应的可用硬件处理通道,利用对应的可用硬件处理通道对相应第一目标数据对象内的第一目标数据和对应的第二目标数据进行数据处理;
146.或,按预设均衡策略,将各个第一目标数据和对应的第二目标数据所形成的待处理数据对按数量均衡分配至不同的可用硬件处理通道,利用对应的可用硬件处理通道对分配的待处理数据对进行数据处理。
147.在一实施方式中,包括对预设的多个功能层所对应的第一目标数据和第二目标数据的数据处理;每个功能层对应多个数据处理通道,且每个功能层对应待处理的至少一个第一目标数据对象及在所对应各个数据处理通道上的第二数据对象,各个功能层之间依次串接;
148.所述生成单元在整合各个数据处理通道分别对应的第一数据对象中的有效数据
时,具体用于:
149.确定当前功能层在各个数据处理通道上分别对应的第一数据对象中的无效数据,与有效数据中对下游功能层的数据处理无价值的非价值数据;
150.将所述当前功能层对应的第一数据对象中部分数量第一数据对象包含的目标有效数据,搬移至所述当前功能层中所述部分数量第一数据对象以外的第一数据对象中无效数据和非价值数据所处位置;
151.其中,所述当前功能层对应的所述至少一个第一目标数据对象包括对所述当前功能层完成搬移后所得的至少包含各个有效数据的第一数据对象;所述第一数据对象包含的目标有效数据为所述第一数据对象中无效数据和非价值数据以外的数据。
152.在一实施方式中,所述生成单元在确定非价值数据时,具体用于:
153.若所述多个功能层中第一功能层所对应的各个第一数据对象中存在第一数据对象包括无效数据,从所述第一功能层的上游功能层对应的各个第一数据对象中确定对应的数据处理结果会被所述无效数据无效掉的待处理数据,作为所述非价值数据。
154.在一实施方式中,所述生成单元还用于:
155.确定各个数据处理通道分别对应的第一数据对象中的数据是否满足稀疏化条件,在满足情况下,整合各个数据处理通道分别对应的第一数据对象中的有效数据,得到所述至少一个第一目标数据对象。
156.对于本技术实施例公开的数据处理装置而言,由于其与上文方法实施例公开的数据处理方法相对应,所以描述的比较简单,相关相似之处请参见上文方法实施例的说明即可,此处不再详述。
157.本技术实施例还公开一种电子设备,电子设备的组成结构,如图10所示,至少包括:
158.存储器10,用于存放计算机指令集;
159.计算机指令集可以通过计算机程序的形式实现。
160.处理器20,用于通过执行计算机指令集,实现如上文任一方法实施例公开的数据处理方法。
161.处理器20可以为中央处理器(central processing unit,cpu),特定应用集成电路(application-specific integrated circuit,asic),数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、神经网络处理器(npu)、深度学习处理器(dpu)或者其他可编程逻辑器件等。
162.电子设备具备显示装置和/或具备显示接口、能外接显示装置。
163.可选的,电子设备还包括摄像头组件,和/或连接有外置摄像头组件。
164.除此之外,电子设备还可以包括通信接口、通信总线等组成部分。存储器、处理器和通信接口通过通信总线完成相互间的通信。
165.通信接口用于电子设备与其他设备之间的通信。通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等,该通信总线可以分为地址总线、数据总线、控制总线等。
166.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重
点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
167.为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
168.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
169.最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
170.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。

技术特征:
1.一种数据处理方法,所述方法包括:获取包含第一目标数据的至少一个第一目标数据对象,各个第一目标数据对象中的第一目标数据至少包括各个数据处理通道对应的所有有效数据;每个第一目标数据对应相应位置信息,用于指示第一目标数据对应的第二目标数据的位置;所述第一目标数据对象的数量小于所述数据处理通道的数量;根据所述第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据;对所述第一目标数据和对应的第二目标数据进行数据处理。2.根据权利要求1所述的方法,每个第一目标数据对象的稀疏度小于设定阈值;所述稀疏度用于表征所述第一目标数据对象中无效数据的占比。3.根据权利要求1所述的方法,所述第一目标数据对象的形成方法包括:基于模型训练过程,为每个数据处理通道生成对应的第一数据对象;整合各个数据处理通道分别对应的第一数据对象中的有效数据,得到所述至少一个第一目标数据对象。4.根据权利要求3所述的方法,所述整合各个数据处理通道分别对应的第一数据对象中的有效数据,包括:确定各个第一数据对象中的无效数据与有效数据;将部分数量第一数据对象包含的有效数据,搬移至所述部分数量第一数据对象以外的第一数据对象中无效数据所处位置;所述至少一个第一目标数据对象包括完成搬移后所得的至少包含各个有效数据的第一数据对象。5.根据权利要求1所述的方法,所述根据所述第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据,包括:对于所述第一目标数据对象中的每一第一目标数据,获取目标数据处理通道对应的第二数据对象中对应于目标位置的待处理数据,作为所述第一目标数据对应的第二目标数据;其中,所述目标数据处理通道和所述目标位置,分别为所述第一目标数据的位置信息指示的数据处理通道及在所指示数据处理通道内的相应位置。6.根据权利要求1所述的方法,所述对所述第一目标数据和对应的第二目标数据进行数据处理,包括:为每一第一目标数据对象分配对应的可用硬件处理通道,利用对应的可用硬件处理通道对相应第一目标数据对象内的第一目标数据和对应的第二目标数据进行数据处理;或,按预设均衡策略,将各个第一目标数据和对应的第二目标数据所形成的待处理数据对按数量均衡分配至不同的可用硬件处理通道,利用对应的可用硬件处理通道对分配的待处理数据对进行数据处理。7.根据权利要求3所述的方法,包括对预设的多个功能层所对应的第一目标数据和第二目标数据的数据处理;每个功能层对应多个数据处理通道,且每个功能层对应待处理的至少一个第一目标数据对象及在所对应各个数据处理通道上的第二数据对象,各个功能层之间依次串接;
所述整合各个所述数据处理通道分别对应的第一数据对象中的有效数据包括:确定当前功能层在各个数据处理通道上分别对应的第一数据对象中的无效数据,与有效数据中对下游功能层的数据处理无价值的非价值数据;将所述当前功能层对应的第一数据对象中部分数量第一数据对象包含的目标有效数据,搬移至所述当前功能层中所述部分数量第一数据对象以外的第一数据对象中无效数据和非价值数据所处位置;其中,所述当前功能层对应的所述至少一个第一目标数据对象包括对所述当前功能层完成搬移后所得的至少包含各个有效数据的第一数据对象;所述第一数据对象包含的目标有效数据为所述第一数据对象中无效数据和非价值数据以外的数据。8.根据权利要求7所述的方法,所述非价值数据的确定过程包括:若所述多个功能层中第一功能层所对应的各个第一数据对象中存在第一数据对象包括无效数据,从所述第一功能层的上游功能层对应的各个第一数据对象中确定对应的数据处理结果会被所述无效数据无效掉的待处理数据,作为所述非价值数据。9.根据权利要求3所述的方法,所述第一目标数据对象的形成方法,还包括:确定各个数据处理通道分别对应的第一数据对象中的数据是否满足稀疏化条件,在满足情况下触发所述整合各个数据处理通道分别对应的第一数据对象中的有效数据,得到所述至少一个第一目标数据对象的步骤。10.一种数据处理装置,所述装置包括:第一获取单元,用于获取包含第一目标数据的至少一个第一目标数据对象,各个第一目标数据对象中的第一目标数据至少包括各个数据处理通道对应的所有有效数据;每个第一目标数据对应相应位置信息,用于指示第一目标数据对应的第二目标数据的位置;所述第一目标数据对象的数量小于所述数据处理通道的数量;第二获取单元,用于根据所述第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据;数据处理单元,用于对所述第一目标数据和对应的第二目标数据进行数据处理。

技术总结
本申请公开一种数据处理方法和装置,数据处理方法包括:获取包含第一目标数据的至少一个第一目标数据对象,各个第一目标数据对象中的第一目标数据至少包括各个数据处理通道对应的所有有效数据;每个第一目标数据对应相应位置信息,用于指示第一目标数据对应的第二目标数据的位置;所述第一目标数据对象的数量小于所述数据处理通道的数量;根据第一目标数据对应的位置信息,从各个数据处理通道分别对应的第二数据对象所包含的待处理数据中获取对应的第二目标数据;对第一目标数据和对应的第二目标数据进行数据处理。二目标数据进行数据处理。二目标数据进行数据处理。


技术研发人员:陈勇
受保护的技术使用者:鼎道智芯(上海)半导体有限公司
技术研发日:2023.04.28
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐