数据处理系统及方法技术方案

技术编号:21431671 阅读:21 留言:0更新日期:2019-06-22 11:46
提供了数据处理的系统及方法。该方法包括接收待由一系列操作处理的输入数据;从所述一系列操作中识别第一操作;从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组,其至少部分地基于所述成组操作的输入数据和输出数据的量以及所述存储器单元的容量;以及处理所述成组操作的输入数据的一部分。通过确保任何数据操作的输入数据和输出数据都存储在存储器单元中,可以改进该一系列数据操作的效率。

【技术实现步骤摘要】
数据处理系统及方法
本申请涉及神经网络技术,尤其是一种数据处理系统及方法。
技术介绍
诸如卷积神经网络(CNN)的深度计算框架已经用于许多应用领域,包括模式识别、信号处理、时间序列分析等。随着卷积神经网络算法的发展,CNN可用于越来越多的应用场景中。CNN的一些应用场景可对功耗和成本敏感。例如,嵌入式装置的静态随机存取存储器(SRAM)的容量受限以降低嵌入式装置的成本。然而,为了保证嵌入式装置的输出精度,可能提供的输入数据(例如,具有高分辨率的图像)的数据量会大于SRAM的容量。具有通过将操作拆分成多个拆分操作,使得每个拆分操作的数据小于SRAM的容量,来实现操作的方法及系统将是有益的。
技术实现思路
提供了数据处理的系统及方法以对数据操作进行拆分,使得每个拆分操作的数据量小于存储器单元(例如,嵌入式装置的片上存储器)的容量。在一些实例中,数据操作的输入数据和输出数据的量可能会大于存储器单元的容量,以保证数据处理的输出精度。所述输入数据和/或所述输出数据必须在外部存储器存储装置中提供,这会降低所述数据处理的计算效率。本申请的系统及方法提供了一种解决方案,对输入数据和输出数据的量超出存储器单元的大小的数据操作进行拆分。每个拆分操作具有不超出存储器单元的输入数据和输出数据的量,使得每个拆分操作的输入数据和输出数据都在所述存储器单元中存储和处理。本申请的系统及方法可用于改进在顺序执行一系列操作且一个或多个操作的输入数据和输出数据的量超出存储器单元的容量的情形下的数据处理的效率。输入数据和输出数据的量超出存储器单元的容量的操作可以与一个或多个其它操作进行成组,使得成组操作的输入数据和输出数据的量不超出存储器单元的大小。成组操作可以被拆分,每个拆分操作具有小于存储器单元的容量的数据量。每个拆分操作可产生成组操作的处理结果的一部分,且一旦执行了所有的拆分操作就可以得到成组操作的处理结果。本申请的一个方面提供了一种数据处理方法。该方法可包括:接收待由一系列操作处理的输入数据;从所述一系列操作中识别第一操作,其中所述第一操作的输入数据和输出数据的量超出存储器单元的容量;从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组,其至少部分地基于所述成组操作的输入数据和输出数据的量和所述存储器单元的容量;以及处理所述成组操作的输入数据的一部分,其中所述输入数据的一部分至少部分地基于所述成组操作的中间数据结果的量来确定。在一些实施例中,所述一系列操作可包括一系列卷积操作。可替换地,所述一系列操作可包括一系列张量操作。比如,所述一系列操作可包括一系列池化(pooling)、一系列放大(upscaling)或一系列修正线性单元(ReLUs)。在一些实施例中,所述存储器单元可包括静态随机存取存储器(SRAM)。在一些实施例中,可基于所述第一操作的输入数据的量和所述第一操作的一个或多个参数来确定所述第一操作的输出数据的量。在一些实施例中,可基于所述成组操作的输入数据的量和所述成组操作的一个或多个参数来确定所述成组操作的输出数据的量。在一些实施例中,所述至少一个第二操作可包括来自所述一系列操作中与所述第一操作紧挨的操作。在一些实例中,所述至少一个第二操作可包括来自所述一系列操作中紧挨在所述第一操作之前的操作。所述至少一个第二操作可包括来自所述一系列操作中紧挨在所述第一操作之后的操作。所述至少一个第二操作可包括来自所述一系列操作中紧挨在所述第一操作之前的操作,以及来自所述一系列操作中紧挨在所述第一操作之后的操作。在一些实施例中,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组可包括确定所述成组操作的输入数据和输出数据的量是否超出存储器单元的容量。在一些实例中,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组可包括递增地增加所述至少一个第二操作中的多个操作的数量,直到所述成组操作的输入数据和输出数据的量不超出存储器单元的容量。比如,当(1)所述成组操作中的多个操作等于所述一系列操作中的多个操作,以及(2)所述成组操作的输入数据和输出数据的量超出存储器单元的容量时,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组可进一步包括将所述成组操作的输出数据存储在外部存储器中。比如,当(1)所述成组操作中的多个操作等于所述一系列操作中的多个操作,以及(2)所述成组操作的输入数据和输出数据的量超出存储器单元的容量时,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组可进一步包括将所述成组操作的输入数据存储在外部存储器中。比如,当(1)所述成组操作中的多个操作等于所述一系列操作中的多个操作,以及(2)所述成组操作的输入数据和输出数据的量超出存储器单元的容量时,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组可进一步包括将所述成组操作的输入数据和输出数据存储在外部存储器中。在一些实施例中,所述成组操作的输入数据的一部分可包括所述输入数据的N等分中的一个以及边缘数据,N为2或更大的整数。在一些实例中,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组可包括确定所述至少一个第二操作以使得N的值为最小。所述处理所述成组操作的输入数据的一部分可以执行至少N次。所述成组操作的输入数据的一部分包括所述成组操作的输入数据的另一部分的至少一部分。在一些实例中,N可以至少部分地基于(1)所述成组操作的输入数据和输出数据的量,(2)所述存储器单元的容量,和(3)所述成组操作的中间数据结果的量而确定。在一些实施例中,所述成组操作的输入数据、中间数据结果和输出数据可存储在所述存储器单元的不同切片(slice)中。在一些实施例中,当(1)所述成组操作中的多个操作等于所述一系列操作中的多个操作,以及(2)所述成组操作的输入数据和输出数据的量超出存储器单元的容量时,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组可进一步包括将所述成组操作的输出数据存储在外部存储器中。所述处理所述成组操作的输入数据的一部分可包括将所述成组操作的输入数据和中间数据结果存储在存储器单元中。在一些实施例中,当(1)所述成组操作中的多个操作等于所述一系列操作中的多个操作,以及(2)所述成组操作的输入数据和输出数据的量超出存储器单元的容量时,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组可进一步包括将所述成组操作的输入数据存储在外部存储器中。所述处理所述成组操作的输入数据的一部分可包括从外部存储器接收所述成组操作的输入数据的所述一部分。所述处理所述成组操作的输入数据的一部分可包括将所述成组操作的中间数据结果和输出数据存储在存储器单元中。在一些实施例中,所述处理所述成组操作的输入数据的一部分可包括将所述成组操作的输入数据、中间数据结果和输出数据存储在存储器单元中。在一些实施例中,该方法进一步可以包括:获得所述成组操作的输出数据的一部分,并对成组操作的输出数据的每一部分进行组合以得到成组操作的输出数据。本申请的另一方面提供了一种数据处理系统。该系统可包括一个或多个处理器;至少一个存储器单元;以及一个或多个具有存储在其上的指令的存储器,所述指令在由所述一个或多个本文档来自技高网...

