CN112561047B - 用于处理数据的装置、方法和计算机可读存储介质 - Google Patents

用于处理数据的装置、方法和计算机可读存储介质 Download PDF

Info

Publication number
CN112561047B
CN112561047B CN202011523956.1A CN202011523956A CN112561047B CN 112561047 B CN112561047 B CN 112561047B CN 202011523956 A CN202011523956 A CN 202011523956A CN 112561047 B CN112561047 B CN 112561047B
Authority
CN
China
Prior art keywords
processing unit
parameter
channel
eigenvalues
general purpose
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011523956.1A
Other languages
English (en)
Other versions
CN112561047A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bi Ren Technology Co ltd
Original Assignee
Shanghai Biren Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Biren Intelligent Technology Co Ltd filed Critical Shanghai Biren Intelligent Technology Co Ltd
Priority to CN202011523956.1A priority Critical patent/CN112561047B/zh
Publication of CN112561047A publication Critical patent/CN112561047A/zh
Application granted granted Critical
Publication of CN112561047B publication Critical patent/CN112561047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Neurology (AREA)
  • Power Sources (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开涉及一种用于处理数据的装置、方法和计算机可读存储介质。该装置包括:协处理单元,被配置为基于输入数据生成第一通道的第一组特征值;预定处理单元,耦合到协处理单元,并且被配置为针对第一通道确定与第一组特征值的归一化有关的至少一个第一参数;存储单元,耦合到预定处理单元,并且被配置为存储至少一个第一参数;以及第一通用处理单元,耦合到协处理单元和存储单元,并且被配置为针对第一通道利用至少一个第一参数来归一化第一组特征值。根据本公开的实施例,能够降低进行批归一化的功耗,从而提高整体性能。

Description

用于处理数据的装置、方法和计算机可读存储介质
技术领域
本公开的实施例总体上涉及计算机领域,更具体地涉及一种用于处理数据的装置、方法和计算机可读存储介质。
背景技术
机器学习技术正越来越广泛地应用于各个领域。在机器学习模型的训练中,通常涉及大量训练数据的处理。可以按批次来处理这种训练数据。特别地,在诸如深度神经网络的深度学习模型中引入了批归一化(Batch Normalization),以使深度学习模型的训练更加容易和稳定(例如加快训练速度、防止过拟合等)。因此,批归一化是深度学习模型中的重要操作。
在批归一化中,需要计算每个批次的训练数据的均值和方差,然后利用所计算的均值和方差来归一化该批次的训练数据。在传统方案中,采用通用处理单元来执行批归一化操作。每个批次的训练数据通常较大,这导致通用处理单元需要消耗较多的功率和时间来执行批归一化。
发明内容
本公开提供了一种用于处理数据的方案。该方案能够在可控的功率和时间成本下实现批归一化。
根据本公开的第一方面,提供了一种处理数据的装置。该装置包括:协处理单元,被配置为基于输入数据生成第一通道的第一组特征值;预定处理单元,耦合到协处理单元,并且被配置为针对第一通道确定与第一组特征值的归一化有关的至少一个第一参数;存储单元,耦合到预定处理单元,并且被配置为存储至少一个第一参数;以及第一通用处理单元,耦合到协处理单元和存储单元,并且被配置为针对第一通道利用至少一个第一参数来归一化第一组特征值。
根据本发明的第二方面,还提供了一种用于处理数据的方法。该方法包括:协处理单元基于输入数据生成第一通道的第一组特征值;耦合到协处理单元的预定处理单元针对第一通道确定与第一组特征值的归一化有关的至少一个第一参数;耦合到预定处理单元的存储单元存储至少一个第一参数;以及耦合到协处理单元和存储单元的第一通用处理单元针对第一通道利用至少一个第一参数来归一化第一组特征值。
根据本公开的第三方面,还提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序被机器执行时执行本公开的第二方面的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
图1示意性示出了根据本公开的一些实施例的用于处理数据的装置的框图;
图2示意性示出了本公开的一些实施例的存储单元的示意图;
图3示意性示出了根据本公开的一些实施例的用于处理数据的装置的框图;
图4示出了根据本公开的实施例的用于处理数据的示例方法的流程图;以及
图5示出了根据本公开的实施例的用于确定归一化参数的示例方法的流程图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本公开内容的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如本文所使用的,“神经网络”能够处理输入并且提供相应输出,其通常包括输入层和输出层以及在输入层与输出层之间的一个或多个隐藏层。在深度学习应用中使用的神经网络通常包括许多隐藏层,从而延长网络的深度。神经网络的各个层按顺序相连,从而前一层的输出被提供作为后一层的输入,其中输入层接收神经网络的输入,而输出层的输出作为神经网络的最终输出。神经网络的每个层包括一个或多个节点(也称为处理节点或神经元),每个节点处理来自上一层的输入。在本文中,术语“神经网络”、“网络”和“神经网络模型”可替换地使用。
如前文所提及的,批归一化是深度学习模型中的重要操作。在训练中,通常以样本的方差作为损失函数来衡量训练的效果。例如,在监督学习中,对于特征为x并且标记为z的样本,由训练模型得出的值表示为z’=h(x),那么该样本的方差可以表示为下式:
e=1/2(z-z’)2                 (1)
由此,多个样本的方差可以表示为:
E=e(1)+e(2)+e(3)+…+e(n)          (2)
其中,e(i)表示第i个样本的如式(1)所示的方差,i取值为1至n,n为正整数。
对式(2)进行推广。假设某个批次包括索引分别为0至n的(n+1)个样本,并且这些样本的训练值分别为z0,z1,...,zn。那么,这些样本的训练值的和s0和平均值m0可以分别表示为:
s0=z0+z1+...+zn           (3)
m0=s0/(n+1)             (4)
在以训练值的平均值m0来替代标记的情况下,这些样本的方差可以表示为:
E=1/2((z0-m0)*(z0-m0)+(z1-m0)*(z1-m0)+...+(zn-m0)*(zn-m0))  (5)
在传统方案中,由通用处理单元来执行批归一化操作。也就是说,通用处理单元需要根据式(3)至式(5)来计算每个批次的样本的方差。在模型训练中每个批次的样本的数目是巨大的,为此需要调度大量的指令操作和计算资源。这导致通用处理单元消耗大量的功率和时间来进行批归一化。此外,这种批处理方式对整体性能和功耗的影响也是不可忽视的。
本公开的实施例提出了一种用于处理数据的方案,以解决上述问题和其他潜在问题中的一个或多个。在该方案中,设置预定处理单元来确定与批归一化有关的至少一个参数。所确定的至少一个参数由通用处理单元获取以进行后续处理。由于预定处理单元被特别地设计以用于确定与批归一化有关的参数,其能够以可控的成本和功耗完成计算。由此,可以降低进行批归一化的功耗,从而提高整体性能。
下面将结合图1至图5来具体描述本公开的示例实施例。
图1示意性示出了根据本公开的一些实施例的用于处理数据的装置100的框图。如图1所示,装置100总体上包括协处理单元110、预定处理单元120、存储单元130和通用处理单元140-1至140-N,其中N为正整数。在下文中,为了便于讨论,通用处理单元140-1至140-N也可以统称或单独地称为“通用处理单元140”。应当理解,装置100还可以包括未示出的其他单元。
协处理单元110被配置为基于输入数据生成一个或多个通道中的每个通道的一组特征值,其在下文中也简称为“每个通道的特征值”。如本文中所使用的,术语“一组特征值”、“第一组特征值”、“第二组特征值”等类似术语是指在对一批次的数据进行处理时针对某个通道生成的特征值。这种特征值可以是神经网络的任一层的输出值。例如,每个特征值可以对应于由协处理单元110确定的特征图中的像素或特征矩阵中的元素。
输入数据可以是在机器学习模型的训练阶段或推断阶段中输入模型的初始数据或经处理的中间数据。在一些实施例中,输入数据可以是用于训练机器学习模型的样本数据。这样的样本数据可以是训练样本的初始数据,也可以是训练样本的经处理数据,例如神经网络的隐藏层的输出。
协处理单元110可以被实现为专用于张量计算的执行引擎,例如领域专用的加速器(DSA)的执行核。针对一批次的数据,协处理单元110可以通过矩阵运算或卷积运算生成各个通道的特征图。每个通道的特征图中的像素对应于该通道的特征值。例如,在一批次数据的处理中,协处理单元110可以生成8个通道中的每个通道的特征图。
取决于例如要处理的数据量以及协处理单元110的处理能力,对一批次数据的处理可以仅涉及单个周期(cycle),或者被划分为多个周期。在此描述的“周期”是指数据的处理周期。
在一些实施例中,每个通道的一组特征值可以是在单个周期内生成的,这也称为“单周期实施例”。在单周期实施例中,协处理单元110可以针对每个通道在一个周期生成该通道的全部特征值。例如,协处理单元110可以针对每个通道在一个周期生成该通道的完全特征图。
在一些实施例中,对一批次数据的处理可以被划分为多个周期,并且每个通道的一组特征值可以是在多个周期生成的,这也称为“多周期实施例”。在多周期实施例中,协处理单元110可以针对每个通道在多个周期中的每个周期生成一组特征值的相应子集。分别在多个周期生成的多个子集构成了该组特征值。例如,每个通道的特征图可以具有8*8个像素,并且对一批次数据的处理可以被划分为8个周期。在这种情况下,协处理单元110可以针对每个通道在每个周期生成特征图中的8个像素。
协处理单元110可以根据指令来确定要处理的通道的数目以及所划分的周期的数目。这种指令例如可以来自通用处理单元140。然而,应当理解,这种指令也可以来自装置100中的另一单元或未示出的其他单元。本公开的范围在此方面不受限制。
如图1所示,预定处理单元120耦合到协处理单元110。由此,预定处理单元120可以从协处理单元110接收每个通道的特征值。预定处理单元120被配置为针对每个通道确定与该通道的特征值的归一化有关的至少一个参数,其也称为“归一化参数”。
假设在一批次数据的处理中,每个通道包括索引分别为0至n的(n+1)个特征值,并且这些特征值分别表示为y0,y1,...,yn。那么,这些特征值的和S0、平方和SQ0以及平均值M0可以分别表示为:
S0=y0+y1+...+yn           (6)
SQ0=y0*y0+y1*y1+...+yn*yn        (7)
M0=S0/(n+1)               (8)
其中n为正整数。
相应地,这些特征值的方差可以表示为:
E=1/2((y0-M0)*(y0-M0)+(y1-M0)*(y1-M0)+...+(yn-M0)*(yn-M0))   (9)
通过对式(9)的分析,这些特征值的方差可以进一步表示为:
E=1/2(y0*y0+M0*M0–2*y0*M0+y1*y1+M0*M0+2*y1*M0+…)
 =1/2(SQ0+(n+1)*M0*M0–2*S0*M0)
 =1/2(SQ0+S0*S0/(n+1)–2*S0*S0/(n+1))
 =1/2(SQ0–S0*S0/(n+1))                          (10)
从式(10)可以看出,在得出特征值的和S0以及平方和SQ0之后,仅需少量的计算便可以得出特征值的方差E,从而对这些特征值进行归一化。因此,归一化参数可以包括特征值的和S0或平方和SQ0中的至少一项。
在一些实施例中,预定处理单元120可以针对每个通道计算特征值的和S0。在一些实施例中,预定处理单元120可以针对每个通道计算特征值的平方和SQ0。在这样的实施例中,可以缓解通用处理单元140处的计算负荷,从而减小装置100的功耗。
在一些实施例中,预定处理单元120可以针对每个通道计算特征值的和S0以及平方和SQ0两者。在这样的实施例中,可以进一步缓解通用处理单元140处的计算负荷,从而进一步减小装置100的功耗。
预定处理单元120可以根据指令来确定要计算哪个或哪些归一化参数。这种指令例如可以来自通用处理单元140。例如,通用处理单元140可以向预定处理单元120发送指令,以指示预定处理单元120计算和S0、或平方和SQ0、或两者。然而,应当理解,这种指令也可以来自装置100中的另一单元或未示出的其他单元。本公开的范围在此方面不受限制。
在本公开的实施例中,预定处理单元120具有固定功能,即,用于计算归一化参数。换言之,预定处理单元120可以是一种专用处理单元,其被特别地设计以用于计算归一化参数。可以以任何合适的硬件来实现预定处理单元120。例如,可以用算术逻辑单元(ALU)实现预定处理单元120。又如,可以用专用集成电路(ASIC)实现预定处理单元120。
预定处理单元120可以支持多通道的并行运算。也即,预定处理单元120可以针对多个通道同时计算各自的归一化参数。预定处理单元120的吞吐量可以与协处理单元110的吞吐量相适应,使得协处理单元110生成的特征数据能够在预定处理单元120处被及时处理。
存储单元130耦合到预定处理单元120。预定处理单元120可以将所计算的每个通道的归一化参数写入存储单元130。存储单元130被配置为针对每个通道存储归一化参数。
参考图2。图2示意性示出了本公开的一些实施例的存储单元130的示意图。在图2的示例中,存储单元130可以存储每个通道的特征值的和S0、以及平方和SQ0。具体地,存储单元130处存储有通道0的和S0 201、通道0的平方和SQ0 202、通道1的和S0 203、通道1的平方和SQ0 204、通道2的和S0 205、通道2的平方和SQ0 206等。存储单元130可以以任何合适的方式(诸如,表)来存储归一化参数。
可以使用任何合适的硬件来实现存储单元130。作为示例,存储单元130可以被实现为静态随机存取存储器(SRAM)。存储单元130也可以被实现为其他合适的存储装置,包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、闪存、记忆棒。此外,图2中所示的通道的数目和归一化参数仅是示例性,而无意限制本公开的范围。
继续参考图1。预定处理单元120和存储单元130可以协同地实现归一化参数的累计计算。预定处理单元120可以从协处理单元110接收当前周期所生成的特征值的子集,并且从存储单元130读取所存储的归一化参数。所存储的归一化参数的值是基于在位于当前周期之前的周期生成的特征值的子集而得出的。预定处理单元120进而可以基于当前周期的特征值的子集来更新归一化参数,即,计算归一化参数的更新值,并将经更新的归一化参数写入存储单元130。
作为示例,假设归一化参数为特征值的和S0、以及平方和SQ0,并且每个周期针对每个通道生成8个特征值,例如特征图中的8个像素。那么,预定处理单元120可以执行如式(11)和(12)所示的加和运算和乘加运算:
S0_new=S0_old+p0+p1+p2+…+p7     (11)
SQ0_new=SQ0_old+p0*p0+p1*p1+p2*p2+…+p7*p7  (12)
其中,S0_old和SQ0_old是累计计算的旧值,其是基于先前周期生成的特征值得出的,并且由预定处理单元120从存储单元130读出;p0、p1、p2、…、p7是当前周期生成的特征值;S0_new和SQ0_new是累计计算的更新值,其将被写入存储单元130以替代S0_old和SQ0_old。
以此方式,存储单元130中的归一化参数可以被逐步更新,直到该批次的最后一个周期。可以理解的是,如果当前周期是第一个周期,从存储单元130所读取的归一化参数可以是0。
通用处理单元140耦合到协处理单元110,以从协处理单元110接收一个或多个通道各自的一组特征值。通用处理单元140还耦合到存储单元130,以从存储单元130读取归一化参数,例如读取图2中所示的通道0的和S0 201、通道0的平方和SQ0 202、通道1的和S0203、通道1的平方和SQ0 204、通道2的和S0 205、通道2的平方和SQ0 206中的一项或多项。
通用处理单元140被配置为利用所读取的归一化参数来归一化所接收的特征值。例如,通用处理单元140可以根据式(10)计算特征值的方差,并且完成批归一化所需的少量后续计算。通用处理单元140还可以对所接收的特征值进行其他后续处理。本公开的范围在此方面不受限制。
在从协处理单元110接收到所处理的通道的全部特征值后,通用处理单元140可以从存储单元130读取相应通道的归一化参数。例如,假设通用处理单元140-1被配置为处理通道0和通道1。在从协处理单元110接收到通道0和通道1的全部特征值(例如,特征图中的所有像素)后,通用处理单元140-1可以从存储单元130中读取通道0的和S0 201、通道0的平方和SQ0 202、通道1的和S0 203、通道1的平方和SQ0 204。
可以使用任何合适的硬件来实现通用处理单元140。通用处理单元140可以包括但不限于图形处理单元(GPU)、中央处理单元(CPU)、微处理器、控制器、微控制器等。此外,尽管图1中示出了多个通用处理单元,但这仅是示例性的。根据本公开的用于处理数据的装置100可以包括更多或更少数目的通用处理单元。例如,装置100可以仅包括一个通用处理单元,其用于处理所有通道。
在根据本公开的用于处理数据的装置中,引入了具有固定功能的预定处理单元,来代替通用处理单元计算与批归一化有关的参数。所引入的这种专用计算资源能够以可控的成本和功耗完成计算。由此,可以降低进行批归一化的功耗。此外,从以上描述中可以看出,预定处理单元对归一化参数的计算可以视为顺便(on-the-fly)完成的,而没有花费额外的时钟周期。以此方式,用于计算归一化参数的时延可以被隐藏。因此,根据本公开的用于数据处理的装置具有优化的性能。
图3示意性示出了根据本公开的另一些实施例的用于处理数据的装置100的框图。图3示出了装置100的另一示例。在一些情况下,通用处理单元140在对通道进行后续处理中也可能生成需要归一化的中间数据。因此,通用处理单元140处的数据处理可能存在归一化需求。
如图3所示,在一些实施例中,预定处理单元120还可以耦合至通用处理单元140。预定处理单元120还可以被配置为从通用处理单元140接收用于处理一个或多个通道的一组中间值。在此描述的“中间值”可以是指通用处理单元140在对相应通道进行处理过程生成的任何类型的数据。预定处理单元120还可以被配置为确定与该组中间值的归一化有关的至少一个参数,并且将所确定的参数存储到存储单元130。例如,预定处理单元120可以计算该组中间值的和S0、以及平方和SQ0,并将其写入存储单元130中。预定处理单元120确定这些中间值的归一化参数的方式与上文参考图1所讨论的类似,在此不再重复描述。
相应地,通用处理单元140还可以被配置为针对一个或多个通道利用来自存储单元的归一化参数来归一化该组中间值。
在这种实施例中,通用处理单元处的归一化操作也可以利用专用计算资源。以此方式,通用处理单元的功耗可以被进一步降低,从而进一步优化了用于处理数据的装置的整体性能。
以下结合图4说明用于处理数据的方法400。图4示出了根据本公开的实施例的用于处理数据的方法400的示意图。应当理解,方法400还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在框410处,协处理单元110基于输入数据生成第一通道的第一组特征值。在单通道的情况下,在此描述的“第一通道”可以是所处理的单个通道。在多通道的情况下,在此描述的“第一通道”可以是所处理的多个通道中的任一通道。例如,协处理单元110可以生成每个通道的特征图。
在一些实施例中,对输入数据的处理可以被划分为多个周期。协处理单元110可以在多个周期中的每个周期生成第一组特征值的相应子集。例如,对输入数据的处理可以被划分为8个周期,并且第一通道的特征图具有64个像素。协处理单元110可以在每个周期生成特征图中的8个像素。
在框420处,预定处理单元120针对第一通道确定与第一组特征值的归一化有关的至少一个第一参数。在多通道的情况下,预定处理单元120可以针对每个通道确定相应的归一化参数,如上文参考图1所描述的。
在一些实施例中,至少一个第一参数可以包括第一组特征值的和,即,上文所描述的和S0。备选地或附加地,在一些实施例中,至少一个第一参数可以包括第一组特征值的平方和,即,上文所描述的和SQ0。例如,预定处理单元120可以确定通道0的和S0、通道0的平方和SQ0、通道1的和S0、通道1的平方和SQ0、通道2的和S0、通道2的平方和SQ0等。
在一些实施例中,对输入数据的处理可以被划分为多个周期。预定处理单元120可以与存储单元130协同地确定第一组特征值的至少一个第一参数。
图5示出了根据本公开的实施例的用于确定归一化参数的方法500的示意图。应当理解,方法500还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。方法500可以视为框420的一个具体实现。
在框510,针对多个周期中的第一周期,预定处理单元120可以从协处理单元110接收第一组特征值的第一子集。在此描述的“第一周期”可以是数据处理的多个周期中的任一周期,并且“第一子集”可以是由协处理单元110针对数据处理的第一周期而生成的第一通道的特征值。
在框520,预定处理单元120可以从存储单元130读取至少一个第一参数。所读取的至少一个第一参数可以是至少基于第一组特征值的第二子集被确定的,并且第二子集可以是在第一周期之前的第二周期由协处理单元110生成的。在此描述的“第二周期”可以是指在第一周期之前的任一周期或所有周期。例如,预定处理单元120可以从存储单元130中针对每个通道读取和S0的当前值、以及平方和SQ0的当前值。
在框530,预定处理单元120可以基于第一子集来更新至少一个参数。例如,第一子集可以是式(11)和(12)中所示的p0、p1、p2、…、p7。预定处理单元120可以根据式(11)和(12)来分别计算和S0、以及平方和SQ0的更新值。
在框540,预定处理单元120可以将经更新的至少一个参数存储到存储单元130。例如,预定处理单元120可以将和S0、以及平方和SQ0的更新值写入存储单元130,以替代相应的旧值。
继续参考图4。在框430处,存储单元130存储预定处理单元120所确定的至少一个第一参数。在多通道的情况下,存储单元130可以针对每个通道存储归一化参数。例如,存储单元130可以存储通道0的和S0 201、通道0的平方和SQ0 202、通道1的和S0 203、通道1的平方和SQ0 204、通道2的和S0 205、通道2的平方和SQ0 206等,如图2所示。
在框440处,第一通用处理单元针对第一通道利用至少一个第一参数来归一化第一组特征值。在此描述的“第一通用处理单元”是指通用处理单元140-1至140-N中用于处理第一通道的通用处理单元。例如,在从协处理单元110接收到通道0的全部特征值后,第一通道处理单元可以从存储单元130中读取通道0的和S0 201、通道0的平方和SQ0 202。进而,第一通道处理单元可以利用和S0以及平方和SQ0来归一化通道0的特征值。
在多通道的情况下,协处理单元110还可以基于输入数据生成第二通道的第二组特征值。在此描述的“第二通道”可以是所处理的多个通道中除第一通道之外的任一通道。相应地,预定处理单元120还可以针对第二通道确定与第二组特征值的归一化有关的至少一个第二参数,并且预定处理单元120还可以存储至少一个第二参数。至少一个第二参数例如是第二通道的和S0以及平方和SQ0。
相应地,第二通用处理单元可以针对第二通道利用至少一个第二参数来归一化第二组特征值。在此描述的“第二通用处理单元”是指通用处理单元140-1至140-N中用于处理第二通道的通用处理单元。例如,在从协处理单元110接收到通道1的全部特征值后,第二通道处理单元可以从存储单元130中读取通道1的和S0 203、通道1的平方和SQ0 204。进而,第二通道处理单元可以利用和S0以及平方和SQ0来归一化通道1的特征值。取决于具体实现,第一通用处理单元和第二通用处理单元可以是同一处理单元,也可以是不同的通用处理单元。
在一些实施例中,方法400还可以包括预定处理单元110从第一通用处理单元接收用于处理第一通道的一组中间值,并且确定与该组中间值的归一化有关的至少一个第三参数。至少一个第三参数例如可以是该组中间值的和、或该组中间值的平方和。预定处理单元110进而可以将至少一个第三参数存储到存储单元130。相应地,方法400还可以包括第一通用处理单元针对第一通道利用至少一个第三参数来归一化该组中间值。
在根据本公开的用于处理数据的方法中,引入了具有固定功能的预定处理单元,来代替通用处理单元计算与批归一化有关的参数。所引入的这种专用计算资源能够以可控的成本和功耗完成计算。由此,可以降低进行批归一化的功耗。此外,从以上描述中可以看出,在预定处理单元处对归一化参数的计算可以视为顺便完成的,而没有花费额外的时钟周期。以此方式,用于计算归一化参数的时延可以被隐藏。因此,根据本公开的用于数据处理的方法可以实现优化的数据处理性能。
应当理解方法400和500可被实现为计算机软件程序,其可以被有形地包含于机器可读介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由ROM和/或通信单元而被载入和/或安装到装置上。当计算机程序被加载到RAM并由处理器执行时,可以执行上文描述的方法400和500的一个或多个动作。
本公开可以是方法、计算设备、计算机存储介质和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (11)

1.一种用于处理数据的装置,包括:
协处理单元,被配置为基于输入数据生成第一通道的第一组特征值;
预定处理单元,耦合到所述协处理单元,并且被配置为针对所述第一通道确定与所述第一组特征值的归一化有关的至少一个第一参数;
存储单元,耦合到所述预定处理单元,并且被配置为存储所述至少一个第一参数;以及
第一通用处理单元,耦合到所述协处理单元和所述存储单元,并且被配置为针对所述第一通道利用所述至少一个第一参数来归一化所述第一组特征值;
并且其中所述协处理单元被配置为在多个周期中的每个周期生成所述第一组特征值的相应子集,并且所述预定处理单元被配置为针对所述多个周期中的第一周期执行以下操作:
从所述协处理单元接收所述第一组特征值的第一子集;
从所述存储单元读取所述至少一个第一参数,其中所读取的所述至少一个第一参数至少基于所述第一组特征值的第二子集被确定,并且所述第二子集是在所述第一周期之前的第二周期由所述协处理单元生成的;
基于所述第一子集来更新所述至少一个参数;以及
将经更新的所述至少一个参数存储到所述存储单元。
2.根据权利要求1所述的装置,其中所述至少一个第一参数包括以下至少一项:
所述第一组特征值的和,或
所述第一组特征值的平方和。
3.根据权利要求1所述的装置,其中
所述协处理单元还被配置为基于所述输入数据生成第二通道的第二组特征值,所述第二通道不同于所述第一通道;
所述预定处理单元还被配置为针对所述第二通道确定与所述第二组特征值的归一化有关的至少一个第二参数;
所述存储单元还被配置为存储所述至少一个第二参数;并且
所述装置还包括:
第二通用处理单元,耦合到所述协处理单元和所述存储单元,并且被配置为针对所述第二通道利用所述至少一个第二参数来归一化所述第二组特征值。
4.根据权利要求1所述的装置,其中所述预定处理单元还耦合至所述第一通用处理单元,并且还被配置为:
从所述第一通用处理单元接收用于处理所述第一通道的一组中间值;
确定与所述一组中间值的归一化有关的至少一个第三参数;以及
将所述至少一个第三参数存储到所述存储单元,并且
所述第一通用处理单元还被配置为针对所述第一通道利用所述至少一个第三参数来归一化所述一组中间值。
5.根据权利要求1所述的装置,其中所述输入数据包括用于机器学习模型的训练样本。
6.一种用于处理数据的方法,包括:
协处理单元基于输入数据生成第一通道的第一组特征值;
耦合到所述协处理单元的预定处理单元针对所述第一通道确定与所述第一组特征值的归一化有关的至少一个第一参数;
耦合到所述预定处理单元的存储单元存储所述至少一个第一参数;以及
耦合到所述协处理单元和所述存储单元的第一通用处理单元针对所述第一通道利用所述至少一个第一参数来归一化所述第一组特征值;
其中所述协处理单元基于所述输入数据生成所述第一通道的所述第一组特征值包括:所述协处理单元在多个周期中的每个周期生成所述第一组特征值的相应子集,并且所述预定处理单元针对所述第一通道确定所述至少一个第一参数包括所述预定处理单元针对所述多个周期中的第一周期执行以下操作:
从所述协处理单元接收所述第一组特征值的第一子集;
从所述存储单元读取所述至少一个第一参数,其中所读取的所述至少一个第一参数至少基于所述第一组特征值的第二子集被确定,并且所述第二子集是在所述第一周期之前的第二周期由所述协处理单元生成的;
基于所述第一子集来更新所述至少一个参数;以及
将经更新的所述至少一个参数存储到所述存储单元。
7.根据权利要求6所述的方法,其中所述至少一个第一参数包括以下至少一项:
所述第一组特征值的和,或
所述第一组特征值的平方和。
8.根据权利要求6所述的方法,还包括:
所述协处理单元基于所述输入数据生成第二通道的第二组特征值,所述第二通道不同于所述第一通道;
所述预定处理单元针对所述第二通道确定与所述第二组特征值的归一化有关的至少一个第二参数;
所述存储单元存储所述至少一个第二参数;以及
耦合到所述协处理单元和所述存储单元的第二通用处理单元针对所述第二通道利用所述至少一个第二参数来归一化所述第二组特征值。
9.根据权利要求6所述的方法,其中所述预定处理单元还耦合至所述第一通用处理单元,并且所述方法还包括:
所述预定处理单元从所述第一通用处理单元接收用于处理所述第一通道的一组中间值;
所述预定处理单元确定与所述一组中间值的归一化有关的至少一个第三参数;
所述预定处理单元将所述至少一个第三参数存储到所述存储单元;以及
所述第一通用处理单元针对所述第一通道利用所述至少一个第三参数来归一化所述一组中间值。
10.根据权利要求6所述的方法,其中所述输入数据包括用于机器学习模型的训练样本。
11.一种计算机可读存储介质,存储有计算机指令,其中所述计算机指令用于使所述计算机执行根据权利要求6-10中任一项所述的方法。
CN202011523956.1A 2020-12-22 2020-12-22 用于处理数据的装置、方法和计算机可读存储介质 Active CN112561047B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011523956.1A CN112561047B (zh) 2020-12-22 2020-12-22 用于处理数据的装置、方法和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011523956.1A CN112561047B (zh) 2020-12-22 2020-12-22 用于处理数据的装置、方法和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112561047A CN112561047A (zh) 2021-03-26
CN112561047B true CN112561047B (zh) 2023-04-28

Family

ID=75032118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011523956.1A Active CN112561047B (zh) 2020-12-22 2020-12-22 用于处理数据的装置、方法和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112561047B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109886392A (zh) * 2019-02-25 2019-06-14 深圳市商汤科技有限公司 数据处理方法和装置、电子设备和存储介质
CN111316199A (zh) * 2018-10-16 2020-06-19 华为技术有限公司 一种信息处理方法及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008393A (zh) * 2014-05-17 2014-08-27 北京工业大学 一种用于认知状态识别的特征分组归一化方法
CN110110257B (zh) * 2018-01-30 2022-03-04 北京京东尚科信息技术有限公司 数据处理方法及其***、计算机***及计算机可读介质
CN110390394B (zh) * 2019-07-19 2021-11-05 深圳市商汤科技有限公司 批归一化数据的处理方法及装置、电子设备和存储介质
CN111310931A (zh) * 2020-02-05 2020-06-19 北京三快在线科技有限公司 参数生成方法、装置、计算机设备及存储介质
CN111428879B (zh) * 2020-03-04 2024-02-02 中昊芯英(杭州)科技有限公司 数据处理方法、装置、芯片以及计算机可读存储介质
CN111738325B (zh) * 2020-06-16 2024-05-17 北京百度网讯科技有限公司 图像识别方法、装置、设备以及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111316199A (zh) * 2018-10-16 2020-06-19 华为技术有限公司 一种信息处理方法及电子设备
CN109886392A (zh) * 2019-02-25 2019-06-14 深圳市商汤科技有限公司 数据处理方法和装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN112561047A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
US11308398B2 (en) Computation method
US10460230B2 (en) Reducing computations in a neural network
US11531860B2 (en) Apparatus and method for executing recurrent neural network and LSTM computations
WO2018192200A1 (en) System and method for training neural network
US10817293B2 (en) Processing core with metadata actuated conditional graph execution
US11681922B2 (en) Performing inference and training using sparse neural network
US20180293486A1 (en) Conditional graph execution based on prior simplified graph execution
US20210382716A1 (en) Processing core with metadata actuated conditional graph execution
Teng et al. Bayesian distributed stochastic gradient descent
CN114444668A (zh) 网络量化方法及***及装置及介质及图像处理方法
CN112949746B (zh) 应用于用户行为分析的大数据处理方法及人工智能服务器
CN112561047B (zh) 用于处理数据的装置、方法和计算机可读存储介质
Nikulin et al. Unsupervised dimensionality reduction via gradient-based matrix factorization with two adaptive learning rates
CN111382837A (zh) 一种基于深度乘积量化的对抗样本生成方法
CN108460453B (zh) 一种用于ctc训练的数据处理方法、装置及***
US20230072535A1 (en) Error mitigation for sampling on quantum devices
CN110969259B (zh) 具有数据关联自适应舍入的处理核心
CN114610899A (zh) 一种知识图谱的表示学习方法和***
Tian et al. Lookup table allocation for approximate computing with memory under quality constraints
Lu et al. Monte carlo matrix inversion policy evaluation
Peng et al. Towards better generalization of deep neural networks via non-typicality sampling scheme
Zhai et al. Learning sampling policy for faster derivative free optimization
US20220222538A1 (en) Method and apparatus with neural network processing
Nguyen et al. Improving model-based rl with adaptive rollout using uncertainty estimation
US20220405599A1 (en) Automated design of architectures of artificial neural networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai

Patentee after: Shanghai Bi Ren Technology Co.,Ltd.

Country or region after: China

Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai

Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address