用于机器学习的处理数据的方法、设备和存储介质与流程
未命名
09-15
阅读:80
评论:0
1.本公开总体上涉及计算机技术领域,并且具体地,涉及一种用于机器学习的处理数据的方法、设备和存储介质。
背景技术:
2.在传统的机器学习的处理数据的技术方案中,为了利用特定格式的属性或特点来提升算子的性能,通常需要将数据从原始格式重排为特定格式,并需要将算子处理后的数据重排回原始格式,而数据的重排需要引入重排辅助算子来改变数据所对应的内存地址。
3.综上,传统的机器学习的处理数据的技术方案的不足之处在于:需要重排辅助算子,机器学习性能开销大。
技术实现要素:
4.针对上述问题,本公开提供了一种用于机器学习的处理数据的方法,至少能够在利用特定格式(其与数据的原始格式的类型不同)的属性或特点来提升算子的性能的同时,无需重排辅助算子,机器学习性能开销小。
5.根据本公开的第一方面,提供了一种用于机器学习的处理数据的方法,包括:针对待机器学习处理的第一数据,在不改变第一数据所对应的内存地址的情况下,将第一数据从第一格式映射为第二格式,其中第二格式的类型与第一格式的类型不同;以及经由位置不敏感的算子,基于第二格式,读取第一数据以进行处理,位置不敏感的算子与待机器学习处理的数据的形状不相关。
6.在一些实施例中,第一格式是内存地址按维度连续的格式,第二格式是内存地址按块连续的格式。
7.在一些实施例中,内存地址按维度连续的格式至少包括nchw和nhwc,内存地址按块连续的格式至少包括三维矩阵格式matrix3d、四维激活格式activation、卷积权重格式convweight、二维向量格式vectors和深度卷积权重格式dwcweight。
8.在一些实施例中,位置不敏感的算子包括以下至少一种:加法算子、逐点(pointwise)算子、线性整流函数(rectified linear unit,relu)算子。
9.在一些实施例中,第一数据的总数据量小于或者等于第二格式所对应的最大形状的总数据量,并且第一数据的任一维度的数据量与第二格式所对应的最大形状的任一维度的数据量不相关。
10.在一些实施例中,将第一数据从第一格式映射为第二格式包括:确认第一数据的总数据量是否小于第二格式所对应的最大形状的总数据量;以及响应于第一数据的总数据量小于第二格式所对应的最大形状的总数据量,将第一数据从第一格式映射为第二格式。
11.在一些实施例中,方法还包括:针对待机器学习处理的第二数据,在不改变第二数据所对应的内存地址的情况下,将第二数据从第三格式映射为第二格式,其中第二格式的类型与第三格式的类型不同;以及经由位置不敏感的算子,基于第二格式,读取第二数据以
进行处理。。
12.在一些实施例中,第二数据的总数据量与第一数据的总数据量不同,或者第三格式的类型与第一格式的类型不同。
13.在一些实施例中,第一格式是内存地址按维度连续的格式,第二格式是内存地址按块连续的格式,第三格式是与第二格式不同的内存地址按块连续的格式。
14.在一些实施例中,第一格式为经过补齐后的数据格式。
15.根据本公开的第二方面,还提供了一种计算设备,计算设备包括:至少一个处理器;以及至少一个存储器,至少一个存储器被耦合到至少一个处理器并且存储用于由至少一个处理器执行的指令,指令当由至少一个处理器执行时,使得计算设备执行本公开的第一方面的方法。
16.根据本公开的第三方面,还提供了一种计算机可读存储介质,其上存储有计算机程序代码,计算机程序代码在被运行时执行本公开的第一方面的方法。
17.提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
18.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
19.图1图示了根据本公开实施例的用于实施机器学习的处理数据的方法的机器学习设备的示意图。
20.图2图示了根据本公开实施例的用于机器学习的处理数据的方法的流程图。
21.图3a图示了根据本公开实施例的第一格式的第一数据的示意图。
22.图3b图示了从第一格式重排为第二格式的第一数据的示意图。
23.图3c图示了根据本公开实施例的从第一格式映射为第二格式的第一数据的示意图。
24.图4图示了根据本公开实施例的用于机器学习的处理数据的方法的流程图。
25.图5图示了用于实现本公开实施例的示例性电子设备的框图。
具体实施方式
26.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例,不能将它们理解为对本技术保护范围的限定。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
27.如前文所描述,在传统的机器学习的处理数据的技术方案中,为了利用特定格式(与数据的原始格式的类型不同)的属性或特点来提升算子的性能,需要重排辅助算子,机器学习性能开销大。
28.为了至少部分地解决上述问题以及其他潜在问题中的一个或多个,本公开提出了一种用于机器学习的处理数据的方法。在本公开的技术方案中,对于位置不敏感的算子,在不改变第一数据所对应的内存地址的情况下,将第一数据从第一格式映射为第二格式,并基于第二格式读取第一数据以进行处理,至少能够在利用第二格式的属性或特点来提升算子的性能的同时,无需重排辅助算子,机器学习性能开销小。
29.进一步地,在本公开的实施例中,第一格式是内存地址按维度连续的格式,第二格式是内存地址按块连续的格式,内存地址按维度连续的格式至少包括nchw和nhwc,内存地址按块连续的格式至少包括三维矩阵格式matrix3d、四维激活格式activation、卷积权重格式convweight、二维向量格式vectors和深度卷积权重格式dwcweight,至少能够利用内存地址按块连续的格式的高性能访存指令和带外数据(out of band,oob)特性来提升算子的性能。
30.进一步地,在本公开的实施例中,确认第一数据的总数据量是否小于第二格式所对应的最大形状的总数据量,以及响应于第一数据的总数据量小于第二格式所对应的最大形状的总数据量,将第一数据从第一格式映射为第二格式,至少能够提升数据处理的泛化性。
31.进一步地,在本公开的实施例中,第一数据的任一维度的数据量与第二格式所对应的最大形状的任一维度的数据量不相关,从而至少能够消除在传统的机器学习的处理数据的技术方案中重排数据时在数据的各个维度上的数据量的限制,适用于的数据的形状的范围更大。
32.更进一步地,在本公开的实施例中,针对待机器学习处理的第二数据,在不改变第二数据所对应的内存地址的情况下,将第二数据从第三格式映射为第二格式,其中第二格式的类型与第三格式的类型不同。第二数据的总数据量与第一数据的总数据量不同,至少能够泛化性地支持不同总数据量的数据;第三格式的类型与第一格式的类型不同,至少能够提升开发效率;第二格式为三维矩阵格式matrix3d,至少能够利用三维矩阵格式matrix3d所对应的最大形状的总数据量大的特点,从而进一步扩大适用于的数据的形状的范围。
33.下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,可省略已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同的参考标号表示。
34.图1图示了根据本公开实施例的用于实施机器学习的处理数据的方法的机器学习设备100的示意图。如图1所示,机器学习设备100包括处理器120和存储器140。应当理解的是,机器学习设备100还可以包括未示出的部件,本公开的范围在此方面不受限制。
35.在图1所示的示例中,机器学习设备100用于进行机器学习,其例如包括但不限于计算机、手机、服务器。
36.在图1所示的示例中,处理器120用于进行数据处理,其例如包括但不限于中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)和片上系统(system on chip,soc)。
37.在图1所示的示例中,存储器140用于存储机器学习处理的数据,其例如包括但不限于便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读
存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)。
38.例如,机器学习设备100可以针对待机器学习处理的第一数据,在不改变第一数据所对应的内存地址的情况下,将第一数据从第一格式映射为第二格式,其中第二格式的类型与第一格式的类型不同;以及经由位置不敏感的算子,基于第二格式,读取第一数据以进行处理,所述位置不敏感的算子与待机器学习处理的数据的形状不相关。
39.例如,机器学习设备100可以确认第一数据的总数据量是否小于第二格式所对应的最大形状的总数据量;以及响应于第一数据的总数据量小于第二格式所对应的最大形状的总数据量,将第一数据从第一格式映射为第二格式。例如,第一格式为经过补齐后的数据格式,其指代已对第一数据进行补齐,使得补齐后的数据的总数据量等于第二格式所对应的最大形状的总数据量。
40.又例如,机器学习设备100还可以针对待机器学习处理的第二数据,在不改变第二数据所对应的内存地址的情况下,将第二数据从第三格式映射为第二格式,其中第二格式的类型与第三格式的类型不同;以及经由位置不敏感的算子,基于第二格式,读取第二数据以进行处理。
41.图2图示了根据本公开实施例的用于机器学习的处理数据的方法200的流程图。方法200可以由图1中所示的机器学习设备100执行,也可以由图5所示的电子设备500执行。应当理解的是,方法200还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
42.在步骤202,机器学习设备100针对待机器学习处理的第一数据,在不改变第一数据所对应的内存地址的情况下,将第一数据从第一格式映射为第二格式,其中第二格式的类型与第一格式的类型不同。
43.关于第一数据,其为待机器学习进行处理的数据,其例如存储在机器学习设备100的存储器140的一段内存地址中。
44.关于第一数据所对应的内存地址,其指代第一数据所对应的内存地址范围,以及第一数据中的元素与内存地址范围中的内存地址的对应关系。
45.关于第一格式和第二格式,其中格式指代机器学习进行处理的数据在内存地址中的排布方式。在机器学习中,多维数据通过多维数组存储。例如,卷积神经网络的特征图可以经由四维数组存储,四个维度分别为批量大小(batch,n)、特征图高度(height,h)、特征图宽度(width,w)以及特征图通道(channels,c),但是由于数据只能线性存储,所以在内存地址中有不同的排布方式。例如,[batch,channels,height,width]的排布方式可以称为nchw,[batch,height,width,channels]的排布方式可以称为nhwc。需要说明的是,在本公开的实施例中,“第一”和“第二”仅旨在用于对后面描述的内容进行区分,而不是对后面描述的内容进行限制。
[0046]
关于格式的类型,其例如包括但不限于nchw、nhwc、三维矩阵格式matrix3d、四维激活格式activation、卷积权重格式convweight、二维向量格式vectors和深度卷积权重格式dwcweight等,其中nchw和nhwc为内存地址按维度连续的格式,三维矩阵格式matrix3d、四维激活格式activation、卷积权重格式convweight、二维向量格式vectors和深度卷积权重格式dwcweight为内存地址按块连续的格式。需要说明的是,内存地址按维度连续和内存
地址按块连续例如可以参考后续结合图3a-3c所描述的实施例,在此不再赘述。
[0047]
关于在不改变第一数据所对应的内存地址的情况下,将第一数据从第一格式映射为第二格式,其中对第一数据的映射仅改变了第一数据的格式而不改变第一数据所对应的内存地址,这与传统的重排辅助算子既改变第一数据的格式又改变第一数据所对应的内存地址不同,例如可以参考后续结合图3a-3c所描述的实施例,在此不再赘述。
[0048]
在步骤204,机器学习设备100经由位置不敏感的算子,基于第二格式,读取第一数据以进行处理,位置不敏感的算子与待机器学习处理的数据的形状不相关。
[0049]
关于位置不敏感的算子,其与数据的形状不相关,是仅知晓数据的总数据量即可进行计算的算子。例如,位置不敏感的算子与数据所对应的内存地址不相关。例如,位置不敏感的算子包括但不限于:加法算子、逐点算子、线性整流函数算子。例如,经由加法算子对具有批量大小、特征图高度、特征图宽度以及特征图通道的四维数据进行处理,加法算子无需知晓所进行处理的四维数据的元素所对应的具体维度(例如,是批量大小,或者是特征图高度,或者是特征图宽度,还是特征图通道),进而与数据所对应的内存地址不相关,仅需要知晓所进行处理的四维数据的总数据量,因此在这种情况下,将四维数据从nchw映射为nhwc但不改变四维数据所对应的内存地址,不影响加法算子的处理结果。
[0050]
关于经由位置不敏感的算子,基于第二格式,读取第一数据以进行处理,其中位置不敏感的算子读取第一数据以进行处理是基于第二格式的,从而可以利用第二格式的属性或特点来提升算子的性能。例如可以参考后续结合图3a-3c所描述的实施例,在此不再赘述。需要说明的是,第一数据的读取过程只要是基于第二格式的即可,可以取决于实际情况,本公开的实施例对此不作限制。还需要说明的是,对第一数据进行处理的过程与位置不敏感的算子的类型有关,可以取决于实际情况,本公开的实施例对此不作限制。例如,在位置不敏感的算子是加法算子的情况下,对第一数据进行处理的过程为将第一数据中的各个元素相加的过程。
[0051]
在本公开的实施例中,对于位置不敏感的算子,在不改变第一数据所对应的内存地址的情况下,将第一数据从第一格式映射为第二格式,并基于第二格式读取第一数据以进行处理,至少能够在利用第二格式的属性或特点来提升算子的性能的同时,无需重排辅助算子,机器学习性能开销小。
[0052]
例如,在本公开实施例的一些示例中,第一格式是内存地址按维度连续的格式,第二格式是内存地址按块连续的格式,内存地址按维度连续的格式至少包括nchw和nhwc,内存地址按块连续的格式至少包括三维矩阵格式matrix3d、四维激活格式activation、卷积权重格式convweight、二维向量格式vectors和深度卷积权重格式dwcweight。在这些示例中,至少能够利用内存地址按块连续的格式的高性能访存指令和带外数据特性来提升算子的性能。需要说明的是,在本公开的实施例中,第一格式是内存地址按维度连续的格式,第二格式是内存地址按块连续的格式仅是示例性的,而不是对本公开的限制。例如,第一格式和第二格式可以均是内存地址按维度连续的格式。例如,第一格式和第二格式可以均是内存地址按块连续的格式。又例如,第一格式可以是内存地址按块连续的格式,第二格式可以是内存地址按维度连续的格式。
[0053]
例如,在本公实施例的一些示例中,将第一数据从第一格式映射为第二格式包括:确认第一数据的总数据量是否小于第二格式所对应的最大形状的总数据量;以及响应于第
一数据的总数据量小于第二格式所对应的最大形状的总数据量,将第一数据从第一格式映射为第二格式。例如,第一格式为经过补齐后的数据格式,其指代已对第一数据进行补齐,使得补齐后的数据的总数据量等于第二格式所对应的最大形状的总数据量。需要说明的是,在本公开的实施例中,数据的总数据量指代数据的所有元素的总数量,例如数据的形状为(5,20,20,3),则数据的总数据量为5*20*20*3=6000;一种格式所对应的最大形状的总数据量指代在该种格式所对应的最大形状的情况下数据的总数据量,例如,三维矩阵格式matrix3d所对应的最大形状为(1024,8192,8192),则三维矩阵格式matrix3d所对应的最大形状所对应的总数据量为1024*8192*8192。在这些示例中,至少能够提升数据处理的泛化性。
[0054]
另外,需要注意的是,在本公开的实施例中,将第一数据从第一格式映射为第二格式,只需要第一数据的总数据量小于或者等于第二格式所对应的最大形状的总数据量即可,第一数据的任一维度的数据量与第二格式所对应的最大形状的任一维度的数据量不相关,至少能够消除在传统的机器学习的处理数据的技术方案中重排数据时在数据的各个维度上的数据量的限制,适用于的数据的形状的范围更大。需要说明的是,在本公开的实施例中,数据的一个维度的数据量指代数据的该维度的所有元素的总数量,例如形状为(5,20,20,3)的数据在各个维度的数据量分别是5、20、20和3。
[0055]
例如,在本公开的实施例中,在第一数据的总数据量小于或者等于第二格式所对应的最大形状的总数据量的情况下,第一数据的第一维度的数据量可以大于第二格式所对应的最大形状的与第一维度相同的维度的数据量;然而,在传统的机器学习的处理数据的技术方案中,第一数据的一个维度的数据量必须小于或者等于第二格式所对应的最大形状的相应维度的数据量。例如,在本公开的实施例中,形状为(5,20,20,3)的第一格式的数据可以映射为最大形状为(5,10,20,7)的第二格式的数据,因为第一格式的数据的总数据量5*20*20*3=6000小于第二格式所对应的最大形状的总数据量5*10*20*7=7000;然而,在传统的机器学习的处理数据的技术方案中,形状为(5,20,20,3)的第一格式的数据无法重排为最大形状为(5,10,20,7)的第二格式的数据,因为第一格式的数据的第二维度的数据量20大于第二格式所对应的最大形状的第二维度的数据量为10。
[0056]
图3a图示了根据本公开实施例的第一格式的第一数据的示意图;图3b图示了从第一格式重排为第二格式的第一数据的示意图;图3c图示了根据本公开实施例的从第一格式映射为第二格式的第一数据的示意图。
[0057]
在图3a-3c所示的实施例中,第一数据为0,1,2,3,
……
63,在第一格式下的第一数据所对应的内存地址为0,1,2,3,
……
63。在图3a中,第一格式是内存地址按维度连续的nchw格式,在nchw格式下,先读取w维度方向的数据,再h维度,之后c维度,最后n维度(图3仅示意性地示出了w维度和h维度)。在图3b和3c中,第二格式是内存地址按块连续的三维矩阵格式matrix3d,在三维矩阵格式matrix3d下,以2*2的块为基本单位来读取第一数据。
[0058]
在传统的机器学习的处理数据的技术方案中,重排辅助算子将第一数据从第一格式重排为第二格式时会改变数据所对应的内存地址,经由重排辅助算子重排后的第一数据所对应的内存地址为0,1,8,9,2,3,10,11,
……
63,从第一格式重排为第二格式的第一数据如图3b所示。然而,在本公开的实施例中,将第一数据从第一格式映射为第二格式,不改变第一数据所对应的内存地址,映射后的第一数据所对应的内存地址仍为0,1,2,3,
……
63,
从第一格式映射为第二格式的第一数据如图3c所示。例如,对于特定的坐标(2,0),经由重排辅助算子重排后的第一数据返回的是数字“2”(如图3b中的具有阴影的数字),数据正确;而映射后的第一数据返回的是数字“4”(如图3c中的具有阴影的数字),数据错误。但是,由于本公开的实施例中采用的是位置不敏感的算子,不涉及坐标相关计算,只需要确保所有数据可知即可,所以上述数据错误不影响最终算子的处理结果。
[0059]
图4图示了根据本公开实施例的用于机器学习的处理数据的方法400的流程图。方法400可以由图1中所示的机器学习设备100执行,也可以由图5所示的电子设备500执行。应当理解的是,方法400还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
[0060]
在步骤402,机器学习设备100针对待机器学习处理的第二数据,在不改变第二数据所对应的内存地址的情况下,将第二数据从第三格式映射为第二格式,其中第二格式的类型与第三格式的类型不同。
[0061]
例如,第二数据的总数据量与第一数据的总数据量不同。在这种情况下,不同总数据量的数据均映射为第二格式,至少能够泛化性地支持不同总数据量的数据。
[0062]
例如,第三格式的类型与第一格式的类型不同。在这何种情况下,不同格式的数据均映射为第二格式,至少能够提升开发效率。例如,第一格式是内存地址按维度连续的格式,第二格式是内存地址按块连续的格式,第三格式是与第二格式不同的内存地址按块连续的格式。例如,第一格式为nchw和nhwc中的一种,第二格式为三维矩阵格式matrix3d,第三格式为四维激活格式activation、卷积权重格式convweight、二维向量格式vectors和深度卷积权重格式dwcweight中的一种,在这种情况下将第一格式和第三格式均映射为三维矩阵格式matrix3d,至少能够利用三维矩阵格式matrix3d所对应的最大形状的总数据量大的特点,从而进一步扩大适用于的数据的形状的范围。
[0063]
在步骤404,机器学习设备100经由位置不敏感的算子,基于第二格式,读取第二数据以进行处理。
[0064]
需要说明的是,方法400的步骤402和404所涉及的相关特征以及具体过程分别与方法200中的相关特征以及具体过程类似,在此不再赘述。
[0065]
图5图示了用于实现本公开实施例的示例性电子设备500的框图。例如,如图1所示的机器学习设备100可以由电子设备500来实施。如图所示,电子设备500包括中央处理单元(cpu)502,其可以根据存储在只读存储器(rom)504中的计算机程序指令或者从存储单元516加载到随机存取存储器(ram)506中的计算机程序指令,来执行各种适当的动作和处理。在随机存取存储器506中,还可存储电子设备500操作所需的各种程序和数据。中央处理单元502、只读存储器504以及随机存取存储器506通过总线508彼此相连。输入/输出(i/o)接口510也连接至总线508。
[0066]
电子设备500中的多个部件连接至输入/输出接口510,包括:输入单元512,例如键盘、鼠标、麦克风等;输出单元514,例如各种类型的显示器、扬声器等;存储单元516,例如磁盘、光盘等;以及通信单元518,例如网卡、调制解调器、无线通信收发机等。通信单元518允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0067]
上文所描述的各个过程和处理,例如方法200和400,可由中央处理单元502执行。例如,在一些实施例中,方法200和400可被实现为计算机软件程序,其被有形地包含于机器
可读介质,例如存储单元516。在一些实施例中,计算机程序的部分或者全部可以经由只读存储器504和/或通信单元518而被载入和/或安装到电子设备500上。当计算机程序被加载到随机存取存储器506并由中央处理单元502执行时,可以执行上文描述的方法200和400的一个或多个动作。
[0068]
本公开涉及方法、装置、系统、电子设备、计算机可读存储介质和/或计算机程序产品。计算机程序产品可以包括用于执行本公开的各个方面的计算机可读程序指令。
[0069]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0070]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘计算设备。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0071]
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
[0072]
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0073]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定
的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0074]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0075]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0076]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
技术特征:
1.一种用于机器学习的处理数据的方法,其特征在于,包括:针对待机器学习处理的第一数据,在不改变第一数据所对应的内存地址的情况下,将第一数据从第一格式映射为第二格式,其中第二格式的类型与第一格式的类型不同;以及经由位置不敏感的算子,基于第二格式,读取第一数据以进行处理,所述位置不敏感的算子与待机器学习处理的数据的形状不相关。2.根据权利要求1所述的方法,其特征在于,第一格式是内存地址按维度连续的格式,第二格式是内存地址按块连续的格式。3.根据权利要求2所述的方法,其特征在于,内存地址按维度连续的格式至少包括nchw和nhwc,内存地址按块连续的格式至少包括三维矩阵格式matrix3d、四维激活格式activation、卷积权重格式convweight、二维向量格式vectors和深度卷积权重格式dwcweight。4.根据权利要求1所述的方法,其特征在于,位置不敏感的算子包括以下至少一种:加法算子、逐点算子、线性整流函数算子。5.根据权利要求1所述的方法,其特征在于,第一数据的总数据量小于或者等于第二格式所对应的最大形状的总数据量,并且第一数据的任一维度的数据量与第二格式所对应的最大形状的任一维度的数据量不相关。6.根据权利要求1所述的方法,其特征在于,将第一数据从第一格式映射为第二格式包括:确认第一数据的总数据量是否小于第二格式所对应的最大形状的总数据量;以及响应于第一数据的总数据量小于第二格式所对应的最大形状的总数据量,将第一数据从第一格式映射为第二格式。7.根据权利要求1所述的方法,其特征在于,还包括:针对待机器学习处理的第二数据,在不改变第二数据所对应的内存地址的情况下,将第二数据从第三格式映射为第二格式,其中第二格式的类型与第三格式的类型不同;以及经由位置不敏感的算子,基于第二格式,读取第二数据以进行处理。8.根据权利要求7所述的方法,其特征在于,第二数据的总数据量与第一数据的总数据量不同,或者第三格式的类型与第一格式的类型不同。9.根据权利要求7所述的方法,其特征在于,第一格式是内存地址按维度连续的格式,第二格式是内存地址按块连续的格式,第三格式是与第二格式不同的内存地址按块连续的格式。10.根据权利要求1所述的方法,其特征在于,第一格式为经过补齐后的数据格式。11.一种计算设备,包括:至少一个处理器;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理器并且存储用于由所述至少一个处理器执行的指令,所述指令当由所述至少一个处理器执行时,使得所述计算设备执行根据权利要求1至10中任一项所述的方法。12.一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行根据权利要求1至10中任一项所述的方法。
技术总结
本公开涉及一种用于机器学习的处理数据的方法、设备和存储介质。方法包括:针对待机器学习处理的第一数据,在不改变第一数据所对应的内存地址的情况下,将第一数据从第一格式映射为第二格式,其中第二格式的类型与第一格式的类型不同;以及经由位置不敏感的算子,基于第二格式,读取第一数据以进行处理,所述位置不敏感的算子与待机器学习处理的数据的形状不相关。本公开的技术方案至少能够在利用特定格式的属性或特点来提升算子的性能的同时,无需重排辅助算子,机器学习性能开销小。机器学习性能开销小。机器学习性能开销小。
技术研发人员:请求不公布姓名
受保护的技术使用者:上海壁仞智能科技有限公司
技术研发日:2023.06.09
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
