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

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

技术编号:32823505 阅读:48 留言:0更新日期:2022-03-26 20:22
一种在硬件中执行平均池化的方和和硬件电路,用于处理神经网络的平均池化神经网络层。所述硬件电路被配置为通过执行包括以下的操作来处理平均池化神经网络层:从硬件电路的存储器的第一部分向硬件电路的矩阵乘法电路发送到平均池化神经网络层的输入张量,其中矩阵乘法电路被配置为生成对应于平均池化神经网络层的输出的张量;从硬件电路的存储器的第二部分向硬件电路的矩阵乘法电路发送核;和由硬件电路的矩阵乘法电路从所述到平均池化神经网络层的输入张量生成所述对应于平均池化神经网络层的输出的张量。神经网络层的输出的张量。神经网络层的输出的张量。

【技术实现步骤摘要】
在硬件中执行平均池化
[0001]本申请是申请日为2017年9月29日、申请号为201710903739.7、专利技术 名称为“在硬件中执行平均池化”的中国专利技术专利申请的分案申请。


[0002]本说明书涉及在硬件中计算神经网络推断。

技术介绍

[0003]神经网络是机器学习模型,其采用一层或多层来为所接收的输入生成输 出,例如分类。除了输出层之外,一些神经网络还包括一个或多个隐藏层。 每个隐藏层的输出用作网络中下一层(即网络的下一个隐藏层或输出层)的 输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。

技术实现思路