【技术保护点】
1.一种数据处理方法,所述方法包括:接收待由一系列操作处理的输入数据;从所述一系列操作中识别第一操作,其中所述第一操作的输入数据和输出数据的量超出存储器单元的容量;从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组,其至少部分地基于所述成组操作的输入数据和输出数据的量以及所述存储器单元的容量;以及处理所述成组操作的输入数据的一部分,其中所述输入数据的一部分至少部分地基于所述成组操作的中间数据结果的量来确定。

【技术特征摘要】
2018.03.22 CN PCT/CN2018/0800101.一种数据处理方法,所述方法包括:接收待由一系列操作处理的输入数据;从所述一系列操作中识别第一操作,其中所述第一操作的输入数据和输出数据的量超出存储器单元的容量;从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组,其至少部分地基于所述成组操作的输入数据和输出数据的量以及所述存储器单元的容量;以及处理所述成组操作的输入数据的一部分,其中所述输入数据的一部分至少部分地基于所述成组操作的中间数据结果的量来确定。2.如权利要求1所述的方法,其中所述第一操作的输出数据的量基于所述第一操作的输入数据的量和所述第一操作的一个或多个参数而确定;和/或所述成组操作的输出数据的量基于所述成组操作的输入数据的量以及所述成组操作的一个或多个参数而确定。3.如权利要求1所述的方法,其中所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组包括确定所述成组操作的输入数据和输出数据的量是否超出所述存储器单元的容量,以及递增地增加所述至少一个第二操作中的操作数量,直到所述成组操作的输入数据和输出数据的量不超出所述存储器单元的容量。4.如权利要求1或3所述的方法,其中所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组包括当(1)所述成组操作中的多个操作等于所述一系列操作中的多个操作,以及(2)所述成组操作的输入数据和输出数据的量超出所述存储器单元的容量时,将所述成组操作的输入数据和/或输出数据存储在外部存储器中。5.如权利要求1所述的方法,其中,所述成组操作的输入数据的所述一部分包括所述输入数据的N等分的一个以及边缘数据,N为2或更大的整数;可选地,所述从所述一系列操作中选择至少一个第二操作以与所述第一操作进行成组包括确定所述至少一个第二操作以使得N的值为最小;和/或所述处理所述成组操作的输入数据的一部分执行至少N次;和/或所述成组操作的输入数据的所述一部分包括所述成组操作的输入数据的另一部分的至少一部分;和/或N至少部分地基于(1)所述成组操作的输入数据和输出数据的量、(2)存储器单元的容量、以及(3)所述成组操作的中间数据结果的量而确定。6.如权利要求1所述的方法,其中所述处理所述成组操作的输入数据的一部分包括将所述成组操作的输入数据和中间数据结果存储在存储器单元中,优选地,所述成组操作的输入数据、中间数据结果和输出数据存储在所述存储器单元的不同切片中。7.如权利要求1所述的方法,其中,所述处理所述成组操作的输入数据的一部分包括从所述外部存储器接收所述成组操作的输入数据的所述一部分,和/或所述处理所述成组操作的输入数据的一部分包括将所述成组操作的中间数据结果和输出数据存储在所述存储器单元中,和/或所述处理所述成组操作的输入数据的一部分包括将所述成组操作的输入数据、中间数据结果和输出数据存...

【专利技术属性】
技术研发人员:王振江李建军陈亮凌坤李德林孙晨
申请(专利权)人:南京地平线机器人技术有限公司
类型:发明
国别省市:江苏,32

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

1