[发明专利]硬件中转置神经网络矩阵有效
申请号: | 201810196453.4 | 申请日: | 2018-03-09 |
公开(公告)号: | CN108573304B | 公开(公告)日: | 2022-07-26 |
发明(设计)人: | 雷吉纳尔德·克利福德·扬;杰弗里·伊尔温 | 申请(专利权)人: | 谷歌有限责任公司 |
主分类号: | G06N3/06 | 分类号: | G06N3/06 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 周亚荣;安翔 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 硬件 中转 神经网络 矩阵 | ||
1.一种方法,包括:
接收用于在专用硬件电路上处理神经网络的请求,所述专用硬件电路被配置为使用硬件矩阵计算单元在硬件中执行神经网络计算,其中,所述矩阵计算单元是被配置为在硬件中执行第一输入矩阵和第二输入矩阵的乘法的二维脉动矩阵;
识别所述请求指定要对与所述神经网络相关联的第一神经网络矩阵执行的转置操作;
向所述硬件电路提供指令,所述指令当由所述硬件电路执行时使得所述硬件电路通过执行第一操作来转置所述第一神经网络矩阵,其中,所述第一操作包括:
确定所述第一神经网络矩阵不是i×i矩阵,其中i是所述脉动矩阵中的cell的列或行的数目,其中,多个所述cell中的每一个被配置为:使用乘法电路将对该cell的给定权重输入和对该cell的给定激活输入相乘以生成乘积,并使用加法电路将所述乘积与来自第一相邻cell的累积输出相加以生成累积输出,并将所生成的累积输出传递到第二相邻cell;
作为响应,通过零填充所述第一神经网络矩阵,更新所述第一神经网络矩阵以生成i×i矩阵;
重复地执行以下第二操作:
对于将所述第一神经网络矩阵划分成一个或多个当前子矩阵的所述第一神经网络矩阵的当前细分:
通过至少使用所述矩阵计算单元中的所述cell来执行一个或多个矩阵乘法,通过交换在所述当前细分中的每个当前子矩阵的右上象限和左下象限来更新所述第一神经网络矩阵,其中,所述第一神经网络矩阵的所述更新包括:
通过所述专用硬件电路的所述矩阵计算单元的所述cell,将所述第一神经网络矩阵的每一行乘以一个或多个部分单位矩阵以生成一个或多个矢量,所述一个或多个矢量中的每一个包括每个相应的当前子矩阵的右上象限和左下象限的元素被交换的相应行的部分;
对于所述第一神经网络矩阵的每一行,将与每个相应的当前子矩阵的右上象限和左下象限的元素被交换的所述第一神经网络矩阵的每个相应行的部分相对应的矢量进行组合;以及
通过组合每个相应行来生成所更新的第一神经网络矩阵;
将所述当前细分中的每个当前子矩阵细分成相应的多个新子矩阵以更新所述当前细分,所述相应的多个新子矩阵的每一个是所述当前子矩阵的相应象限;以及
在执行所述第二操作的所有迭代之后,通过去除在所述更新期间填充的零,将所述第一神经网络矩阵转换为其在所述更新之前的状况。
2.根据权利要求1所述的方法,其中:
所述第一操作还包括获得指示所述第一神经网络矩阵的一个或多个值是零值的数据;以及
更新所述第一神经网络矩阵包括防止所述矩阵计算单元对一组值执行任何操作,所述一组值包括是零值的所述第一神经网络矩阵的所述一个或多个值中的至少一个值。
3.根据权利要求1所述的方法,其中,所述矩阵计算单元将矩阵乘法运算执行为一系列矢量乘法运算。
4.根据权利要求1所述的方法,其中,所述第二操作还包括生成所述第一神经网络矩阵的初始当前细分,其中,所述初始当前细分包含是所述第一神经网络矩阵的初始子矩阵。
5.根据权利要求1所述的方法,其中,所述第一操作还包括将所述指令传输到所述硬件电路。
6.根据权利要求1所述的方法,其中,所述矩阵计算单元包括:
多个值加载器,所述多个值加载器与所述cell连接并被配置为向所述矩阵计算单元中的所述cell发送激活输入,以及
多个累积器,所述多个累积器与所述cell连接并被配置为存储和累积来自所述cell的每个累积输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谷歌有限责任公司,未经谷歌有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810196453.4/1.html,转载请声明来源钻瓜专利网。