本发明一般地涉及神经网络领域。更具体地,本发明涉及在深度学习模型中获取计算端算子数据的方法、精度验证方法及其计算机可读存储介质、计算机程序产品、计算机装置、计算装置、集成电路装置、板卡及系统。
背景技术:
1、深度学习是机器学习领域中一个研究方向,它的最终目标是让机器像人一样具有分析学习能力,能够识别文字、图像和声音等数据,目前在计算机视觉、语音识别、自然语言处理等应用上取得了相当理想的成果。
2、为了让深度学习更容易被应用,开发者创建了许多框架,在现有的平台上实现特定功能,进而降低深度学习开发的门槛。随着时间的推移,目前最为流行的深度学习框架有paddlepaddle、tensorflow、caffe、theano、mxnet、torch和pytorch等。
3、每个深度学习框架都能支援加速库,开发者可以自建特定功能的加速库,通过深度学习框架的相关接口,配置深度学习模型运行的加速库,即在深度学习框架中添加分发逻辑,实现分发任务的功能,将任务(例如模型训练)分发给加速库,加速库内部会产生算子来执行被分发的任务,利用加速库运行的效率更高。加速库开发者不应修改深度学习模型。
4、然而,加速库生成的算子对开发者不可见。由于深度学习模型的网络庞大、结构复杂、多层嵌套,一旦算子不可见,开发者在定位网络问题或分析数据规律时便难以在网络层面快速侦错。
5、再者,在深度学习的网络训练过程中,使用的计算设备不同时,计算的精度会存在一定的误差。这些误差可能来自于并行计算的特性、设备的位宽差异、算法实现的不同等。当误差不明显时,尚不会影响网络的效能,但误差较大时可能会直接导致失效。
6、因此,一种针对加速库逐层(逐算子)取得数据,便于开发者快速定位问题和分析数据的方案,以及降低调试网络的难度的方案是迫切需要的。
技术实现思路
1、为了至少部分地解决背景技术中提到的技术问题,本发明的方案提供了一种在深度学习模型中获取计算端算子数据的方法、精度验证方法及其计算机可读存储介质、计算机程序产品、计算机装置、计算装置、集成电路装置、板卡及系统。
2、在一个方面中,本发明揭露一种在深度学习模型中获取计算端算子数据的方法,包括:添加算子的入端接口与出端接口;基于状态参数自所述入端接口接收输入数据;基于所述状态参数自所述出端接口接收输出数据,以对计算端算子数据进行数据分析,其中所述计算端算子数据包括所述输入数据与所述输出数据。
3、在另一个方面,本发明揭露一种精度验证方法,包括:利用处理装置执行任务以获得处理端算子数据,所述处理端算子数据为参考数据;利用计算装置执行如前述的方法,以获得计算端算子数据;以及将所述计算端算子数据与所述参考数据进行比较,以获得精度验证结果。
4、在另一个方面,本发明揭露一种计算机可读存储介质,其上存储有在深度学习模型中获取计算端算子数据或精度验证的计算机程序代码,当所述计算机程序代码由处理装置运行时,执行前述的方法。
5、在另一个方面,本发明揭露一种计算机程序产品,包括在深度学习模型中获取计算端算子数据或精度验证的计算机程序,其特征在于,所述计算机程序被处理器执行时实现前述方法的步骤。
6、在另一个方面,本发明揭露一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现前述方法的步骤。
7、在另一个方面,本发明揭露一种在深度学习模型中获取计算端算子的数据的计算装置,所述算子添加有入端接口与出端接口。所述计算装置包括:状态管理模块及数据处理模块。状态管理模块用以维护状态参数;数据处理模块,用以:基于所述状态参数自所述入端接口接收输入数据;基于所述状态参数自所述出端接口接收输出数据,以对计算端算子数据进行数据分析。其中计算端算子数据包括所述输入数据与所述输出数据。
8、在另一个方面,本发明揭露一种集成电路装置,包括根据前述的计算装置。本发明还揭露一种板卡,包括前述的集成电路装置。
9、在另一个方面,本发明揭露一种精度验证系统,包括前述的计算装置,用以执行所述任务以获得计算端算子数据;以及处理装置,用以执行任务以获得处理端算子数据,所述处理端算子数据为参考数据,将所述计算端算子数据与所述参考数据进行比较,以获得精度验证结果。
10、本发明通过添加算子的入端接口与出端接口,通过状态管理模块中的状态参数进行全局管理,进而获得计算端算子数据,以达到获取网络运行中的数据来定位故障或分析规律,以及获取加速库算子与框架上层的映射关系的技术功效;进一步地,产生前述的计算端算子数据后,本发明还能通过比较计算端算子数据与处理端算子数据,验证精度。
1.一种在深度学习模型中获取计算端算子的数据的计算装置,所述算子添加有入端接口与出端接口,所述计算装置包括:
2.根据权利要求1所述的计算装置,所述状态管理模块还用于自所述入端接口接收算子名称与结构信息;
3.根据权利要求1所述的计算装置,还包括:
4.根据权利要求3所述的计算装置,其中所述指令载有配置的信息,所述配置包括获取所述计算端算子数据的时机及所述计算端算子数据的处理方式至少其中之一。
5.根据权利要求4所述的计算装置,其中所述状态管理模块根据所述指令进行初始化,以实现所述配置。
6.根据权利要求5所述的计算装置,其中所述用户接口为上下文管理器接口、函数接口或环境变量接口。
7.根据权利要求1至6任一项所述的计算装置,其中所述计算装置执行深度学习框架的加速库。
8.根据权利要求7所述的计算装置,其中所述入端接口与所述出端接口根据所述加速库的算子列表信息而生成。
9.根据权利要求1-8任一项所述的计算装置,其中所述数据处理模块对所述计算端算子数据进行数据分析,包括:获取网络结构、定位故障及分析规律至少其中之一。
10.一种精度验证系统,包括:
11.一种在深度学习模型中获取计算端算子数据的方法,包括:
12.一种精度验证方法,包括:
13.一种计算机可读存储介质,其上存储有在深度学习模型中获取计算端算子数据或精度验证的计算机程序代码,当所述计算机程序代码由处理装置运行时,执行权利要求11至12任一项所述的方法。
14.一种计算机程序产品,包括在深度学习模型中获取计算端算子数据或精度验证的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求11至12任一项所述方法的步骤。
15.一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求11至12任一项所述方法的步骤。
16.一种集成电路装置,包括根据权利要求1至10任一项所述的计算装置。
17.一种板卡,包括根据权利要求16所述的集成电路装置。