当前位置: 首页 > 专利查询>OPPO专利>正文

数据处理方法技术

技术编号:39844840 阅读:7 留言:0更新日期:2023-12-29 16:42
本申请实施例提供一种数据处理方法

【技术实现步骤摘要】
数据处理方法、装置、电子设备及存储介质


[0001]本申请实施例涉及数据处理
,特别地,涉及一种数据处理方法、装置、电子设备及存储介质。

技术介绍

[0002]卷积神经网络广泛应用于图像分类,物体检测等计算机视觉处理任务中。由于移动终端存在功耗和面积限制且存在高性能需求,通常采用专用卷积神经网络处理器芯片对移动终端上的神经网络算法进行运算。
[0003]在卷积神经网络运行过程中,特征图的尺寸有时比较大,计算资源和存储资源有限的芯片无法一次性对特征图进行处理。目前处理器芯片将特征图切分为大小等同且有重叠区域的多个分块,按照一定的顺序,每个时钟周期处理一个分块,从而逐步对所有分块进行运算。

技术实现思路

[0004]本申请实施例提供一种数据处理方法、装置、电子设备及存储介质,以改善上述问题。
[0005]第一方面,本申请实施例提供一种数据处理方法。该方法包括:获取当前特征图中的当前待处理分块和相邻分块的输入数据,所述当前待处理分块的输入数据为对所述当前待处理分块进行卷积运算时输入卷积神经网络的数据,所述相邻分块的输入数据为对所述相邻分块进行卷积运算时输入卷积神经网络的数据;根据所述当前待处理分块的输入数据与所述相邻分块的输入数据的重叠情况,将所述当前待处理分块的输入数据划分为多种预设类型的数据;分别将所述多种预设类型的数据存储到多个预设缓冲区中,其中,不同预设类型的数据对应不同的预设缓冲区。
[0006]第二方面,本申请实施例提供一种数据处理装置。该装置包括:数据获取模块,用于获取当前特征图中的当前待处理分块和相邻分块的输入数据,所述当前待处理分块的输入数据为对所述当前待处理分块进行卷积运算时输入卷积神经网络的数据,所述相邻分块的输入数据为对所述相邻分块进行卷积运算时输入卷积神经网络的数据;数据划分模块,用于根据所述当前待处理分块的输入数据与所述相邻分块的输入数据的重叠情况,将所述当前待处理分块的输入数据划分为多种预设类型的数据;数据存储模块,用于分别将所述多种预设类型的数据存储到多个预设缓冲区中,其中,不同预设类型的数据对应不同的预设缓冲区。
[0007]第三方面,本申请实施例提供一种电子设备。该电子设备包括存储器、一个或多个处理器以及一个或多个应用程序。其中,一个或多个应用程序被存储在存储器中,并被配置为当被一个或多个处理器调用时执行本申请实施例提供的数据处理方法。
[0008]第四方面,本申请实施例提供一种计算机可读取存储介质。该计算机可读取存储介质中存储有程序代码,该程序代码被配置为当被处理器调用时执行本申请实施例提供的
数据处理方法。
[0009]本申请实施例提供一种数据处理方法、装置、电子设备及存储介质,通过将分块的输入数据划分为多个预设类型的数据,分别将多个预设类型的数据存储到多个预设缓冲区中,可以将不同预设类型的数据存储在不同的缓冲区中,实现分类存储,从而使得后续对分块执行卷积运算时可以直接从不同的缓冲区中取出该分块的输入数据,而不必加载整条内存位宽对应的数据,并从加载的数据中抽取出相邻分块之间的重叠数据,进而可以有效减少冗余数据的重复搬运,提升计算效率并节省系统功耗。
附图说明
[0010]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0011]图1是本申请一示例性实施例提供的Conv3x3_S1算子的分块的输入数据的示意图;
[0012]图2是本申请实施例提供的数据处理方法的应用场景的示意图;
[0013]图3是本申请一实施例提供的数据处理方法的流程示意图;
[0014]图4是本申请一示例性实施例提供的算子为Conv3x3_S1的卷积运算的示意图;
[0015]图5是本申请另一实施例提供的数据处理方法的流程示意图;
[0016]图6是本申请一示例性实施例提供的被划分为多个分块的特征图的示意图;
[0017]图7是本申请一示例性实施例提供的当前特征图的当前待处理分块的示意图;
[0018]图8是本申请一示例性实施例提供的一组第二预设类型的数据的存储情况的示意图;
[0019]图9是本申请实施例提供的数据处理装置的结构框图;
[0020]图10是本申请实施例提供的电子设备的结构框图;
[0021]图11是本申请实施例提供的计算机可读取存储介质的结构框图。
具体实施方式
[0022]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0023]请参阅图1,图1是本申请一示例性实施例提供的Conv3x3_S1算子的分块的输入数据的示意图。根据卷积运算的特性,相邻分块之间存在数据复用,如图1所示,Conv3x3_S1算子的卷积核窗口为3*3,步长为1,没有填充。假设该Conv3x3_S1算子对应的当前待处理分块的尺寸为Tile_OW*Tile_OH,为了得到尺寸为Tile_OW*Tile_OH的输出分块,需要在卷积神经网络中输入尺寸为(Tile_OW+2)*(Tile_OH+2)的输入数据。其中,Tile_OW为当前待处理分块和输出分块在第一方向W上的尺寸,Tile_OH为当前待处理分块和输出分块在与第一方向垂直的第二方向H上的尺寸。
[0024]如图1所示,在第一方向W上,相邻的分块0和分块1之间存在2*(Tile_OH+2)的重叠数据,相邻的分块1和分块2之间也存在2*(Tile_OH+2)的重叠数据。同理,在第二方向H上,
两个相邻分块(图1中未示出)之间存在(Tile_OW+2)*2的重叠数据。
[0025]以第一方向W为例,在对分块0进行卷积运算时,需要加载分块0与分块1之间的重叠数据作为计算分块0的输入。在对分块0进行卷积运算之后,分块0与分块1之间的重叠数据会被释放掉。在对分块1进行卷积运算时,需要再次加载分块0与分块1之间的重叠数据作为计算分块1的输入。处理器的内存位宽通常远大于2个像素,为了取分块0和分块1之间的重叠数据,需要将整条内存位宽对应的数据加载进来,再从这些加载的数据中抽取出分块0和分块1之间的重叠数据。其中,内存位宽可以指内存或显存一次能传输的数据量。也即,目前获取相邻分块的重叠数据的上述方法需要重复对冗余数据进行搬运,导致系统功耗增加且计算效率降低,从而对处理器的性能产生不良影响。
[0026]为了改善上述问题,本申请提供一种数据处理方法、装置、电子设备及存储介质,通过将分块的输入数据划分为多个预设类型的数据,分别将多个预设类型的数据存储到多个预设缓冲区中,可以将不同预设类型的数据存储在不同的缓冲区中,实现分类存储,从而使得后续对分块执行卷积运算时可以直接从不同的缓冲区中取出该分块的输入数据,而不必加载整条内存位宽对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取当前特征图中的当前待处理分块和相邻分块的输入数据,所述当前待处理分块的输入数据为对所述当前待处理分块进行卷积运算时输入卷积神经网络的数据,所述相邻分块的输入数据为对所述相邻分块进行卷积运算时输入卷积神经网络的数据;根据所述当前待处理分块的输入数据与所述相邻分块的输入数据的重叠情况,将所述当前待处理分块的输入数据划分为多种预设类型的数据;分别将所述多种预设类型的数据存储到多个预设缓冲区中,其中,不同预设类型的数据对应不同的预设缓冲区。2.根据权利要求1所述的方法,其特征在于,所述待处理分块具有相互垂直的第一方向和第二方向,所述多种预设类型包括第一预设类型,第二预设类型,第三预设类型,以及第四预设类型,所述根据所述当前待处理分块的输入数据与所述相邻分块的输入数据的重叠情况,将所述当前待处理分块的输入数据划分为多种预设类型的数据,包括:将所述当前待处理分块的输入数据中,和所述相邻分块的输入数据不存在数据重叠的部分数据,确定为所述第一预设类型的数据;将所述当前待处理分块的输入数据中,在所述第一方向上,和所述相邻分块的输入数据重叠的部分数据,确定为所述第二预设类型的数据;将所述当前待处理分块的输入数据中,在所述第二方向上,和所述相邻分块的输入数据重叠的部分数据,确定为所述第三预设类型的数据;将所述当前待处理分块的输入数据中,在所述第一方向和所述第二方向上,和所述相邻分块的输入数据均重叠的部分数据,确定为所述第四预设类型的数据。3.根据权利要求2所述的方法,其特征在于,所述多个预设缓冲区包括第一预设缓冲区,第二预设缓冲区,第三预设缓冲区,以及第四预设缓冲区,所述分别将所述多种预设类型的数据存储到多个预设缓冲区中,包括:将所述第一预设类型的数据存储到所述第一预设缓冲区中,所述第一预设缓冲区与所述第一预设类型对应;将所述第二预设类型的数据存储到所述第二预设缓冲区中,所述第二预设缓冲区与所述第二预设类型对应;将所述第三预设类型的数据存储到所述第三预设缓冲区中,所述第三预设缓冲区与所述第三预设类型对应;将所述第四预设类型的数据存储到所述第四预设缓冲区中,所述第四预设缓冲区与所述第...

【专利技术属性】
技术研发人员:王智慧
申请(专利权)人:OPPO
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1