【技术实现步骤摘要】
在硬件中执行平均池化
本说明书涉及在硬件中计算神经网络推断。
技术介绍
神经网络是机器学习模型,其采用一层或多层来为所接收的输入生成输出,例如分类。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层(即网络的下一个隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。
技术实现思路
总体来说,本说明书描述了计算神经网络推断的专用硬件电路。总体来说,本说明书中描述的主题的一个创新性方面包括接收在硬件电路上处理神经网络的请求的系统和方法,该神经网络包括平均池化(pooling)神经网络层,并且作为响应,生成指令,当硬件电路运行该指令时,使得硬件电路在由神经网络处理网络输入期间,通过执行以下操作来生成与平均池化神经网络层的输出等价的层输出张量:执行到平均池化神经网络层输入张量和具有与平均池化神经网络层的窗口相等的大小以及由每个均是单位矩阵的元素组成的核的卷积,以生成第一张量,并执行操作以使得第一张量的每个元素除以平均池化神经网络的窗口中的元素的数量以生成初始输出张量。实现可以包括以下一个或多个特征。在一些实现中,主题的创新性方面包括由第一缩放因子重新缩放初始输出张量的边缘元素,并且由第二缩放因子重新缩放初始输出张量的角元素以生成输出张量。第一缩放因子是基于在执行卷积时与核的元素相乘以生成第一张量的边缘元素的输入张量的元素的数量,并且第二缩放因子基于在执行卷积时与核的元素相乘以生成第一张量的角元素的输入张量的元素的数量。在一些实现中,创新性方面包括通过第三缩放因子重新缩放第一张量的边缘相邻元素,并通过第四缩 ...
【技术保护点】
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所述的方法,其中,所述输入张量被存储在所述硬件电路的统一缓冲器处,并且所述掩码张量被存储在所述硬件电路的动态存储器处,并且其中,执行所述操作以使得第一张量的每个元素除以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量包括:将所述输入张量从统一缓冲器发送到以硬件实现的硬件电路...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。