System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于在GPU上执行稀疏子流形卷积的方法和系统技术方案_技高网

用于在GPU上执行稀疏子流形卷积的方法和系统技术方案

技术编号:42651591 阅读:36 留言:0更新日期:2024-09-06 01:44
用于在GPU上执行稀疏子流形卷积的方法和系统。在图形处理单元上实施稀疏子流形卷积的方法包括:在图形处理单元接收密集格式的输入张量;在图形处理单元标识输入张量的活动位置;在图形处理单元基于已标识活动位置对输入张量执行索引展开运算,以生成一个输入矩阵,其中包含输入张量的每个活动窗口中的输入张量的元素;及在图形处理单元执行权重矩阵与输入矩阵之间的矩阵乘法,以生成输出矩阵,所述输出矩阵包括基于活动窗口的稀疏子流形卷积的输出张量的元素。所述方法还可能包括在图形处理单元基于活动窗口对输出矩阵执行索引折叠运算,以生成密集格式的输出张量。

【技术实现步骤摘要】

本申请涉及用于在图形处理单元(gpu)执行稀疏子流形卷积的方法和系统。


技术介绍

1、如本领域技术人员所已知,点云是在二维(2d)或三维(3d)空间中绘制的一组单独的数据点。例如,3d点云中的每个点可以表示在特定x、y和z位置处的测量值。点云可用于表示空间中的对象。点云可以通过传感器生成,例如但不限于lidar扫描仪或深度相机。如本领域技术人员所已知,lidar扫描仪使用脉冲激光器形式的光来测量距离。由于点云通常不具有每个可能坐标的点,因此点云被认为是稀疏数据集。

2、存在可运用点云的各种现实世界人工智能应用,例如增强╱虚拟现实(例如,内部场景的布局检测)和自主驾驶(例如,提取可驾驶区域)。因此,在点云上执行深度学习任务已经受到学术界和工业的极大关注,且人工神经网络(在本文中简称为神经网络)已被开发来处理点云,该网络在本文中可被称为点云神经网络。如本领域技术人员所已知,神经网络包括可用于机器学习应用的一个或多个互连层。具体地,神经网络可用于信号处理应用程序中,该信号处理应用程序包括但不限于图像处理应用程序和计算机视觉应用程序。

3、图1示出了包括多个层102、104、106的示例神经网络100。每一层102、104、106接收输入数据,并且根据层来处理输入数据以产生输出数据。输出数据作为输入数据被提供给另一层,或者作为神经网络的最终输出数据被输出。例如,在图1的神经网络100中,第一层102接收到针对神经网络100的原始输入数据108,并且根据第一层102来处理输入数据以产生输出数据110。第一层102的输出数据110成为第二层104的输入数据,并且第二层104根据第二层104处理输入数据110以产生输出数据112。第二层104的输出数据112成为第三层106的输入数据,并且第三层106根据第三层106处理输入数据112以产生输出数据114。然后,第三层106的输出数据114作为神经网络的最终输出数据输出。在神经网络用于分类的情况下,最终输出数据可以是长度向量a,其中a是类别的数量,并且向量中的每个值表示某个类别的概率。

4、输入到神经网络层和从该层输出的数据可以被描述为张量。如本领域技术人员所已知,张量是向量和矩阵的统称,并且可以被视为n维阵列。向量是一维张量,并且矩阵是二维张量。神经网络中的张量通常是四维的,但不一定是四维的。参考图2,该图示出了示例四维(4d)张量200,其中为了可视化目的,已经抑制了一个维度(例如对应于批次大小)。4d张量200可以被描述为包括一个或多个3d张量,其中每个3d张量包括c个数据平面。每个平面具有高度h和宽度w。每个平面可以被称为张量的通道。3d张量的数量可以称为批次大小。在传统神经网络中,每个3d张量可以是,例如图像。张量的元素可以被称为张素(tensel),类似于图片的元素被称为像素。

5、对层的输入张量执行的处理取决于层的类型。例如,神经网络的每一层可以是多种不同类型中的一种类型。通用神经网络层类型包括但不限于卷积层、激活层、归一化层、池化层、全连接层和批量归一化层。对于本领域技术人员将显而易见的是,这些仅仅是示例神经网络层类型,并且可存在其它神经网络层类型。

6、对于卷积层,将输入张量与所述层相关联的权重进行卷积。具体地,每个卷积层与多个权重w1…wg相关联,所述多个权重还可以被称为滤波器权重或系数。权重被分组以形成一个或多个滤波器。每个滤波器根据该维度上的步幅在一个或多个维度上在输入张量上移动或滑动,并且在每个滤波器位置处计算输入数据的点积和该滤波器的权重。在特定滤波器位置应用于滤波器权重的输入张量的元素被称为输入张量的窗口。每个滤波器可能存在偏置,该偏置被添加到对应点积的结果中。

