当前位置: 首页 > 专利查询>谷歌公司专利>正文

在硬件中执行平均池化制造技术

技术编号:19099058 阅读:138 留言:0更新日期:2018-10-03 02:51
用于接收在硬件电路上实现包括平均池化层的神经网络的请求的方法和系统,并且作为响应,生成指令,当由硬件电路运行该指令时,使得硬件电路在由神经网络处理网络输入期间,通过执行到平均池化神经网络层的输入张量和具有与平均池化神经网络层的窗口相等的大小并且由每个均是单位矩阵的元素组成的核的卷积,来生成与平均池化神经网络层的输出等价的层输出张量以生成第一张量,并且执行操作以使得第一张量的每个元素除以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量。

【技术实现步骤摘要】
在硬件中执行平均池化
本说明书涉及在硬件中计算神经网络推断。
技术介绍
神经网络是机器学习模型,其采用一层或多层来为所接收的输入生成输出,例如分类。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层(即网络的下一个隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。
技术实现思路
总体来说,本说明书描述了计算神经网络推断的专用硬件电路。总体来说,本说明书中描述的主题的一个创新性方面包括接收在硬件电路上处理神经网络的请求的系统和方法,该神经网络包括平均池化(pooling)神经网络层,并且作为响应,生成指令,当硬件电路运行该指令时,使得硬件电路在由神经网络处理网络输入期间,通过执行以下操作来生成与平均池化神经网络层的输出等价的层输出张量:执行到平均池化神经网络层输入张量和具有与平均池化神经网络层的窗口相等的大小以及由每个均是单位矩阵的元素组成的核的卷积,以生成第一张量,并执行操作以使得第一张量的每个元素除以平均池化神经网络的窗口中的元素的数量以生成初始输出张量。实现可以包括以下一个或多个特征。在一些实现中,主题的创新性方面包括由第一缩放因子重新缩放初始输出张量的边缘元素,并且由第二缩放因子重新缩放初始输出张量的角元素以生成输出张量。第一缩放因子是基于在执行卷积时与核的元素相乘以生成第一张量的边缘元素的输入张量的元素的数量,并且第二缩放因子基于在执行卷积时与核的元素相乘以生成第一张量的角元素的输入张量的元素的数量。在一些实现中,创新性方面包括通过第三缩放因子重新缩放第一张量的边缘相邻元素,并通过第四缩放因子重新缩放第一张量的角相邻元素以生成输出张量。实现还可以包括一个或多个以下特征。执行输入张量和核的卷积以生成第一张量包括:零填充输入张量以生成零填充输入张量,以及执行零填充输入张量和核的卷积以生成第一张量。执行操作以使得第一张量的每个元素除以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量包括:执行第一张量的每个元素乘以第一因子的第一乘法,第一因子是(i)在执行卷积以生成输出张量的角元素时与具有与平均池化神经网络层的窗口相等的大小的核的元素相乘的输入张量的元素的数量,(ii)在执行卷积以生成输出张量的边缘元素时,与具有与平均池化神经网络层的窗口相等的大小的核的元素相乘的输入张量的元素的数量,以及(iii)平均池化神经网络层的窗口中的元素的数量的最小公分母,并且执行第一张量的每个元素乘以一个或多个第二因子的第二乘法,每个第二因子基于在执行卷积以生成第一张量的相应元素时与核的元素相乘的输入张量的元素的数量。执行第一乘法的结果元素具有比第一张量的元素的位分辨率更高的位分辨率。实现还可以包括一个或多个以下特征。执行操作以使得第一张量的每个元素除以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量包括:生成掩码张量,其中掩码张量的大小由输入张量的大小确定,并且其中掩码张量的元素由平均池化神经网络层的窗口的大小确定,并且将第一张量的每个元素和掩码张量的每个相应元素执行按元素相乘(element-wisemultiplication)。生成掩码张量包括平铺(tiling)存储在存储器中的一个或多个掩码张量片段。输入张量存储在硬件电路的统一缓冲器处,并且掩码张量存储在硬件电路的动态存储器处,并且其中执行操作以使得第一张量的每个元素除以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量包括:将输入张量从统一缓冲器发送到在硬件中实现的硬件电路的矩阵计算单元,将掩码张量从动态存储器发送到硬件电路的矩阵计算单元,并且由硬件电路的矩阵计算单元执行输入张量和掩码张量的按元素相乘以生成第一张量。实现还可以包括一个或多个以下特征。输入张量存储在硬件电路的统一缓冲器中,并且核存储在硬件电路的动态存储器中,并且其中执行输入张量和核的卷积以生成第一张量包括:将输入张量从统一缓冲器发送到硬件实现的硬件电路的矩阵计算单元,将核从动态存储器发送到硬件电路的矩阵计算单元,并由硬件电路的矩阵计算单元执行输入张量和核的卷积生成第一张量。执行卷积并执行使得第一张量的每个元素被除的操作被执行为对存储在整数寄存器中的值的定点操作。可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。即使在硬件电路不能直接处理输入张量来执行平均池化的情况下,也可以由专用硬件电路在硬件中生成与平均池化神经网络层对应的输出张量。通过使用专用硬件电路生成适当的输出,可以执行平均池化神经网络层的处理,而不会将数据传回主计算机,也即,在不执行片外计算的至少一部分的情况下,即使专用硬件电路也不直接支持平均池化。这允许在不修改专用硬件电路的硬件架构的情况下有效地确定包括平均池化层的神经网络的推断。也就是说,避免了由在片外、软件或两者中执行部分处理所导致的处理延迟。本说明书中描述的主题还涉及使用所公开的用于有效执行神经网络计算中的平均池化的方法和硬件的图像识别或分类的方法和系统。本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。通过描述、附图和权利要求,主题的其它特征、方面和优点将变得显而易见。附图说明图1示出了示例性神经网络处理系统。图2是用于对神经网络的给定层执行计算的示例性方法的流程图。图3示出了示例性神经网络处理系统。图4示出了包括矩阵计算单元的示例性架构。图5示出了收缩阵列内的单元的示例性结构。图6是用于教导神经网络处理系统对神经网络的平均池化层进行计算的示例性方法的流程图。图7是用于对神经网络的平均池化层进行计算的示例性方法的流程图。图8(a)-(c)是用于神经网络的平均池化层的计算的示例。图9(a)-(c)是用于在神经网络的平均池化层中重新缩放边缘元素的计算的示例。各附图中的相同附图标记和标号指示相同的元素。具体实施方式可以使用具有多个层的神经网络来计算推断。例如,给定输入,神经网络可以计算针对该输入的推断。神经网络通过处理通过神经网络的每个层的输入来计算该推断。每层接收输入并根据该层的加权集来处理该输入以生成输出。因此,为了从所接收的输入计算推断,神经网络接收输入并通过神经网络层中的每一个对其处理以生成推断,来自一个神经网络层的输出被提供为下一个神经网络层的输入。神经网络层的数据输入,例如,神经网络的输入或顺次的层的下层到神经网络层的输出,可被称为对该层的激活输入。在一些实现中,神经网络的层顺次排列。在一些其他实现中,层被排列成有向图。也就是说,任何特定的层可以接收多个输入、多个输出或两者。神经网络的层也可以被布置为使得可以将层的输出作为输入向回发送到之前的层。一些神经网络从一个或多个神经网络层输出以生成用作后续神经网络层的输入的池化值。在一些实现中,神经网络通过确定输出组的最大值、最小值或平均值并使用最大值、最小值或平均值作为该组的池化输出来将一组输出池化。将输出池化可以保持一定的空间不变性,因此以各种配置排列的输出可以被处理以具有相同的推断。在一些实现中,将输出池化还可以减小在后续神经网络层处接收的输入的大小或维度,同时在池化之前保持输出的期望特性,这可以在不显著损害由神经网络生成的推断的质量的情况下提高效率。本说明书描述了处理神经网络层的专用硬件本文档来自技高网...

【技术保护点】
1.一种方法,包括:接收在硬件电路上处理神经网络的请求,所述神经网络包括平均池化神经网络层;以及作为响应,生成指令,当硬件电路执行所述指令时,使得硬件电路在由神经网络处理网络输入的期间,通过执行操作来生成与平均池化神经网络层的输出等价的层输出张量,所述操作包括:执行到平均池化神经网络层的输入张量和具有与平均池化神经网络层的窗口的大小相等并由每个均是单位矩阵的元素组成的核的卷积以生成第一张量;以及执行操作以使得第一张量的每个元素除以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量。

【技术特征摘要】
2016.12.13 US 15/377,196;2017.03.23 US 15/467,2941.一种方法,包括:接收在硬件电路上处理神经网络的请求,所述神经网络包括平均池化神经网络层;以及作为响应,生成指令,当硬件电路执行所述指令时,使得硬件电路在由神经网络处理网络输入的期间,通过执行操作来生成与平均池化神经网络层的输出等价的层输出张量,所述操作包括:执行到平均池化神经网络层的输入张量和具有与平均池化神经网络层的窗口的大小相等并由每个均是单位矩阵的元素组成的核的卷积以生成第一张量;以及执行操作以使得第一张量的每个元素除以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量。2.如权利要求1所述的方法,所述操作还包括:由第一缩放因子重新缩放初始输出张量的边缘元素,并且由第二缩放因子重新缩放初始输出张量的角元素以生成输出张量。3.如权利要求2所述的方法,其中,所述第一缩放因子是基于在执行卷积以生成所述第一张量的边缘元素时与核的元素相乘的输入张量的元素的数量,并且所述第二缩放因子是基于执行卷积以生成第一张量的角元素时与核的元素相乘的输入张量的元素的数量。4.如权利要求1所述的方法,所述操作还包括:由第三缩放因子重新缩放第一张量的边缘相邻元素,并由第四缩放因子重新缩放第一张量的角相邻元素以生成输出张量。5.如权利要求1所述的方法,其中,执行所述输入张量和所述核的卷积以生成所述第一张量包括:对输入张量进行零填充以生成零填充输入张量;以及执行零填充输入张量和核的卷积以生成第一张量。6.如权利要求1所述的方法,其中,执行操作以使得所述第一张量的每个元素除以所述平均池化神经网络层的窗口中的元素的数量以生成所述初始输出张量包括:执行第一张量的每个元素乘以第一因子的第一乘法,第一因子是(i)在执行卷积以生成输出张量的角元素时与具有与平均池化神经网络层的窗口相等的大小的核元素相乘的输入张量的元素的数量,(ii)在执行卷积以生成输出张量的边缘元素时,与具有与平均池化神经网络层的窗口相等的大小的核的元素相乘的输入张量的元素的数量,以及(iii)平均池化神经网络层窗口中的元素的数量这三者的最小公分母;以及执行第一张量的每个元素乘以一个或多个第二因子的第二乘法,每个第二因子基于在执行卷积以生成第一张量的相应元素时与核的元素相乘的输入张量的元素的数量。7.如权利要求6所述的方法,其中,执行第一乘法的结果的元素具有比第一张量的元素的位分辨率更高的位分辨率。8.如权利要求1所述的方法,其中,执行操作以使得第一张量的每个元素除以所述平均池化神经网络层的窗口中的元素的数量,以生成所述初始输出张量包括:生成掩码张量,其中,所述掩码张量的大小由所述输入张量的大小确定,并且其中,所述掩码张量的元素由所述平均池化神经网络层的窗口的大小确定;以及执行第一张量的每个元素和掩码张量的每个相应元素的按元素相乘。9.如权利要求8所述的方法,其中,生成所述掩码张量包括将存储在存储器中的一个或多个掩码张量片段进行平铺。10.如权利要求8所述的方法,其中,所述输入张量被存储在所述硬件电路的统一缓冲器处,并且所述掩码张量被存储在所述硬件电路的动态存储器处,并且其中,执行所述操作以使得第一张量的每个元素除以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量包括:将所述输入张量从统一缓冲器发送到以硬件实现的硬件电路...

【专利技术属性】
技术研发人员:RC扬WJ古兰德
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国,US

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

1