在硬件中执行核心跨越制造技术

技术编号:18050662 阅读:31 留言:0更新日期:2018-05-26 08:27
本申请涉及在硬件中执行核心跨越的方法、系统和存储介质。该方法用于接收请求以在硬件电路上处理神经网络,所述神经网络包括具有大于1的步长的第一卷积神经网络层,和作为响应产生指令,所述指令引起所述硬件电路在处理输入张量期间通过执行下列操作产生等效于所述第一卷积神经网络层的输出的层输出张量,所述操作包括:使用具有等于1否则等效于所述第一卷积神经网络层的步长的第二卷积神经网络层处理所述输入张量以产生第一张量;将如果所述第二卷积神经网络层具有所述第一卷积神经网络层的步长则本就不会被生成的所述第一张量的元素归零以生成第二张量;以及在所述第二张量上执行最大池化以生成所述层输出张量。

【技术实现步骤摘要】
在硬件中执行核心跨越
本说明书涉及计算硬件中的神经网络推理。
技术介绍
神经网络是采用一层或多层为所接收的输入生成输出,例如分类的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出都被用作网络中另一层,例如网络的下一个隐藏层或输出层的输入。网络的每个层都根据相应参数集的当前值从所接收的输入生成输出。
技术实现思路
一般而言,本说明书描述了一种计算神经网络推理的专用硬件电路。一般而言,本说明书中所述的主题的一个创新方面能够被体现为用于接收在硬件电路上处理神经网络的请求的方法和系统,该神经网络包括具有大于1的步长的第一卷积神经网络层,并且作为响应产生指令,当被硬件电路执行时,该指令引起硬件电路在神经网络处理输入张量期间通过执行下列操作产生等效于第一卷积神经网络层的输出的层输出张量,这些操作包括使用具有等于1否则等效于第一卷积神经网络层的步长的第二卷积神经网络层处理对第一卷积神经网络层的输入张量以产生第一张量,将如果第二卷积神经网络层具有第一卷积神经网络层的步长则本就不会被生成的第一张量的元素归零以生成第二张量,以及在第二张量上执行最大池化以生成层输出张量。实施能够包括一个或多个下列特征。在一些实施中,将第一张量的元素归零包括将第一张量的元素子集乘以0,并且将该子集中未包括的第一张量的元素乘以1。将第一张量的元素归零包括执行掩蔽张量(maskingtensor)和第一张量的元素乘法(element-wisemultiplication)以生成第二张量,其中掩蔽张量包括(i)在对应于如果第二卷积神经网络层具有第一卷积神经网络层的步长则本就不会被生成的第一张量的元素的掩蔽张量的每个元素位置处的零,和(ii)在掩蔽张量的每个其它元素位置处的1。在一些实施中,掩蔽张量被存储在可由硬件电路访问的存储器处,并且其中由在硬件电路中所包括的硬件中实施的向量计算单元执行掩蔽张量和第一张量的元素乘法。实施还能够包括一个或多个下列特征。在一些实施中,对第一张量的元素归零包括执行第一掩蔽张量和第一张量的元素乘法以生成修改的第一张量,其中第一掩蔽张量包括(i)在对应于如果第二卷积神经网络层具有第一卷积神经网络层的步长则本就不会被生成的第一张量的元素的掩蔽张量的每个元素位置处的零,和(ii)在对应于如果第二卷积神经网络层具有第一卷积神经网络层的步长则本就会被生成的第一张量的元素的掩蔽张量的每个元素位置处的相应的非零值,并且执行第二掩蔽张量和修改的第一张量的元素乘法,其中第二掩蔽张量在对应于如果第二卷积神经网络层具有第一卷积神经网络层的步长将生成的第一张量的元素的每个元素位置处都包括第一掩蔽张量的相应的非零值的逆。实施还能够包括一个或多个下列特征。在一些实施中,执行最大池化包括对于由第一卷积神经网络层的步长限定的第二张量的一个或多个窗口中的每个窗口都获得处于该窗口内的元素的最大值元素。第二张量的一个或多个窗口中的每个窗口都为具有对应于卷积神经网络层的步长的尺寸的矩形窗口,并且包括第二张量的不同元素。在一些实施中,执行最大池化包括对于第二张量的元素的一个或多个子集中的每个子集都获得子集的最大值元素。由硬件电路的池化电路执行在第二张量上执行的最大池化。卷积神经网络层是神经网络中的第一神经网络层,并且其中输入张量是包括对应于数字图像的像素的元素的数字图像的表示。实施还能够包括一个或多个下列特征。在一些实施中,输入张量被存储在硬件电路的统一的缓冲器中,并且第二卷积神经网络层的权重被存储在硬件电路的动态存储器中,并且其中使用第二卷积神经网络层处理对第一卷积神经网络层的输入张量包括将输入张量从统一的缓冲器发送到在硬件中实施的硬件电路的矩阵计算单元,将第二卷积神经网络层的权重从动态存储器发送到硬件电路的矩阵计算单元,并由硬件电路的矩阵计算单元,使用第二卷积神经网络层的权重处理输入张量以生成第一张量。本说明书中所述的主题的特殊实施例能够被实施为实现一个或多个下列优点。甚至在硬件电路不能使用具有大于1的步长的卷积神经网络直接地处理输入张量时,也能够由专用硬件电路在硬件中生成对应于具有大于1的步长的卷积神经网络层的输出张量。通过使用专用硬件电路生成适当的输出,能够不将数据传回主机,即不执行至少部分片外计算地执行对具有大于1的步长的神经网络层的处理,即使专用硬件电路直接地支持这种处理也是如此。这允许不改变专用硬件电路的硬件架构地,高效地确定包括具有大于1的步长的卷积层的神经网络的推断。即,避免了在片外,在软件中或两者中执行部分处理导致的处理延迟。本说明书中所述的主题例如也涉及一种在计算神经网络推理时,使用所公开的技术和硬件执行核心跨越的图像识别或分类方法和系统。在附图和下面的描述中提出本说明书的主题的一个或多个实施例的细节。通过说明、附图和权利要求,主题的其它特征、方面和优点将变得显而易见。附图说明图1示出示例神经网络处理系统。图2是用于对给定神经网络层执行计算的示例方法的流程图。图3示出示例神经网络处理系统。图4示出包括矩阵计算单元的示例架构。图5示出脉动阵列内部的cell的示例架构。图6示出向量计算单元的示例架构。图7示出池化电路的示例架构。图8是指令神经网络处理系统对具有大于1的步长的给定神经网络层执行计算的示例方法的流程图。图9是用于对具有大于1的步长的给定神经网络层执行计算的示例方法的流程图。图10是具有大于1的步长的给定神经网络层的计算示例。各附图中的相同附图标记和名称指示相同元件。具体实施方式能够使用具有多个层的神经网络来计算推理。例如,给定输入,神经网络能够计算输入的推理。神经网络通过处理经过神经网络层的每个的输入计算该推理。每层都接收输入,并根据该层的权重集处理输入以生成输出。因此,为了从所接收的输入计算推理,神经网络接收输入并通过每个神经网络层对其处理以生成推理,一个神经网络层的输出被作为输入提供给下一个神经网络层。对神经网络层的数据输入,例如对神经网络的输入,或者对神经网络层的按顺序处于该层之下的层的输出能够被称为对该层的激活输入。在一些实施中,神经网络层被按顺序布置。在一些其它实施中,层被作为有向图加以布置。即,任何特殊层都能够接收多个输入、多个输出或者两者。神经网络层也能够被布置成层的输出能够作为输入被发回至上先前层。一些神经网络将来自一个或多个神经网络层的输出池化以生成被用作后续神经网络层的输入的池化的值。在一些实施中,神经网络通过确定输出组的最大值、最小值或平均值并使用最大值、最小值或平均值作为该组的池化输出来池化一组输出。池化输出能够保持一定的空间不变性,使得以各种配置排列的输出都能够被处理以具有相同的推理。池化输出也能够降低在后续神经网络层处接收的输入的维度,同时在池化之前保持输出的期望特性,这能够提高效率而不显著地损害由神经网络生成的推理的质量。一些神经网络包括具有大于1的步长的一个或多个卷积神经网络层。在概念上,对于步长1,卷积神经网络层能够依次将权重集应用于激活输入。即,对于激活输入阵列,权重能够被应用于激活输入的子集,并且被移动一个位置,例如一行或一列到达激活输入的每个其它子集,直到卷积计算完成。对于具有大于1的步长的卷积神经网络层,其中步长是整数,权重能够被应用于激活输入的本文档来自技高网...
在硬件中执行核心跨越