7、存在许多不同类型的卷积层。传统神经网络通常具有一个或多个2d或3d卷积层。在2d卷积(在本文中可以称为标准2d卷积)中,每个滤波器具有维度kh x kw x cin(即,每个滤波器可能包括一组kh x kw x cin权重w),其中cin是输入张量通道的数量,使得每个滤波器生成输出的通道。每个滤波器通道可以被描述为大小为kh x kw的内核。因此,取决于通道的数量,滤波器可能包括一个或多个内核。每个滤波器分别在步骤sh和sw在h和w维度上在输入张量上滑动,这被称为卷积的步幅。

8、现参考图3,其示出了在具有高度h、宽度w和通道(即,c=1)的输入张量302与形成一个内核大小为khxkw的滤波器304的一组权重和通道之间的步幅为1(即,sh=sw=1)的示例2d卷积。滤波器304与输入张量302卷积,以产生输出张量306的一个通道或一个平面。具体地,滤波器304在宽度维度w和高度维度h上在输入张量302上滑动,一次一个元素,并且在每个滤波器位置处生成输入元素和权重的点积。在此示例中,滤波器相对于输入张量302的第一位置是当滤波器的中心w(0,0)对准x(1,1)时,使得输出的第一元素y(0,0)等于窗口308中的输入元素的点积和滤波器304的权重。类似地,滤波器相对于输入张量302的最后位置是当滤波器w(0,0)的中心对准x(3,3)时,使得输出张量y(2,2)的最后一个元素等于窗口310中的输入元素的点积和滤波器304的权重。3d卷积类似于2d卷积,不同之处在于滤波器也在第三(例如z或通道)维度上在输入张量上滑动。

9、然而,点云神经网络可能包括一个或多个2d或3d稀疏子流形卷积层。2d╱3d稀疏子流形卷积与其对应的标准2d╱3d卷积相同,不同之处在于仅针对滤波器内核的一个或多个预定元素与输入张量的活动位置对准的滤波器的位置计算输出元素。输入张量的活动位置是输入张量的高度和宽度位置,其中输入张量的至少一个通道在该位置处具有非零值或元素。滤波器内核的一个或多个预定元素可能包括滤波器内核的中心元素和╱或靠近滤波器内核中心的一个或多个元素。在本文所述的示例中,滤波器内核的单个预定元素是滤波器内核的中心元素。不过,对本领域的技术人员将显而易见的是,这仅是示例。稀疏子流形卷积被设计成在稀疏输入张量上运转。

10、现参考图4,其示出了在具有高度h、宽度w和通道(即,c=1)的输入张量402与形成一个内核大小为khxkw的滤波器404的一组权重和通道之间的步幅为1(即,sh=sw=1)的示例2d稀疏子流形卷积,其中滤波器内核的一个或多个预定元素包括在滤波器内核中心的元素(即,w(0,0))。输入张量402仅具有三个非零元素,因此输入张量402具有三个活动位置-p1、p2、p3。因此,滤波器相对于输入张量402(或输入张量的三个窗口)仅存在三个位置,表示为406、408、410,其中滤波器404的中心与活动位置(在本文中将称为输入张量的活动窗口)对准。因此,仅生成输出张量412的三个元素q1、q2、q3。输出元素q1等于第一活动窗口406中的元素的点积和滤波器404的权重,输出元素q2等于第二活动窗口408的元素的点积和滤波器404的权重,及输出元素q3等于第三活动窗口410的元素的点积和滤波器404的权重。3d稀疏子流形卷积类似于2d稀本文档来自技高网...

【技术保护点】

1.一种在图形处理单元上实施稀疏子流形卷积的方法(500),该方法(500)包括:

2.根据权利要求1所述的方法(500),其中输入张量具有至少高度维度、宽度维度和通道维度,且输入张量的活动位置是其中输入张量的至少一个通道具有非零元素的高度和宽度位置。

3.根据权利要求2所述的方法(500),其中标识输入张量的活动位置包括:

4.根据权利要求1所述的方法(500),其中输入张量的活动窗口是输入张量的窗口,所述窗口用于生成稀疏子流形卷积的输出张量的元素,其中该窗口内的一个或多个预定位置是活动位置。

5.根据权利要求1至4中任一项所述的方法(500),其中对输入张量执行索引展开运算包括从已标识的活动位置和稀疏子流形卷积的一个或多个参数中标识输入张量的活动窗口。

6.根据权利要求5所述的方法(500),其中从已标识的活动位置和稀疏子流形卷积的一个或多个参数中标识输入张量的活动窗口,就每个已标识的活动位置而言,包括:

7.根据权利要求5所述的方法(500),其中输入张量的活动窗口基于输入张量的被填充的版本,使得当稀疏子流形卷积在每个稀疏子流形卷积维度中的步幅为1时,每个活动位置都有活动窗口,以及从所识别的活动位置和稀疏子流形卷积的一个或多个参数中识别输入张量的活动窗口,包括识别对应于每个活动位置的活动窗口。

