【技术实现步骤摘要】
使用矩阵计算单元的深度级联
本说明书涉及用硬件执行神经网络计算。
技术介绍
神经网络是采用模型的一个或多个层来针对接收到的输入生成输出(例如,分类)的机器学习模型。一些神经网络除了包括输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中一个或多个其它层(即,网络的一个或多个其它隐藏层或输出层)的输入。网络的每层依照相应的参数集合的当前值从接收到的输入生成输出。一些神经网络包括深度级联层,所述深度级联层是接收为神经网络中的其它层的输出的两个或更多个张量(即,两个或更多个多维矩阵)作为输入并且沿着深度维度级联输入张量的层。特别地,每个输入张量具有两个空间维度x和y及深度维度z。通过沿着深度维度z级联两个输入张量(一个具有维度x1乘y1乘z1而另一个具有维度x1乘y1乘z2),所述深度级联层生成具有维度x1乘y1乘(z1+z2)的输出张量。该输出张量然后可被神经网络的另一层用作输入。
技术实现思路
本说明书描述用于使用矩阵计算单元来沿着深度维度执行两个张量的级联的技术。这些技术通常涉及接收要在用于执行神经网络计算的集成电路上处理到包括深度级联层的神经网络的网络输入的请求。所述集成电路包括用硬件执行矢量-矩阵乘法但是不能直接地用硬件执行深度级联操作的矩阵计算单元。替代地,神经网络处理系统生成指令,所述指令当由所述集成电路执行时,使所述集成电路用硬件执行操作,所述操作使用所述矩阵计算单元来生成满足所述深度级联层的规范的输出。可在特定实施例中实现本说明书中所描述的主题以便实现以下优点中的一个或多个。即使所述集成电路不能直接地用硬件执行深度级联操作,也可通过专用集 ...
【技术保护点】
1.一种方法,包括:接收使用集成电路处理到神经网络的网络输入的请求,所述集成电路使用矩阵计算单元在硬件中执行神经网络计算,所述神经网络包括深度级联神经网络层,所述深度级联神经网络层规范具有维度x1乘y1乘z1的输入张量和具有维度x1乘y1乘z2的输入张量沿深度维度的级联以生成具有维度x1乘y1乘(z1+z2)的输出张量;以及生成指令,所述指令在由所述集成电路执行时使得所述集成电路在由所述神经网络处理网络输入期间,通过执行包括以下的操作来生成满足所述深度级联神经网络层的规范的层输出张量:针对到所述深度级联神经网络层的第一输入张量以及到所述深度级联神经网络层的第二输入张量中的每个空间位置:使用所述矩阵计算单元,将所述第二输入张量中的所述空间位置的第二深度矢量与所述深度级联神经网络层的移位权重矩阵相乘以生成移位的第二深度矢量,所述移位的第二深度矢量以零作为前z1项以及所述第二深度矢量的项作为后z2项;以及将所述移位的第二深度矢量和所述第一输入张量中的所述空间位置的第一输入深度矢量相加以生成级联深度矢量,所述级联深度矢量以所述第一输入深度矢量的项作为前z1项并且以零作为后z2项。
【技术特征摘要】
2017.03.07 US 15/452,624;2017.06.15 US 15/624,6291.一种方法,包括:接收使用集成电路处理到神经网络的网络输入的请求,所述集成电路使用矩阵计算单元在硬件中执行神经网络计算,所述神经网络包括深度级联神经网络层,所述深度级联神经网络层规范具有维度x1乘y1乘z1的输入张量和具有维度x1乘y1乘z2的输入张量沿深度维度的级联以生成具有维度x1乘y1乘(z1+z2)的输出张量;以及生成指令,所述指令在由所述集成电路执行时使得所述集成电路在由所述神经网络处理网络输入期间,通过执行包括以下的操作来生成满足所述深度级联神经网络层的规范的层输出张量:针对到所述深度级联神经网络层的第一输入张量以及到所述深度级联神经网络层的第二输入张量中的每个空间位置:使用所述矩阵计算单元,将所述第二输入张量中的所述空间位置的第二深度矢量与所述深度级联神经网络层的移位权重矩阵相乘以生成移位的第二深度矢量,所述移位的第二深度矢量以零作为前z1项以及所述第二深度矢量的项作为后z2项;以及将所述移位的第二深度矢量和所述第一输入张量中的所述空间位置的第一输入深度矢量相加以生成级联深度矢量,所述级联深度矢量以所述第一输入深度矢量的项作为前z1项并且以零作为后z2项。2.如权利要求1所述的方法,所述操作还包括:将所述第一输入深度矢量移动到所述矩阵计算单元的输出求和寄存器集合;以及其中,将所述移位的第二深度矢量和所述第一输入深度矢量相加包括:在将所述第一输入深度矢量存储在所述矩阵计算单元的所述输出求和寄存器集合中的同时,将所述移位的第二深度矢量移入所述矩阵计算单元的所述输出求和寄存器集合。3.如权利要求2所述的方法,其中,移动所述第一输入深度矢量包括:使用所述矩阵计算单元,将所述第一输入深度矢量与所述深度级联神经网络层的修改的单位权重矩阵相乘。4.如权利要求3所述的方法,还包括:为所述深度级联神经网络层生成所述修改的单位权重矩阵;以及将所述深度级联神经网络层的所述修改的单位权重矩阵存储在专用集成电路能访问的存储器中。5.如权利要求1所述的方法,还包括:为所述深度级联神经网络层生成所述移位权重矩阵;以及将所述深度级联神经网络层的所述移位权重矩阵存储在专用集成电路能访问的存储器中。6.如权利要求5所述的方法,还包括:确定所述输出张量中的深度维数不超过所述矩阵计算单元的最大矢量长度;以及响应于确定所述输出张量中的深度维数不超过所述矩阵计算单元的所述最大矢量长度,为所述深度级联神经网络层生成所述移位权重矩阵。7.如权利要求1所述的方法,其中,所述深度级联神经网络层的所述移位权重矩阵是(z1+z2)乘(z1+z2)的矩阵,该矩阵除了从该矩阵的第z2列的第一项开始的对角线上的项为一之外其余项均为零。8.一种系统,包括一个或多个计算机和存储第一指令的一个或多个存储设备,所述第一指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行第一操作,所述第一操作包括:接收使用集成电路处理到神经网络的网络输入的请求,所述集成电路使用矩阵计算单元在硬件中执行神经网络计算,所述神经网络包括深度级联神经网络层,所述深度级联神经网络层规范具有维度x1乘y1乘z1的输入张量和具有维度x1乘y1乘z2的输入张量沿深度维度的级联以生成具有维度x1乘y1乘(z1+z2)的输出张量;以及生成第二指令,所述第二指令在由所述集成电路执行时使得所述集成电路在由所述神经网络处理网络输入期间,通过执行第二操作来生成满足所述深度级联神经网络层的规范的层输出张量,所述第二操作包括:针对到所述深度级联神经网络层的第一输入张量以及到所述深度级联神经网络层的第二输入张量中的每个空间位置:使用所述矩阵计算单元,将所述第二输入张量中的所述空间位置的第二深度矢量与所述深度级联神经网络层的移位权重矩阵相乘以生成移位的第二深度矢量,所述移位的第二深度矢量以零作为前z1项随后是所述第二深度矢量的项;以及将所述移位的第二深度矢量和所述第一输入张量中的所述空间位置的第一输入深度矢量相加以生成级联深度矢量,所述级联深度矢量以所...
【专利技术属性】
技术研发人员:威廉·约翰·格兰德,雷吉纳尔德·克利福德·扬,
申请(专利权)人:谷歌有限责任公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。