本申请涉及人工智能加速,特别是涉及一种图神经网络生成方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、近年来,图拓扑数据在实际应用中扮演着重要的角色,如社交网络、推荐系统和知识图谱。随着神经网络的发展,图卷积网络和图神经网络等模型的进一步演进,图神经网络能够有效应对多种图拓扑数据的深度学习任务,如节点分类和链路预测。
2、然而,目前最先进的图神经网络方法在训练过程中,大多数使用的图拓扑都表现出极大的稀疏性和不规则性,这给训练过程中的优化操作带来了困难和挑战。并且现有的图神经网络加速方法侧重于从算法层面加速图神经网络的整个训练过程,虽然这些方法也针对gpu(图形处理器,graphic process unit)架构做了一些优化,但优化效果有限,从而存在图神经网络训练效率低下的问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够加速图神经网络训练的图神经网络生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本申请提供了一种图神经网络生成方法,所述方法包括:
3、在图神经网络的训练过程中,通过所述图神经网络获取图拓扑数据的平均度数,并确定所述图拓扑数据对应的邻接矩阵;所述图拓扑数据包含多个互相连接的顶点;
4、在所述平均度数满足度数条件的情况下,基于所述平均度数确定所述图拓扑数据对应的图划分力度;
5、基于按所述图划分力度对所述邻接矩阵进行划分所确定的各所述顶点的邻接点数量,对各所述顶点进行排序,得到各所述顶点的排序结果;
6、基于通过所述排序结果确定的动态邻居划分表,将所述图拓扑数据的多个子特征分别与所述邻接矩阵依次进行聚合处理,得到每一所述子特征各自的子聚合结果;
7、将各所述子聚合结果进行整合处理,输出所述图拓扑数据对应的聚合结果,基于所述聚合结果,生成训练后的图神经网络。
8、在其中一个实施例中,所述通过所述图神经网络获取图拓扑数据的平均度数,包括:
9、使用图神经网络对图拓扑数据进行图拓扑分析,得到所述图拓扑数据对应的顶点数量和边数量;
10、基于所述顶点数量和所述边数量,确定所述图拓扑数据的平均度数。
11、在其中一个实施例中,所述基于按所述图划分力度对所述邻接矩阵进行划分所确定的各所述顶点的邻接点数量,对各所述顶点进行排序,得到各所述顶点的排序结果,包括:
12、基于所述图划分力度,对所述邻接矩阵进行划分,得到多个分片子图;
13、遍历各所述分片子图,得到各顶点分别在每一分片子图中的邻接点数量;
14、按照各所述顶点分别在每一分片子图中的邻接点数量,对各所述顶点进行排序处理,得到各所述顶点的排序结果。
15、在其中一个实施例中,所述基于通过所述排序结果确定的动态邻居划分表,将所述图拓扑数据的多个子特征分别与所述邻接矩阵依次进行聚合处理,得到每一所述子特征各自的子聚合结果之前,包括:
16、基于所述邻接矩阵、所述平均度数以及各所述顶点的度数,分别确定每一所述顶点的邻居组规模;
17、基于各所述顶点的邻居组规模,对各所述顶点进行邻居组划分,得到各所述顶点的邻居组。
18、在其中一个实施例中,所述得到各所述顶点的邻居组之后,包括:
19、按照所述图拓扑数据中各顶点的排序结果,将划分邻居组后的各所述顶点进行排序,并获取排序后各所述顶点的邻居数量以及偏移量;
20、基于各所述顶点的邻居数量以及偏移量,得到动态邻居划分表。
21、在其中一个实施例中,所述基于通过所述排序结果确定的动态邻居划分表,将所述图拓扑数据的多个子特征分别与所述邻接矩阵依次进行聚合处理,得到每一所述子特征各自的子聚合结果,包括:
22、获取对所述图拓扑数据进行特征分析得到的特征信息;
23、基于所述特征信息对所述图拓扑数据进行特征划分,得到多个子特征;
24、按照所述动态邻居划分表中的排序信息,依次将各所述子特征与所述邻接矩阵进行聚合处理,得到每一所述子特征分别对应的子聚合结果。
25、第二方面,本申请提供了一种图神经网络生成装置,所述装置包括:
26、数据获取模块,用于在图神经网络的训练过程中,通过所述图神经网络获取图拓扑数据的平均度数,并确定所述图拓扑数据对应的邻接矩阵;所述图拓扑数据包含多个互相连接的顶点;
27、图划分力度确定模块,用于在所述平均度数满足度数条件的情况下,基于所述平均度数确定所述图拓扑数据对应的图划分力度;
28、排序模块,用于基于按所述图划分力度对所述邻接矩阵进行划分所确定的各所述顶点的邻接点数量,对各所述顶点进行排序,得到各所述顶点的排序结果;
29、聚合模块,用于基于通过所述排序结果确定的动态邻居划分表,将所述图拓扑数据的多个子特征分别与所述邻接矩阵依次进行聚合处理,得到每一所述子特征各自的子聚合结果;
30、整合模块,用于将各所述子聚合结果进行整合处理,输出所述图拓扑数据对应的聚合结果,基于所述聚合结果,生成训练后的图神经网络。
31、第三方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
32、第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
33、第五方面,本申请提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
34、上述图神经网络生成方法、装置、计算机设备、存储介质和计算机程序产品,通过在图神经网络的训练过程中,通过图神经网络获取图拓扑数据的平均度数,并确定图拓扑数据对应的邻接矩阵,可以基于平均度数判断是否对图拓扑数据进行图划分;通过在平均度数满足度数条件的情况下,基于平均度数确定图拓扑数据对应的图划分力度,从而可以基于图划分力度实现对图拓扑数据对应的邻接矩阵的划分;通过基于图划分力度和图拓扑数据对应的邻接矩阵,确定图拓扑数据中各顶点的邻接点的数量,并基于各顶点的邻接点数量确定顶点的排序结果,从而可以在访问内存的过程中利用计算机中的缓存,减少访问内存的次数,加速图神经网络的计算过程;通过基于排序结果确定的动态邻居划分表,依次将图拓扑数据的每一子特征和邻接矩阵进行聚合处理,得到每一子特征各自的子聚合结果,然后将各子聚合结果进行整合处理,得到图拓扑数据对应的聚合结果,能较好地的利用数据局部性特征,增加缓存命中率,从而减少访问计算机内存的时间,进而进一步加速图神经网络的计算过程,提升图神经网络的训练过程。
1.一种图神经网络生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述通过所述图神经网络获取图拓扑数据的平均度数,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于按所述图划分力度对所述邻接矩阵进行划分所确定的各所述顶点的邻接点数量,对各所述顶点进行排序,得到各所述顶点的排序结果,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于通过所述排序结果确定的动态邻居划分表,将所述图拓扑数据的多个子特征分别与所述邻接矩阵依次进行聚合处理,得到每一所述子特征各自的子聚合结果之前,包括:
5.根据权利要求4所述的方法,其特征在于,所述得到各所述顶点的邻居组之后,包括:
6.根据权利要求1所述的方法,其特征在于,所述基于通过所述排序结果确定的动态邻居划分表,将所述图拓扑数据的多个子特征分别与所述邻接矩阵依次进行聚合处理,得到每一所述子特征各自的子聚合结果,包括:
7.一种图神经网络生成装置,其特征在于,所述装置包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。