System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 在神经网络加速器上实现分散函数制造技术_技高网

在神经网络加速器上实现分散函数制造技术

技术编号:41193620 阅读:2 留言:0更新日期:2024-05-07 22:23
本申请涉及在神经网络加速器上实现分散函数。公开了一种在神经网络加速器的固定功能硬件中实现分散运算的方法。将一个或多个索引向量转换为呈独热稀疏格式的稀疏索引张量。通过将更新值应用于该稀疏索引张量中的一个稀疏索引张量(或从该稀疏索引张量中导出的张量)来生成更新张量。在一些示例中,基于该更新张量来更新输入数据张量。在其他示例中,输出该更新张量本身。

【技术实现步骤摘要】

本公开涉及神经网络加速器。特别地,本公开涉及在神经网络加速器上实现分散函数


技术介绍

1、当在线性代数运算中处理稀疏填充的向量或张量数据时,经常会出现“聚集”和“分散”运算。聚集运算将向量(或更一般地,矩阵或张量)的非空元素合并到密集填充的向量中-一个向量保存数据元素本身,并且一个或多个向量保存那些元素的索引。分散运算则相反——将密集填充的数据向量的内容再次分布到原始向量/矩阵/张量格式中。通常,张量将是稀疏的-即,张量的大部分元素将等于零。在这些情况下,“密集”索引格式往往将比原始稀疏张量更紧凑。密集索引格式存储非零元素的索引(以及非零元素本身),而不是存储稀疏张量的所有零。然而,应理解,不管张量数据是否稀疏,聚集和分散运算都是有用的,并且“密集”索引表示可能或可能不比原始张量数据更紧凑。

2、更正式地说,聚集运算可以由以下伪代码表示:

3、for(i=0;i<n;++i)

4、b[i]=a[idx[i]];

5、此处,a是原始向量;n是该向量中的非空元素的数量;idx是包含非空元素的索引的向量;并且b是提供a的密集表示的向量。

6、分散运算可以由以下伪代码表示:

7、for(i=0;i<n;++i)

8、a’[idx[i]]=b[i];

9、此处,a’是a的重组版本。

10、这个简单的1-d示例可以扩展到较高维度。例如,在2-d中,仍然存在单个密集数据向量b,但存在两个索引向量-每个维度中的索引一个索引向量。类似地,在3-d中,存在单个密集数据向量,但存在三个索引向量,每个维度一个索引向量。图1a示出了二维中的分散运算的简单示例。向量b存储待插入到2-d矩阵a中的值。水平索引存储在向量ih中;竖直索引存储在向量iw中。向量b中的值根据相应索引对而分布在矩阵a中。因此,例如,向量b中的第一值(“9”)存储在矩阵a的行3列5处。(此处,第一行被表示为行0,并且第一列被表示为列0。)

11、分散和聚集运算可以出现在处理访问张量中的索引位置的任何应用程序中。例如,张量可以描述表示诸如3-d体积数据的空间数据的点云。这类点云(其通常是稀疏的)可以被存储为3-d占用图、2-d占用图(例如提供“鸟瞰图”),或者被存储为与特定视点相关联(例如由图像+深度传感器生成)的深度图。

12、例如,这些类型的数据通常在机器人应用程序或自主驾驶辅助系统(adas)的环境中生成。点云可以由光检测和测距(lidar)或其他合适的深度传感器生成。可以使用神经网络对点云执行对象检测,以便对场景中的特定对象进行识别和/或分类。“pointpillars”网络便是此情形的一个示例。参见lang等人(alex h.lang、sourabh vora、holger caesar、lubing zhou和jiong yang,“pointpillars:fast encoders for object detection frompoint clouds”,cvpr 2019)。对于另一示例,参见philion等人(jonah philion和sanjafidler,“lift,splat,shoot:encoding images from arbitrary camera rigs byimplicitly unprojecting to 3d”,eccv 2020)。

13、如果在神经网络中包括聚集运算,则对于通过聚集运算进行误差反向传播,至少对于该网络的训练,将需要分散运算。


技术实现思路

1、提供本
技术实现思路
是为了以简化形式介绍下文在具体实施方式中进一步描述的一系列概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用以限制所要求保护的主题的范围。

2、公开了一种在神经网络加速器的固定功能硬件中实现分散运算的方法。将一个或多个索引向量转换为呈独热稀疏格式的稀疏索引张量。通过将更新值应用于稀疏索引张量中的一个稀疏索引张量(或从所述稀疏索引张量中导出的张量)来生成更新张量。在一些示例中,基于更新张量来更新输入数据张量。在其他示例中,输出更新张量本身。

3、根据第一方面,提供了一种在神经网络加速器的固定功能硬件中实现分散运算的方法,所述方法包括:

4、接收包含更新值的输入更新张量b;

5、接收包含n个第一索引的第一索引向量,所述第一索引标识待利用来自输入更新张量b的更新值进行更新的输出数据张量的元素;

6、将第一索引向量转换为第一稀疏索引张量th,所述第一稀疏索引张量在由索引定义的位置处具有一,并且在其他位置处具有零;以及

7、生成更新张量r,包括将更新值应用于第一稀疏索引张量,其中更新张量r包含由索引定义的位置处的更新值。

8、此方法特别适合于一维分散运算。在此情况下,输入更新张量b是输入更新向量。同样,更新张量r是更新向量。

