本发明涉及神经网络模型算子的,具体而言,涉及一种算子调试方法及系统、电子设备和存储介质。
背景技术:
1、随着神经网络学习的快速发展,npu(neural processing unit,神经网络处理器)也不断快速发展,由于npu在处理神经网络运算时具有显著优势,因此成为机器学习和深度学习任务的核心加速器。
2、神经网络学习中的算子是构成神经网络的基本计算单元,算子负责对输入数据进行各种数学运算和处理。在npu中,算子调度和算子执行对神经网络的运算性能至关重要。npu中的算子调度器负责将各个算子合理的安排在npu上的各个ai core(人工智能计算平台)中;npu中的算子执行则由ai core负责调用npu的硬件计算单元来完成算子的推理计算。
3、npu中的算子执行在进行运算的同时,也需要保证每个算子执行的输入或输出的准确性,以保证神经网络学习推理的准确性。但发明人发现,目前在神经网络模型的推理中,cpu(central processing unit,中央处理器)负责输入待执行的算子列表和输入数据,npu负责自动执行算子调度和算子执行,最后输出算子执行结果。cpu和npu交互完成算子执行,在执行过程中用户无法对运算过程进行可视化管理。而在某一层算子运算过程中出现问题的情况下,用户无法及时对算子的运算故障进行感知、定位以及修复,从而导致整个神经网络模型的输出错误。
技术实现思路
1、本发明提供了一种算子调试方法及系统、电子设备和存储介质,用于解决在某一层算子运算过程中出现问题的情况下,用户无法及时对算子的运算故障进行感知、定位以及修复的技术问题。
2、根据本发明的一方面,本发明提供了一种算子调试方法,所述算子调试方法包括:将预设模型参数信息作为第一输入,输入至预设神经网络模型进行推理;对预设神经网络模型的每一层算子进行算子执行;根据算子的执行输出结果确定出问题算子层;调试算子执行过程中的至少一个影响因子,其中,影响因子为在算子执行过程中影响算子的执行输出结果的因素;将问题算子层的输入信息作为第二输入,输入至预设神经网络模型再次进行推理和调试,直至问题算子层的执行输出结果与目标输出结果一致。
3、根据本发明的一些实施例,根据算子的执行输出结果确定出问题算子层包括:保存每一层算子的执行输出结果;将每一层算子的执行输出结果添加至预设算子数据集;遍历预设算子数据集中的每一层算子的执行输出结果;在当前算子层的执行输出结果与目标输出结果不一致的情况下,将当前算子层确定为问题算子层。
4、根据本发明的一些实施例,将问题算子层的输入信息作为第二输入,输入至预设神经网络模型再次进行推理和调试,直至问题算子层的执行输出结果与目标输出结果一致包括:将问题算子层作为起始算子层进行推理和调试,直至问题算子层的执行输出结果与目标输出结果一致。
5、根据本发明的一些实施例,影响因子至少包括代码逻辑因素、参数配置因素、寄存器配置因素和精度丢失因素中的至少一种。
6、根据本发明的另一方面,本发明提供了一种算子调试系统,所述算子调试系统包括算子输入模块、算子处理模块和算子调试模块。算子输入模块将预设模型参数信息作为第一输入,输入至预设神经网络模型进行推理;算子处理模块对预设神经网络模型的每一层算子进行算子执行,根据算子的执行输出结果确定出问题算子层;算子调试模块调试算子执行过程中的至少一个影响因子,其中,影响因子为在算子执行过程中影响算子的执行输出结果的因素;将问题算子层的输入信息作为第二输入,输入至预设神经网络模型再次进行推理和调试,直至问题算子层的执行输出结果与目标输出结果一致。
7、根据本发明的一些实施例,算子处理模块保存每一层算子的执行输出结果;算子处理模块将每一层算子的执行输出结果添加至预设算子数据集;算子处理模块遍历预设算子数据集中的每一层算子的执行输出结果;算子处理模块在当前算子层的执行输出结果与目标输出结果不一致的情况下,将当前算子层确定为问题算子层。
8、根据本发明的一些实施例,算子调试模块将问题算子层作为起始算子层进行推理和调试,直至问题算子层的执行输出结果与目标输出结果一致。
9、根据本发明的一些实施例,影响因子至少包括代码逻辑因素、参数配置因素、寄存器配置因素和精度丢失因素中的至少一种。
10、根据本发明的又一方面,本发明还提供了一种电子设备。电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器,能够实现如上文所述的算子调试方法。
11、根据本发明的又一方面,本发明还提供了一种非易失性计算机可读存储介质。该存储介质上存储有计算机程序,该计算机程序被处理器执行时能够实现如上文所述的算子调试方法。
12、本发明通过对预设神经网络模型的每一层算子进行算子执行,并且根据算子的执行输出结果确定出问题算子层,在调试算子执行过程中的至少一个影响因子之后,将问题算子层的输入信息作为第二输入,输入至预设神经网络模型再次进行推理和调试,直至问题算子层的执行输出结果与目标输出结果一致。
13、本发明通过保存每一层算子的执行输出结果,并根据算子的执行输出结果确定出问题算子层,可以快速定位算子的运算故障;以及本发明通过调试算子执行过程中的至少一个影响因子,可以快速对算子的运算故障进行调试和修复。
14、本发明提供的算子调试方法具有可以及时和快速实现算子运算故障的定位、调试和修复的特点。
1.一种算子调试方法,其特征在于,包括:
2.根据权利要求1所述的算子调试方法,其特征在于,所述根据所述算子的执行输出结果确定出问题算子层包括:
3.根据权利要求1所述的算子调试方法,其特征在于,所述将所述问题算子层的输入信息作为第二输入,输入至所述预设神经网络模型再次进行推理和调试,直至所述问题算子层的执行输出结果与目标输出结果一致包括:
4.根据权利要求1所述的算子调试方法,其特征在于,所述影响因子至少包括代码逻辑因素、参数配置因素、寄存器配置因素和精度丢失因素中的至少一种。
5.一种算子调试系统,其特征在于,所述算子调试系统执行如权利要求1-4任一所述的算子调试方法,所述算子调试系统包括:
6.根据权利要求5所述的算子调试系统,其特征在于,所述算子处理模块保存所述每一层算子的执行输出结果;
7.根据权利要求5所述的算子调试系统,其特征在于,所述算子调试模块将所述问题算子层作为起始算子层进行推理和调试,直至所述问题算子层的执行输出结果与所述目标输出结果一致。
8.根据权利要求5所述的算子调试系统,其特征在于,所述影响因子至少包括代码逻辑因素、参数配置因素、寄存器配置因素和精度丢失因素中的至少一种。
9.一种电子设备,其特征在于,包括:
10.一种非易失性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4任一所述的算子调试方法。