8.根据权利要求1至4中任一项所述的方法(500),其中对输入张量执行索引展开运算包括识别每个活动窗口中的输入张量元素。

9.根据权利要求8所述的方法(500),其中识别活动窗口中的输入张量元素包括实施一系列嵌套循环,该一系列嵌套循环包括活动窗口的每个维度的循环,该循环在所述维度上从窗口内的预定位置循环通过活动窗口的元素。

10.根据权利要求1至4中任一项所述的方法(500),其中对输入张量执行索引展开运算包括将各活动窗口的元素存储在输入矩阵中。

11.根据权利要求10所述的方法(500),还包括接收零输入矩阵,且输入张量的每个活动窗口的元素存储在已接收的输入矩阵中。

12.根据权利要求1至4中任一项所述的方法(500),还包括在图形处理单元基于活动窗口对输出矩阵执行(510)索引折叠运算,以生成密集格式的稀疏子流形卷积的输出张量。

13.根据权利要求12所述的方法(500),其中输入张量的每个活动位置都有一个活动窗口,且对输出矩阵执行索引折叠运算包括将输出矩阵的每个元素放置在输出张量通道的对应活动位置处。

14.根据权利要求13所述的方法(500),其中就每个活动窗口而言,对输出矩阵执行索引折叠运算包括循环通过输出张量的每个通道,并将输出矩阵中对应于该活动位置及该通道的元素放置在输出张量通道的活动位置处。

15.根据权利要求12所述的方法(500),其中对输出矩阵执行索引折叠运算包括基于活动窗口和稀疏子流形卷积的一个或多个参数识别输出矩阵中的每个元素的输出张量中的位置,以及将输出矩阵的每个元素放置在输出张量中的对应识别位置中。

16.根据权利要求12所述的方法(500),还包括接收零输出张量,且输出矩阵的元素存储在所接收的输出张量中。

17.根据权利要求12所述的方法(500),其中对输出矩阵执行索引折叠运算还包括在输出张量的不包括输出矩阵的元素的每个位置处存储零。

18.根据权利要求1至4中任一项所述的方法(500),其中输入矩阵包括输入张量的每个活动窗口的列,且输入矩阵的每个列包括对应活动窗口中的输入张量的元素,及

19.一种图形处理单元,所述图形处理单元被配置为执行权利要求1至18中任一项所述的方法(500)。

20.一种计算机可读存储介质,其上存储有计算机可读代码,所述计算机可读代码被配置为在运行所述代码时使得图形处理单元执行权利要求1至18中任一项所述的方法(500)。

...

【技术特征摘要】

1.一种在图形处理单元上实施稀疏子流形卷积的方法(500),该方法(500)包括:

2.根据权利要求1所述的方法(500),其中输入张量具有至少高度维度、宽度维度和通道维度,且输入张量的活动位置是其中输入张量的至少一个通道具有非零元素的高度和宽度位置。

3.根据权利要求2所述的方法(500),其中标识输入张量的活动位置包括:

4.根据权利要求1所述的方法(500),其中输入张量的活动窗口是输入张量的窗口,所述窗口用于生成稀疏子流形卷积的输出张量的元素,其中该窗口内的一个或多个预定位置是活动位置。

5.根据权利要求1至4中任一项所述的方法(500),其中对输入张量执行索引展开运算包括从已标识的活动位置和稀疏子流形卷积的一个或多个参数中标识输入张量的活动窗口。

6.根据权利要求5所述的方法(500),其中从已标识的活动位置和稀疏子流形卷积的一个或多个参数中标识输入张量的活动窗口,就每个已标识的活动位置而言,包括:

7.根据权利要求5所述的方法(500),其中输入张量的活动窗口基于输入张量的被填充的版本,使得当稀疏子流形卷积在每个稀疏子流形卷积维度中的步幅为1时,每个活动位置都有活动窗口,以及从所识别的活动位置和稀疏子流形卷积的一个或多个参数中识别输入张量的活动窗口,包括识别对应于每个活动位置的活动窗口。

8.根据权利要求1至4中任一项所述的方法(500),其中对输入张量执行索引展开运算包括识别每个活动窗口中的输入张量元素。

9.根据权利要求8所述的方法(500),其中识别活动窗口中的输入张量元素包括实施一系列嵌套循环,该一系列嵌套循环包括活动窗口的每个维度的循环,该循环在所述维度上从窗口内的预定位置循环通过活动窗口的元素。

10.根据权利要求1至4中任一项所述的方法(500),其中对输入张量执行索引展开运算包括将各活动窗口的元素存储在输入矩阵中。

【专利技术属性】
技术研发人员:G·V·德米尔吉C·迪基奇G·M·史蒂文斯杨乐
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

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

1