9、在一些示例中,更新张量提供输出数据张量。特别地,如果不存在输入数据张量,或者输入数据张量为空,则输出数据张量可以被设置为等于更新张量。

10、所述方法还可以包括:接收包含待更新的多个输入数据值的输入数据张量a;以及将输入数据张量a与更新张量r进行组合,以产生输出数据张量a’,其中输入数据张量的值利用更新值进行更新。

11、在一些示例中,组合可以包括将更新张量的值添加到输入数据张量的相应值。在其他示例中,所述组合可以包括用更新张量的相应值替换输入数据张量的值。

12、所述组合可以包括用更新张量r的相应值替换输入数据张量a的值,并且所述方法可以包括:将第一稀疏索引张量th在一个维度上进行求和,以计算具有与输入数据张量a相同维度的减小的稀疏索引张量t;在输入数据张量a与减小的索引张量t之间执行逐元素乘法;以及从输入数据张量a中减去逐元素乘法的结果,并且加上更新张量r,以产生输出数据张量a’。

13、根据第一方面,还提供了一种神经网络加速器,所述神经网络加速器被配置成在固定功能硬件中实现分散运算,其中所述神经网络加速器被配置成:

14、接收包含更新值的输入更新张量b;

15、接收包含n个第一索引的第一索引向量,所述第一索引标识待利用来自输入更新张量b的更新值进行更新的输出数据张量的元素;

16、将第一索引向量转换为第一稀疏索引张量th,所述第一稀疏索引张量在由索引定义的位置处具有一,并且在其他位置处具有零;以及

17、生成更新张量r,包括将更新值应用于第一稀疏索引张量,其中更新张量r包含由索引定义的位置处的更新值。

18、所述神经网络加速器还可以被配置成:接收包含待更新的多个输入数据值的输入数据张量a;以及将输入数据张量a与更新张量r进行组合,以产生输出数据张量a’,其中输入数据张量的值利用更新值进行更新。

19、为了将输入数据张量a与更新本文档来自技高网...

【技术保护点】

1.一种在神经网络加速器的固定功能硬件中实现分散运算的方法,所述方法包括:

2.如权利要求1所述的方法,所述方法还包括:

3.如权利要求2所述的方法,其中所述组合包括用所述更新张量R的相应值替换所述输入数据张量A的值,并且其中所述方法包括:

4.一种神经网络加速器,所述神经网络加速器被配置成在固定功能硬件中实现分散运算,其中所述神经网络加速器被配置成:

5.如权利要求4所述的神经网络加速器,所述神经网络加速器被进一步配置成:

6.如权利要求5所述的神经网络加速器,其中为了将所述输入数据张量A与所述更新张量R进行组合(532),所述神经网络加速器被配置成用所述更新张量R的相应值替换所述输入数据张量A的值,并且其中所述神经网络加速器被进一步配置成:

7.如前述权利要求中任一项所述的方法或神经网络加速器,其中将每个索引向量转换为相应稀疏索引张量TH、TW、TC包括:

8.如权利要求7所述的方法或神经网络加速器,其中应用所述δ函数包括:

9.如前述权利要求中任一项所述的方法或神经网络加速器,其中所述神经网络加速器包括:

10.如前述权利要求中任一项所述的方法或神经网络加速器,其中所述神经网络加速器包括存储器操纵模块(40),其中每个转置运算、每个置换运算和每个重复运算使用所述存储器操纵模块(40)来执行。

11.如权利要求1至3中任一项所述的方法,所述方法还包括处理每个2-D稀疏索引张量以确保所述2-D稀疏索引张量为二进制值的。

12.如权利要求1至3和11中任一项所述的方法,所述方法还包括处理每个稀疏索引张量以进行以下中的一者:

13.如前述权利要求中任一项所述的方法或神经网络加速器,其中所述分散运算形成处理3-D体积数据、图像数据或视频数据的方法的一部分,

14.一种计算机可读代码,所述计算机可读代码被配置成在运行所述代码时使得如权利要求1至3或7至13中任一项所述的方法得以执行。

15.一种计算机可读存储介质,所述计算机可读存储介质上编码有如权利要求14所述的计算机可读代码。

...

【技术特征摘要】

1.一种在神经网络加速器的固定功能硬件中实现分散运算的方法,所述方法包括:

2.如权利要求1所述的方法,所述方法还包括:

3.如权利要求2所述的方法,其中所述组合包括用所述更新张量r的相应值替换所述输入数据张量a的值,并且其中所述方法包括:

4.一种神经网络加速器,所述神经网络加速器被配置成在固定功能硬件中实现分散运算,其中所述神经网络加速器被配置成:

5.如权利要求4所述的神经网络加速器,所述神经网络加速器被进一步配置成:

6.如权利要求5所述的神经网络加速器,其中为了将所述输入数据张量a与所述更新张量r进行组合(532),所述神经网络加速器被配置成用所述更新张量r的相应值替换所述输入数据张量a的值,并且其中所述神经网络加速器被进一步配置成:

7.如前述权利要求中任一项所述的方法或神经网络加速器,其中将每个索引向量转换为相应稀疏索引张量th、tw、tc包括:

8.如权利要求7所述的方法或神经网络加速器,其中应用所述δ函数包括:

【专利技术属性】
技术研发人员:杨乐A·阿马迪C·迪基奇
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

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

1