本申请涉及人工智能,具体而言,本申请涉及一种神经网络处理方法、装置、电子设备及存储介质。
背景技术:
1、神经网络子图切分指的是将一个大型神经网络模型划分成多个子图,每个子图可以在不同的处理器上进行并行计算,从而提高整个模型的计算速度。
2、现有的神经网络子图切分的方法是通过标记神经网络中各个算子是否支持加速设备,并根据各个算子的标记进行子图切分。基于现有的方法切分得到多个子图容易出现支持子图与不支持子图交叉的情况,其中一些支持子图计算量较小。
3、将这些计算量较小的支持子图划分至加速设备中进行运算,所带来的计算速度提升较小,但是会导致相邻的支持子图与不支持子图被划分到不同的设备中,从而产生在不同设备之间传输数据、量化及反量化的时间消耗和设备启动的时间消耗,从整体上会导致神经网络模型的性能下降。
技术实现思路
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、本申请实施例提供的技术方案带来的有益效果是:
35、在基于得到的子图切分的结果的基础上,对各个第一子图的计算性能指标进行判断,并将计算性能指标小于预设阈值的第一子图更新为第二子图,进而将更新后的各个子图中相邻的至少两个第二子图进行合并,得到一个合并子图,将合并子图分配至目标设备进行运算,使得计算收益较小的第一子图与其相邻的第二子图可以放到同一设备中进行运算,减少了在不同设备之间传递数据、量化与反量化,以及启动加速设备带来的时间消耗,提高了神经网络的模型的运行速度,从而提高了模型的性能。
1.一种神经网络处理方法,其特征在于,包括:
2.根据权利要求1所述的神经网络处理方法,其特征在于,所述针对每个第一子图,若所述第一子图的计算性能指标小于预设阈值,则将所述第一子图的设备支持信息更新为不支持加速设备,包括:
3.根据权利要求2所述的神经网络处理方法,其特征在于,所述确定通过第一设备运行所述第一子图的计算性能指标,包括:
4.根据权利要求3所述的神经网络处理方法,其特征在于,所述基于所述算子的计算密度和/或所述算子的第一计算量,确定所述算子的第二计算量,包括:
5.根据权利要求4所述的神经网络处理方法,其特征在于,所述基于所述算子的计算密度和所述算子的第一计算量,得到所述算子的加权计算量,包括:
6.根据权利要求3所述的神经网络处理方法,其特征在于,所述确定所述算子的计算密度,包括:
7.根据权利要求2所述的神经网络处理方法,其特征在于,所述若所述第一子图的计算性能指标小于所述第一设备的设备性能指标,则将所述第一子图的设备支持信息更新为不支持加速设备,之后还包括:
8.一种神经网络处理装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。