[0004]总体来说,本说明书描述了计算神经网络推断的专用硬件电路。
[0005]总体来说,本说明书中描述的主题的一个创新性方面包括一种用于处理 神经网络的平均池化神经网络层的硬件电路,所述硬件电路被配置为通 过执行包括以下的操作来处理平均池化神经网络层:
[0006]从硬件电路的存储器的第一部分向硬件电路的矩阵乘法电路发送到 平均池化神经网络层的输入张量,其中矩阵乘法电路被配置为生成对应 于平均池化神经网络层的输出的张量;
[0007]从硬件电路的存储器的第二部分向硬件电路的矩阵乘法电路发送核; 和
[0008]由硬件电路的矩阵乘法电路从所述到平均池化神经网络层的输入张 量生成所述对应于平均池化神经网络层的输出的张量,所述生成包括:
[0009]由硬件电路的矩阵乘法电路执行所述输入张量和核的卷积以生成第 一张量,其中所述核具有等于平均池化神经网络层的窗口的大小的大小、 并且由每个都是单位矩阵的元素组成,以及其中所述卷积的至少部分是 在不必将数据传递出硬件电路的情况下执行的,从而允许在不修改硬件 电路的情况下确定神经网络的平均池化神经网络层的推断、并避免由于 在硬件电路之外执行所述卷积的部分而导致的处理延迟;
[0010]由硬件电路的矩阵乘法电路执行第一张量和第一掩码张量的按元素 相乘以生成第二张量,其中第一掩码张量的每个元素是基于所述输入张 量的、被平均以生成所述对应于平均池化神经网络层的输出的张量的对 应元素的元素的数量确定的重新缩放因子;和
[0011]由硬件电路的矩阵乘法电路执行第二张量和第二掩码张量的按元素 相乘以生成所述对应于平均池化神经网络层的输出的张量,其中第二掩 码张量的每个元素是第一掩码张量的、各自是重新缩放因子的元素的公 分母的倒数,所述重新缩放因子是基于输入张量的、被平均以生成所述 对应于平均池化神经网络层的输出的张量的对应元素的元素的数量确定 的。
[0012]总体来说,本说明书中描述的主题的一个创新性方面包括一种用于处理 神经网络的平均池化神经网络层的硬件电路,所述硬件电路被配置为通 过执行包括以下的操作来处理平均池化神经网络层:
[0013]从硬件电路的存储器的第一部分向硬件电路的矩阵乘法电路发送到 平均池化神经网络层的输入张量,其中所述矩阵乘法电路被配置为生成 对应于平均池化神经网络层的输出的张量;
[0014]从硬件电路的存储器的第二部分向硬件电路的矩阵乘法电路发送核; 和
[0015]由硬件电路的矩阵乘法电路从所述到平均池化神经网络层的输入张 量生成所述对应于平均池化神经网络层的输出的张量,所述生成包括:
[0016]由硬件电路的矩阵乘法电路执行输入张量和核的卷积以生成第一张 量,其中所述核具有等于平均池化神经网络层的窗口的大小的大小、并 且由每个都是单位矩阵的元素组成,以及其中所述卷积的至少部分是在 不必将数据传递出硬件电路的情况下执行的,从而允许在不修改硬件电 路的情况下确定神经网络的平均池化神经网络层的推断,并避免由于在 硬件电路之外执行所述卷积的部分而导致的处理延迟;
[0017]由硬件电路的矩阵乘法电路执行第一张量和第一掩码张量的按元素 相乘以生成第二张量,其中第一掩码张量的每个元素是以下的最小公分 母:(i)输入张量的被平均以生成所述对应于平均池化神经网络层的输出 的张量的角元素的元素的数量,(ii)输入张量的被平均以生成所述对应于 平均池化神经网络层的输出的张量的边缘元素的元素的数量,以及(iii)核 中的元素的数量;和
[0018]由硬件电路的矩阵乘法电路执行第二张量和第二掩码张量的按元素 相乘以生成所述对应于平均池化神经网络层的输出的张量,其中第二掩 码张量的每个元素是基于输入张量的、被平均以生成所述对应于平均池 化神经网络层的输出的张量的对应元素的元素的数量而确定的重新缩放 因子。
[0019]总体来说,本说明书中描述的主题的一个创新性方面包括接收在硬件电 路上处理神经网络的请求的系统和方法,该神经网络包括平均池化(pooling) 神经网络层,并且作为响应,生成指令,当硬件电路运行该指令时,使得硬 件电路在由神经网络处理网络输入期间,通过执行以下操作来生成与平均池 化神经网络层的输出等价的层输出张量:执行到平均池化神经网络层输入张 量和具有与平均池化神经网络层的窗口相等的大小以及由每个均是单位矩 阵的元素组成的核的卷积,以生成第一张量,并执行操作以使得第一张量的 每个元素除以平均池化神经网络的窗口中的元素的数量以生成初始输出张 量。
[0020]实现可以包括以下一个或多个特征。在一些实现中,主题的创新性方面 包括由第一缩放因子重新缩放初始输出张量的边缘元素,并且由第二缩放因 子重新缩放初始输出张量的角元素以生成输出张量。第一缩放因子是基于在 执行卷积时与核的元素相乘以生成第一张量的边缘元素的输入张量的元素 的数量,并且第二缩放因子基于在执行卷积时与核的元素相乘以生成第一张 量的角元素的输入张量的元素的数量。在一些实现中,创新性方面包括通过 第三缩放因子重新缩放第一张量的边缘相邻元素,并通过第四缩放因子重新 缩放第一张量的角相邻元素以生成输出张量。
[0021]实现还可以包括一个或多个以下特征。执行输入张量和核的卷积以生成 第一张量包括:零填充输入张量以生成零填充输入张量,以及执行零填充输 入张量和核的卷积以
生成第一张量。执行操作以使得第一张量的每个元素除 以平均池化神经网络层的窗口中的元素的数量以生成初始输出张量包括:执 行第一张量的每个元素乘以第一因子的第一乘法,第一因子是(i)在执行卷 积以生成输出张量的角元素时与具有与平均池化神经网络层的窗口相等的 大小的核的元素相乘的输入张量的元素的数量,(ii)在执行卷积以生成输出 张量的边缘元素时,与具有与平均池化神经网络层的窗口相等的大小的核的 元素相乘的输入张量的元素的数量,以及(iii)平均池化神经网络层的窗口 中的元素的数量的最小公分母,并且执行第一张量的每个元素乘以一个或多 个第二因子的第二乘法,每个第二因子基于在执行卷积以生成第一张量的相 应元素时与核的元素相乘的输入张量的元素的数量。执行第一乘法的结果元 素具有比第一张量的元素的位分辨率更高的位分辨率。
[0022]实现还可以包括一个或多个以下特征。执行操作以使得第一张量的每个 元素除以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于处理神经网络的平均池化神经网络层的硬件电路,所述硬件电路被配置为通过执行包括以下的操作来处理平均池化神经网络层:从硬件电路的存储器的第一部分向硬件电路的矩阵乘法电路发送到平均池化神经网络层的输入张量,其中矩阵乘法电路被配置为生成对应于平均池化神经网络层的输出的张量;从硬件电路的存储器的第二部分向硬件电路的矩阵乘法电路发送核;和由硬件电路的矩阵乘法电路从所述到平均池化神经网络层的输入张量生成所述对应于平均池化神经网络层的输出的张量,所述生成包括:由硬件电路的矩阵乘法电路执行所述输入张量和核的卷积以生成第一张量,其中所述核具有等于平均池化神经网络层的窗口的大小的大小、并且由每个都是单位矩阵的元素组成,以及其中所述卷积的至少部分是在不必将数据传递出硬件电路的情况下执行的,从而允许在不修改硬件电路的情况下确定神经网络的平均池化神经网络层的推断、并避免由于在硬件电路之外执行所述卷积的部分而导致的处理延迟;由硬件电路的矩阵乘法电路执行第一张量和第一掩码张量的按元素相乘以生成第二张量,其中第一掩码张量的每个元素是基于所述输入张量的、被平均以生成所述对应于平均池化神经网络层的输出的张量的对应元素的元素的数量确定的重新缩放因子;和由硬件电路的矩阵乘法电路执行第二张量和第二掩码张量的按元素相乘以生成所述对应于平均池化神经网络层的输出的张量,其中第二掩码张量的每个元素是第一掩码张量的、各自是重新缩放因子的元素的公分母的倒数,所述重新缩放因子是基于输入张量的、被平均以生成所述对应于平均池化神经网络层的输出的张量的对应元素的元素的数量确定的。2.根据权利要求1所述的硬件电路,其中所述输入张量是初始输入张量的零填充版本,并且其中第一掩码张量的每个元素是基于所述初始输入张量的、被平均以生成所述对应于平均池化神经网络层的输出的张量的对应元素的元素的数量确定的重新缩放因子。3.根据权利要求2所述的硬件电路,其中所述初始输入张量的零填充版本是初始输入张量的对于初始输入张量的每一行和每一列包括一个或多个前置零和后补零的版本,其中前置零和后补零的数量至少基于平均池化神经网络层的窗口大小来确定。4.根据权利要求1所述的硬件电路,其中第一张量的元素的位分辨率高于第二张量的元素的位分辨率。5.根据权利要求1所述的硬件电路,其中第一掩码张量的大小和第二掩码张量的大小各自至少基于所述输入张量的大小来确定。6.根据权利要求1所述的硬件电路,其中第一掩码张量和第二掩码张量中的每一个包括一个或多个掩码张量片段,所述一个或多个掩码张量片段被平铺以生成掩码张量。7.根据权利要求1所述的硬件电路,其中,所述存储器的第一部分是所述硬件电路的统一缓冲器,并且所述存储器的第二部分是所述硬件电路的动态存储器。8.根据权利要求1所述的硬件电路,其中输入张量和核的卷积以生成第一张量、第一张量和第一掩码张量的按元素相乘以生成第二张量、以及第二张量和第二掩码张量的按元素相乘以生成所述对应于平均池化神经网络层的输出的张量当中的每一项被执行为定点运算。
9.根据权利要求1所述的硬件电路,其中,为了执行输入张量和核的卷积以生成第一张量,硬件电路的矩阵乘法电路被配置为:在硬件电路的矩阵乘法电路的一个或多个单元处接收输入张量的元素;在硬件电路的矩阵乘法电路的所述一个或多个单元处接收核的权重;在硬件电路的矩阵乘法电路的所述一个或多个单元处处理接收的输入张量的元素和接收的核的权重;和将处理结果输出到硬件电路的矩阵乘法电路的一个或多个累加器。10.根据权利要求9所述的硬件电路,其中硬件电路的矩阵乘法电路的每个单元包括:激活寄存器,被配置为接收输入张量的元素;权重寄存器,被配置为接收核的权重;和乘法电路,被配置为将输入张量的元素与核的权重相乘。11.根据权利要求1所述的硬件电路,其中,为了执行第一张量和第一掩码张量的按元素相乘以生成第二张量,硬件电路的矩阵乘法电路被配置为:执行第一张量和单位矩阵的矩阵乘法以...

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

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

1