【技术保护点】
一种方法,包括:接收在硬件电路上处理神经网络的请求,所述神经网络包括具有大于1的步长的第一卷积神经网络层;以及响应于接收到所述请求,产生指令,所述指令在被所述硬件电路执行时使所述硬件电路在所述神经网络处理输入张量期间通过执行下列操作产生等效于所述第一卷积神经网络层的输出的层输出张量:使用具有等于1否则等效于所述第一卷积神经网络层的步长的第二卷积神经网络层,处理对所述第一卷积神经网络层的所述输入张量,以产生第一张量;将如果所述第二卷积神经网络层具有所述第一卷积神经网络层的步长则本就不会被生成的所述第一张量的元素归零以生成第二张量;以及在所述第二张量上执行最大池化以生成所述层输出张量。

【技术特征摘要】
2016.11.10 US 15/348,199;2017.03.23 US 15/467,3821.一种方法,包括:接收在硬件电路上处理神经网络的请求,所述神经网络包括具有大于1的步长的第一卷积神经网络层;以及响应于接收到所述请求,产生指令,所述指令在被所述硬件电路执行时使所述硬件电路在所述神经网络处理输入张量期间通过执行下列操作产生等效于所述第一卷积神经网络层的输出的层输出张量:使用具有等于1否则等效于所述第一卷积神经网络层的步长的第二卷积神经网络层,处理对所述第一卷积神经网络层的所述输入张量,以产生第一张量;将如果所述第二卷积神经网络层具有所述第一卷积神经网络层的步长则本就不会被生成的所述第一张量的元素归零以生成第二张量;以及在所述第二张量上执行最大池化以生成所述层输出张量。2.根据权利要求1所述的方法,其中对所述第一张量的元素归零包括:将所述第一张量的元素的子集乘以0;以及将所述子集中未包括的所述第一张量的元素乘以1。3.根据权利要求1所述的方法,其中将所述第一张量的元素归零包括:执行掩蔽张量和所述第一张量的元素乘法以生成所述第二张量,其中所述掩蔽张量包括(i)在对应于如果所述第二卷积神经网络层具有所述第一卷积神经网络层的步长则本就不会被生成的所述第一张量的元素的所述掩蔽张量的每个元素位置处的零,和(ii)在所述掩蔽张量的每个其它元素位置处的1。4.根据权利要求3所述的方法,其中所述掩蔽张量被存储在可由所述硬件电路访问的存储器处,并且其中由在所述硬件电路中所包括的硬件中实施的向量计算单元执行所述掩蔽张量和所述第一张量的元素乘法。5.根据权利要求1所述的方法,其中对所述第一张量的元素归零包括:执行第一掩蔽张量和所述第一张量的元素乘法以生成修改的第一张量,其中所述第一掩蔽张量包括(i)在对应于如果所述第二卷积神经网络层具有所述第一卷积神经网络层的步长则本就不会被生成的所述第一张量的元素的所述第一掩蔽张量的每个元素位置处的零,和(ii)在对应于如果所述第二卷积神经网络层具有所述第一卷积神经网络层的步长将生成的所述第一张量的元素的所述第一掩蔽张量的每个元素位置处的相应的非零值;以及执行第二掩蔽张量和所述修改的第一张量的元素乘法,其中所述第二掩蔽张量在对应于如果所述第二卷积神经网络层具有所述第一卷积神经网络层的步长则本就会被生成的所述第一张量的元素的每个元素位置处都包括所述第一掩蔽张量的相应的非零值的逆。6.根据权利要求1所述的方法,其中执行最大池化包括对于由所述第一卷积神经网络层的步长限定的所述第二张量的一个或多个窗口中的每个窗口都获得处于所述窗口内的元素的最大值元素。7.根据权利要求6所述的方法,其中所述第二张量的一个或多个窗口中的每个窗口都为具有对应于所述第一卷积神经网络层的步长的尺寸的矩形窗口,并且包括所述第二张量的不同元素。8.根据权利要求1所述的方法,其中执行最大池化包括:对于所述第二张量的元素的一个或多个子集中的每个子集都获得该子集的最大值元素。9.根据权利要求1所述的方法,其中由所述硬件电路的池化电路执行在所述第二张量上执行的最大池化。10.根据权利要求1所述的方法,其中所述输入张量是包括对应于数字图像的像素的元素的所述数字图像的表示。11.根据权利要求1所述的方法,其中所述输入张量被存储在所述硬件电路的统一的缓冲器中,并且所述第二卷积神经网络层的权重被存储在所述硬件电路的动态存储器中,并且其中使用所述第二卷积神经网络层处理对所述第一卷积神经网络层...

【专利技术属性】
技术研发人员:雷吉纳尔德·克利福德·扬威廉·约翰·格兰德
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

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

1