CN112149828A - 基于深度学习框架的算子精度检测方法和装置 - Google Patents

基于深度学习框架的算子精度检测方法和装置 Download PDF

Info

Publication number
CN112149828A
CN112149828A CN202011054639.XA CN202011054639A CN112149828A CN 112149828 A CN112149828 A CN 112149828A CN 202011054639 A CN202011054639 A CN 202011054639A CN 112149828 A CN112149828 A CN 112149828A
Authority
CN
China
Prior art keywords
reverse
precision
operator
test
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011054639.XA
Other languages
English (en)
Other versions
CN112149828B (zh
Inventor
高薇
骆涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Zhonglian Century Co ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011054639.XA priority Critical patent/CN112149828B/zh
Publication of CN112149828A publication Critical patent/CN112149828A/zh
Application granted granted Critical
Publication of CN112149828B publication Critical patent/CN112149828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开了基于深度学习框架的算子精度检测方法、装置、电子设备和存储介质,涉及深度学习技术领域。具体实现方案为:获取深度学习框架中预设的与算子的单元测试对应的测试模板;解析测试模板获取单元测试的精度最大值,检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值;在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,根据预设的位置标识获取单元测试中的所有反向算子;根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息。由此,提高算子精度检测效率,从而保证深度学习框架算子的可靠性。

Description

基于深度学习框架的算子精度检测方法和装置
技术领域
本申请涉及数据处理技术领域的深度学习技术领域,尤其涉及一种基于深度学习框架的算子精度检测方法、装置、电子设备和存储介质。
背景技术
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几个大方向。
其中,深度学习框架为人工智能领域的研究工作提供了模型构建、训练和验证模块,算子是深度学习框架中的基本计算单元,算子的质量是整个框架的基础,因此算子的精度从根本上保证算子的计算的质量。
然而,深度学习框架具有版本迭代快,算子数量多的特点,算子的单元测试通常涉及多个测试样例,相关技术中,需要算子精度测试的方式效率低、成本高且检测效果差。
发明内容
本申请提供了一种的技术问题的基于深度学习框架的算子精度检测方法、装置、电子设备和存储介质。
根据第一方面,提供了一种基于深度学习框架的算子精度检测方法,包括:
获取深度学习框架中预设的与算子的单元测试对应的测试模板;
解析所述测试模板获取所述单元测试的精度最大值,检测所述单元测试中是否至少一个测试样例的输入数据精度满足所述精度最大值;
在检测获知所述至少一个测试样例的输入数据精度满足所述精度最大值的情况下,根据预设的位置标识获取所述单元测试中的所有反向算子;
根据所述测试模板检测每个所述反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送所述算子的单元测试检测成功消息。
根据第二方面,提供了一种基于深度学习框架的算子精度检测装置,包括:
第一获取模块,用于获取深度学习框架中预设的与算子的单元测试对应的测试模板;
解析检测模块,用于解析所述测试模板获取所述单元测试的精度最大值,检测所述单元测试中是否至少一个测试样例的输入数据精度满足所述精度最大值;
第二获取模块,用于在检测获知所述至少一个测试样例的输入数据精度满足所述精度最大值的情况下,根据预设的位置标识获取所述单元测试中的所有反向算子;
检测模块,用于根据所述测试模板检测每个所述反向算子的反向计算精度是否均满足预设条件;
第一发送模块,用于在所有反向算子的反向计算精度均满足预设条件的情况下,发送所述算子的单元测试检测成功消息。
根据第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述实施例描述的基于深度学习框架的算子精度检测方法。
根据第四方面,提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述实施例描述的基于深度学习框架的算子精度检测方法。
上述申请中的实施例至少具有如下优点或有益效果:
获取深度学习框架中预设的与算子的单元测试对应的测试模板;解析测试模板获取单元测试的精度最大值,检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值;在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,根据预设的位置标识获取单元测试中的所有反向算子;根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息。由此,提高算子精度检测效率,从而保证深度学习框架算子的可靠性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的基于深度学习框架的算子精度检测方法的流程示意图;
图2是根据本申请第二实施例的基于深度学习框架的算子精度检测方法的流程示意图;
图3是根据本申请第三实施例的基于深度学习框架的算子精度检测方法的流程示意图;
图4是根据本申请第四实施例的基于深度学习框架的算子精度检测方法的场景示意图;
图5是根据本申请第五实施例的基于深度学习框架的算子精度检测装置的结构示意图;
图6是根据本申请第六实施例的基于深度学习框架的算子精度检测装置的结构示意图;
图7是根据本申请第七实施例的基于深度学习框架的算子精度检测装置的结构示意图;
图8是用来实现本申请实施例的基于深度学习框架的算子精度检测的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了解决现有技术中,基于深度学习框架的算子精度检测方式效率低、成本高且检测效果差的技术问题,本申请提出了基于深度学习框架的算子精度检测方法,由此,通过精度值、反向计算精度等方面进行自动检测,提高算子精度检测效率,保证深度学习框架算子的可靠性,以及能够及时发现算子精度问题,保障和提升深度学习框架质量。
下面参考附图描述本申请实施例的基于深度学习框架的算子精度检测方法和装置。
图1是根据本申请第一实施例的基于深度学习框架的算子精度检测方法的流程图,如图1所示,该方法包括:
步骤101,获取深度学习框架中预设的与算子的单元测试对应的测试模板。
在实际应用中,深度学习框架是进行深度学习的工具。
在本申请实施例中,算子是深度学习框架中的基本计算单元,算子的质量是整个框架的基础,因此,需要对算子的精度进行检测,因此,预先设置算子的单元测试对应的测试模板。
可以理解的是,测试单元可以理解为包括多个测试样例对算子进行测试得到算子精度,在本申请实施例中,可以预先设置单元测试对应的测试模版,测试模版可以设置输入数据精度类型,以支持多种精度的测试;测试模版还可以提供反向梯度结果检查函数;测试模版还可以设置反向输入数据的维度,以保证算子测试的健全性和反向计算的正确度;测试模版在设置单元测试精度类型的基础上,还可以设置检查前向和反向结果函数的精度阈值,该精度阈值根据数据类型严格控制算子前向反向计算的误差。
在本申请实施例中,可以通过持续集成工具比如Jenkins(基于Java开发的一种持续集成工具)进行数据获取、检测等操作,具体根据应用场景进行选择设置,进一步提高算子精度检测效率和准确性。
步骤102,解析测试模板获取单元测试的精度最大值,检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值。
基于上述描述,测试模板中设置有输入数据的精度类型(半精度、单精度和双精度),从而解析测试模板可以获取单元测试的精度最大值,比如解析精度类型为双精度从而确定精度最大值为A,从而检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值A,可以理解的是,为了提高算子精度检测,一般设置有效位更多的精度类型(即双精度float64),以便通过单元测试的算子的精度更高。
其中,单元测试中包括一个或者多个测试样例,每次进行算子精度检测时,执行单元测试中所有测试样例对算子进行精度检测,测试样例可以理解为一个测试任务。
步骤103,在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,根据预设的位置标识获取单元测试中的所有反向算子。
步骤104,根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息。
在本申请实施例中,在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,单元测试对应的算子是满足一定精度要求的,进一步根据预设的位置标识获取单元测试中的所有反向算子。
可以理解的是,算子正向计算也可以有反向计算,一个算子可以同时具有正反向计算,位置标识为标识算子计算方向的唯一标识,可以为数字、字符和字母等一个或者多个组合,通过预设的位置标识可以查找单元测试中的所有反向算子。
进一步地,根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件的方式有很多种,举例说明如下:
第一种示例,解析测试模板获取反向梯度检查函数,检测单元测试中每个反向算子是否均调用反向梯度检查函数进行反向计算生成反向计算结果,如果所有反向算子均生成反向计算结果,则每个反向算子的反向计算精度满足预设的第一条件。
第二种示例,解析测试模板获取反向算子的数据尺寸,检测单元测试中每个反向算子的输入数据维度是否与数据尺寸匹配,如果所有反向算子的输入数据维度均与数据尺寸匹配,则每个反向算子的反向计算精度满足预设的第二条件。
第三种示例,解析测试模板获取反向算子的精度阈值,计算单元测试中每个反向算子的前向计算结果和调用反向梯度检查函数进行反向计算生成反向计算结果,获取前向计算结果和反向计算结果的计算误差,检测每个反向算子的计算误差是否与精度阈值匹配,如果所有反向算子的计算误差均与精度阈值匹配,则每个反向算子的反向计算精度满足预设的第三条件。
最后,在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息,可以理解的是,可以根据应用场景需要选择,确定满足第一条件、第二条件和第三条件才确定所有反向算子的反向计算精度均满足预设条件,即深度学习框架算子的可靠性更高,当然为了进一步提高算子精度检测效率,可以选择满足第一条件、第二条件和第三条件中的一种或者任意两种。
可以理解的是,在单元测试检测成功后,可以执行单元测试中的所有测试样例对算子执行检测。
需要说明的是,在至少一个反向算子的反向计算精度不满足预设条件的情况下,根据测试模板获取反向算子的精度缺失信息,根据精度缺失信息发送携带反向算子位置标识的检测提示消息。由此,可以根据检测提示消息调整相关算子的精度、或者是再次检测确认,以进一步提高深度学习框架算子的可靠性。
综上,本申请实施例的基于深度学习框架的算子精度检测方法,通过获取深度学习框架中预设的与算子的单元测试对应的测试模板;解析测试模板获取单元测试的精度最大值,检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值;在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,根据预设的位置标识获取单元测试中的所有反向算子;根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息。由此,提高算子精度检测效率,从而保证深度学习框架算子的可靠性。
基于上述实施例的描述,可以选择确定满足第一条件、第二条件和第三条件才确定所有反向算子的反向计算精度均满足预设条件,即深度学习框架算子的可靠性更高,当然为了进一步提高算子精度检测效率,可以选择满足第一条件、第二条件和第三条件中的一种或者任意两种。下面结合图2和图3进行详细描述。
图2是根据本申请第二实施例的基于深度学习框架的算子精度检测方法的流程图,如图2所示,在步骤103之后,该方法还包括:
步骤201,解析测试模板获取反向梯度检查函数。
步骤202,检测单元测试中每个反向算子是否均调用反向梯度检查函数进行反向计算生成反向计算结果。
步骤203,在所有反向算子均生成反向计算结果的情况下,每个反向算子的反向计算精度满足预设条件,发送算子的单元测试检测成功消息。
在本申请实施例中,测试模板中可以提供反向梯度结果检查函数,因此,可以解析测试模板获取反向梯度检查函数,检测单元测试中每个反向算子是否均调用反向梯度检查函数进行反向计算生成反向计算结果,在所有反向算子均生成反向计算结果的情况下,每个反向算子的反向计算精度满足预设条件,发送算子的单元测试检测成功消息,由此,存在反向计算的算子并没有进行反向结果检查,进一步提高算子精度测试的效果。
图3是根据本申请第三实施例的基于深度学习框架的算子精度检测方法的流程图,如图3所示,在步骤103之后,该方法还包括:
步骤301,解析测试模板获取反向梯度检查函数,检测单元测试中每个反向算子是否均调用反向梯度检查函数进行反向计算生成反向计算结果,如果所有反向算子均生成反向计算结果,则每个反向算子的反向计算精度满足预设的第一条件。
在本申请实施例中,测试模板中可以提供反向梯度结果检查函数,因此,可以解析测试模板获取反向梯度检查函数,检测单元测试中每个反向算子是否均调用反向梯度检查函数进行反向计算生成反向计算结果,在所有反向算子均生成反向计算结果的情况下,每个反向算子的反向计算精度满足预设第一条件,存在反向计算的算子并没有进行反向结果检查,进一步提高算子精度测试的效果。
步骤302,解析测试模板获取反向算子的数据尺寸,检测单元测试中每个反向算子的输入数据维度是否与数据尺寸匹配,如果所有反向算子的输入数据维度均与数据尺寸匹配,则每个反向算子的反向计算精度满足预设的第二条件。
在本申请实施例中,解决了单元测试的输入维度普遍较小,不能保证大维度情况下的正确性和反向计算结果的技术问题,可以理解的是,算子的反向梯度的计算与输入维度的大小有关,如果单元测试的输入维度仅仅包括维度较小的情况,不能保证反向梯度的计算的正确性,因此,测试模版还可以设置反向输入数据的维度,以保证算子测试的健全性和反向计算的正确度。
进一步地,解析测试模板获取反向算子的数据尺寸,比如为100,检测单元测试中每个反向算子的输入数据维度是否与数据尺寸匹配,比如输入X、Y和Z分别为5、10和5,获取X、Y和Z的乘积满足数据尺寸需求,则反向算子反向计算精度满足预设的第二条件,因此,针对每个反向算子的输入数据维度进行判断是否与数据尺寸匹配,如果所有反向算子的输入数据维度均与数据尺寸匹配,则每个反向算子的反向计算精度满足预设的第二条件,由此,保证算子保证反向梯度的计算的正确性。
步骤303,解析测试模板获取反向算子的精度阈值,计算单元测试中每个反向算子的前向计算结果和调用反向梯度检查函数进行反向计算生成反向计算结果,获取前向计算结果和反向计算结果的计算误差。
步骤304,检测每个反向算子的计算误差是否与精度阈值匹配,在所有反向算子的计算误差均与精度阈值匹配的情况下,每个反向算子的反向计算精度满足预设的第三条件,发送算子的单元测试检测成功消息。
在本申请实施例中,现有技术中在检查前向输出和反向梯度时,可以通过设置较大的精度阈值,在结果不够准确的情况下也可以通过结果验证,本申请通过在测试模版在设置单元测试精度类型的基础上,还可以设置检查前向和反向结果函数的精度阈值,该精度阈值根据数据类型严格控制算子前向反向计算的误差,
因此,解析测试模板获取反向算子的精度阈值,计算单元测试中每个反向算子的前向计算结果和调用反向梯度检查函数进行反向计算生成反向计算结果,获取前向计算结果和反向计算结果的计算误差,检测每个反向算子的计算误差是否与精度阈值匹配,如果所有反向算子的计算误差均与精度阈值匹配,则每个反向算子的反向计算精度满足预设的第三条件,由此,在检查前向输出和反向梯度时,通过设置合适的精度阈值提高测试结果的有效性。
其中,精度阈值可以根据应用场景需要选择设置。
由此,通过测试算子精度值,输入数据维度和精度阈值等方面保证深度学习框架算子的可靠性,能够及时发现算子精度问题,保障和提升框架质量。
基于上述实施例的描述,在每个反向算子的反向计算精度满足预设条件,发送算子的单元测试检测成功消息,如果存在反向算子不满足预设条件如何处理,下面将结合图4进行详细描述。
图4是根据本申请第四实施例的基于深度学习框架的算子精度检测方法的流程图,如图4所示,在根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件之后,该方法还包括:
步骤401,在至少一个反向算子的反向计算精度不满足预设条件的情况下,根据测试模板获取反向算子的精度缺失信息。
步骤402,根据精度缺失信息发送携带反向算子位置标识的检测提示消息。
在本申请实施例中,如果至少一个反向算子的反向计算精度不满足预设条件,存在反向算子比如调用反向梯度检查函数进行反向计算不生成反向计算结果、再比如输入数据维度不与数据尺寸匹配、还比如前向计算结果和调用反向梯度检查函数进行反向计算生成反向计算结果的计算误差与精度阈值不匹配都可以确定反向计算精度不满足预设条件。
进一步地,根据测试模板获取反向算子的精度缺失信息,根据测试模版可以获取反向算子的精度缺失信息可以是输入数据精度类型、反向梯度结果检查函数、反向输入数据的维度和前向和反向结果函数的精度阈值中的一种或者多种。
由此,根据精度缺失信息发送携带反向算子位置标识的检测提示消息,即需要针对该反向算子设置输入数据精度类型、反向梯度结果检查函数、反向输入数据的维度和前向和反向结果函数的精度阈值中的一种或者多种的检测提示消息,进一步提高算子的可靠性。
为了实现上述实施例,本申请还提出了一种基于深度学习框架的算子精度检测装置。图5是根据本申请第五实施例的基于深度学习框架的算子精度检测装置的结构示意图,如图5所示,该基于深度学习框架的算子精度检测装置包括:第一获取模块510、解析检测模块520、第二获取模块530、检测模块540和第一发送模块550。
第一获取模块510,用于获取深度学习框架中预设的与算子的单元测试对应的测试模板。
解析检测模块520,用于解析测试模板获取单元测试的精度最大值,检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值。
第二获取模块530,用于在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,根据预设的位置标识获取单元测试中的所有反向算子。
检测模块540,用于根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件。
第一发送模块550,用于在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息。
需要说明的是,前述对基于深度学习框架的算子精度检测方法的解释说明,也适用于本发明实施例的基于深度学习框架的算子精度检测装置,其实现原理类似,在此不再赘述。
综上,本申请实施例的基于深度学习框架的算子精度检测装置,获取深度学习框架中预设的与算子的单元测试对应的测试模板;解析测试模板获取单元测试的精度最大值,检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值;在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,根据预设的位置标识获取单元测试中的所有反向算子;根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息。由此,提高算子精度检测效率,从而保证深度学习框架算子的可靠性。
在本申请的一个实施例中,如图6所示,在如图5所示的基础上,检测模块540包括:第一解析单元541、第一检测单元542和第一确定单元543。
其中,第一解析单元541,用于解析测试模板获取反向梯度检查函数。
第一检测单元542,用于检测单元测试中每个反向算子是否均调用反向梯度检查函数进行反向计算生成反向计算结果。
第一确定单元543,用于在所有反向算子均生成反向计算结果的情况下,每个反向算子的反向计算精度满足预设的第一条件。
在本实施例中,检测模块540,还包括:第二解析单元544、第二检测单元545和第二确定单元546。
其中,第二解析单元544,用于解析测试模板获取反向算子的数据尺寸。
第二检测单元545,用于检测单元测试中每个反向算子的输入数据维度是否与数据尺寸匹配。
第二确定单元546,用于在所有反向算子的输入数据维度均与数据尺寸匹配的情况下,每个反向算子的反向计算精度满足预设的第二条件。
在本实施例中,检测模块540,还包括:第三解析单元547、计算获取单元548、第三检测单元549和第三确定单元5410。
第三解析单元547,用于解析测试模板获取反向算子的精度阈值。
计算获取单元548,计算单元测试中每个反向算子的前向计算结果和调用所述反向梯度检查函数进行反向计算生成反向计算结果,获取前向计算结果和反向计算结果的计算误差。
第三检测单元549,用于检测每个反向算子的计算误差是否与精度阈值匹配。
第三确定单元5410,用于在所有反向算子的计算误差均与精度阈值匹配的情况下,每个反向算子的反向计算精度满足预设的第三条件。
在本实施例中,如图7所示,在如图5所示的基础上,该基于深度学习框架的算子精度检测装置还包括:第三获取模块560和第二发送模块570。
其中,第三获取模块560,,用于在至少一个所述反向算子的反向计算精度不满足预设条件的情况下,根据测试模板获取所述反向算子的精度缺失信息。
第二发送模块570,用于根据精度缺失信息发送携带反向算子位置标识的检测提示消息。
需要说明的是,前述对基于深度学习框架的算子精度检测方法的解释说明,也适用于本发明实施例的基于深度学习框架的算子精度检测装置,其实现原理类似,在此不再赘述。
综上,本申请实施例的基于深度学习框架的算子精度检测装置,获取深度学习框架中预设的与算子的单元测试对应的测试模板;解析测试模板获取单元测试的精度最大值,检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值;在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,根据预设的位置标识获取单元测试中的所有反向算子;根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息。由此,提高算子精度检测效率,从而保证深度学习框架算子的可靠性。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的基于深度学习框架的算子精度检测的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的基于深度学习框架的算子精度检测的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的基于深度学习框架的算子精度检测的方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的基于深度学习框架的算子精度检测的方法对应的程序指令/模块(例如,附图5所示的第一提取模块510、第一生成模块520、获取模块530、第二生成模块540)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的基于深度学习框架的算子精度检测的方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于深度学习框架的算子精度检测的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至基于深度学习框架的算子精度检测的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
基于深度学习框架的算子精度检测的方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与基于深度学习框架的算子精度检测的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS(VirtualPrivate Server虚拟专用服务器)服务中,存在的管理难度大,业务扩展性弱的缺陷。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,获取深度学习框架中预设的与算子的单元测试对应的测试模板;解析测试模板获取单元测试的精度最大值,检测单元测试中是否至少一个测试样例的输入数据精度满足精度最大值;在检测获知至少一个测试样例的输入数据精度满足精度最大值的情况下,根据预设的位置标识获取单元测试中的所有反向算子;根据测试模板检测每个反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送算子的单元测试检测成功消息。由此,提高算子精度检测效率,从而保证深度学习框架算子的可靠性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (12)

1.一种基于深度学习框架的算子精度检测方法,其特征在于,包括:
获取深度学习框架中预设的与算子的单元测试对应的测试模板;
解析所述测试模板获取所述单元测试的精度最大值,检测所述单元测试中是否至少一个测试样例的输入数据精度满足所述精度最大值;
在检测获知所述至少一个测试样例的输入数据精度满足所述精度最大值的情况下,根据预设的位置标识获取所述单元测试中的所有反向算子;
根据所述测试模板检测每个所述反向算子的反向计算精度是否均满足预设条件,在所有反向算子的反向计算精度均满足预设条件的情况下,发送所述算子的单元测试检测成功消息。
2.如权利要求1所述的方法,其特征在于,所述根据所述测试模板检测每个所述反向算子的反向计算精度是否均满足预设条件,包括:
解析所述测试模板获取反向梯度检查函数;
检测所述单元测试中每个所述反向算子是否均调用所述反向梯度检查函数进行反向计算生成反向计算结果;
在所有反向算子均生成所述反向计算结果的情况下,每个所述反向算子的反向计算精度满足预设的第一条件。
3.如权利要求2所述的方法,其特征在于,所述根据所述测试模板检测每个所述反向算子的反向计算精度是否均满足预设条件,还包括:
解析所述测试模板获取反向算子的数据尺寸;
检测所述单元测试中每个所述反向算子的输入数据维度是否与所述数据尺寸匹配;
在所有反向算子的输入数据维度均与所述数据尺寸匹配的情况下,每个所述反向算子的反向计算精度满足预设的第二条件。
4.如权利要求3所述的方法,其特征在于,所述根据所述测试模板检测每个所述反向算子的反向计算精度是否均满足预设条件,还包括:
解析所述测试模板获取反向算子的精度阈值;
计算所述单元测试中每个所述反向算子的前向计算结果和调用所述反向梯度检查函数进行反向计算生成反向计算结果,获取所述前向计算结果和所述反向计算结果的计算误差;
检测每个所述反向算子的计算误差是否与所述精度阈值匹配;
在所有反向算子的计算误差均与所述精度阈值匹配的情况下,每个所述反向算子的反向计算精度满足预设的第三条件。
5.如权利要求1-4任一所述的方法,其特征在于,在所述根据所述测试模板检测每个所述反向算子的反向计算精度是否均满足预设条件之后,还包括:
在至少一个所述反向算子的反向计算精度不满足预设条件的情况下,根据所述测试模板获取所述反向算子的精度缺失信息;
根据所述精度缺失信息发送携带所述反向算子位置标识的检测提示消息。
6.一种基于深度学习框架的算子精度检测装置,其特征在于,包括:
第一获取模块,用于获取深度学习框架中预设的与算子的单元测试对应的测试模板;
解析检测模块,用于解析所述测试模板获取所述单元测试的精度最大值,检测所述单元测试中是否至少一个测试样例的输入数据精度满足所述精度最大值;
第二获取模块,用于在检测获知所述至少一个测试样例的输入数据精度满足所述精度最大值的情况下,根据预设的位置标识获取所述单元测试中的所有反向算子;
检测模块,用于根据所述测试模板检测每个所述反向算子的反向计算精度是否均满足预设条件;
第一发送模块,用于在所有反向算子的反向计算精度均满足预设条件的情况下,发送所述算子的单元测试检测成功消息。
7.如权利要求6所述的装置,其特征在于,所述检测模块,包括:
第一解析单元,用于解析所述测试模板获取反向梯度检查函数;
第一检测单元,用于检测所述单元测试中每个所述反向算子是否均调用所述反向梯度检查函数进行反向计算生成反向计算结果;
第一确定单元,用于在所有反向算子均生成所述反向计算结果的情况下,每个所述反向算子的反向计算精度满足预设的第一条件。
8.如权利要求7所述的装置,其特征在于,所述检测模块,还包括:
第二解析单元,用于解析所述测试模板获取反向算子的数据尺寸;
第二检测单元,用于检测所述单元测试中每个所述反向算子的输入数据维度是否与所述数据尺寸匹配;
第二确定单元,用于在所有反向算子的输入数据维度均与所述数据尺寸匹配的情况下,每个所述反向算子的反向计算精度满足预设的第二条件。
9.如权利要求8所述的装置,其特征在于,所述检测模块,还包括:
第三解析单元,用于解析所述测试模板获取反向算子的精度阈值;
计算获取单元,计算所述单元测试中每个所述反向算子的前向计算结果和调用所述反向梯度检查函数进行反向计算生成反向计算结果,获取所述前向计算结果和所述反向计算结果的计算误差;
第三检测单元,用于检测每个所述反向算子的计算误差是否与所述精度阈值匹配;
第三确定单元,用于在所有反向算子的计算误差均与所述精度阈值匹配的情况下,每个所述反向算子的反向计算精度满足预设的第三条件。
10.如权利要求6-9任一所述的装置,其特征在于,还包括:
第三获取模块,用于在至少一个所述反向算子的反向计算精度不满足预设条件的情况下,根据所述测试模板获取所述反向算子的精度缺失信息;
第二发送模块,用于根据所述精度缺失信息发送携带所述反向算子位置标识的检测提示消息。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的基于深度学习框架的算子精度检测方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的基于深度学习框架的算子精度检测方法。
CN202011054639.XA 2020-09-29 2020-09-29 基于深度学习框架的算子精度检测方法和装置 Active CN112149828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011054639.XA CN112149828B (zh) 2020-09-29 2020-09-29 基于深度学习框架的算子精度检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011054639.XA CN112149828B (zh) 2020-09-29 2020-09-29 基于深度学习框架的算子精度检测方法和装置

Publications (2)

Publication Number Publication Date
CN112149828A true CN112149828A (zh) 2020-12-29
CN112149828B CN112149828B (zh) 2022-05-13

Family

ID=73894398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011054639.XA Active CN112149828B (zh) 2020-09-29 2020-09-29 基于深度学习框架的算子精度检测方法和装置

Country Status (1)

Country Link
CN (1) CN112149828B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112766512A (zh) * 2021-01-25 2021-05-07 北京大学(天津滨海)新一代信息技术研究院 基于元算子的深度学习框架诊断系统、方法、装置、设备及介质
CN114841326A (zh) * 2022-05-19 2022-08-02 北京百度网讯科技有限公司 深度学习框架的算子处理方法、装置、设备和存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268604A (zh) * 2013-05-10 2013-08-28 清华大学 双目视频深度图求取方法
US20150379497A1 (en) * 2014-06-27 2015-12-31 Miguel Florez System, device, and method for self-checkout shopping
CN109343978A (zh) * 2018-09-27 2019-02-15 郑州云海信息技术有限公司 一种深度学习分布式框架用的数据交换方法与装置
US20190092337A1 (en) * 2017-09-22 2019-03-28 Aurora Flight Sciences Corporation System for Monitoring an Operator
CN110163269A (zh) * 2019-05-09 2019-08-23 北京迈格威科技有限公司 基于深度学习的模型生成方法、装置和计算机设备
US20190303726A1 (en) * 2018-03-09 2019-10-03 Ciena Corporation Automatic labeling of telecommunication network data to train supervised machine learning
CN110414679A (zh) * 2019-08-02 2019-11-05 厦门美图之家科技有限公司 模型训练方法、装置、电子设备和计算机可读存储介质
CN111160551A (zh) * 2019-12-04 2020-05-15 上海寒武纪信息科技有限公司 计算图执行方法、计算机设备及存储介质
CN111259205A (zh) * 2020-01-15 2020-06-09 北京百度网讯科技有限公司 一种图数据库遍历方法、装置、设备及存储介质
CN111338635A (zh) * 2020-02-20 2020-06-26 腾讯科技(深圳)有限公司 计算图的图编译方法、装置、设备及存储介质
CN111538656A (zh) * 2020-04-17 2020-08-14 北京百度网讯科技有限公司 梯度检查的监控方法、装置、设备及存储介质
CN111666077A (zh) * 2020-04-13 2020-09-15 北京百度网讯科技有限公司 算子处理方法、装置、电子设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268604A (zh) * 2013-05-10 2013-08-28 清华大学 双目视频深度图求取方法
US20150379497A1 (en) * 2014-06-27 2015-12-31 Miguel Florez System, device, and method for self-checkout shopping
US20190092337A1 (en) * 2017-09-22 2019-03-28 Aurora Flight Sciences Corporation System for Monitoring an Operator
US20190303726A1 (en) * 2018-03-09 2019-10-03 Ciena Corporation Automatic labeling of telecommunication network data to train supervised machine learning
CN109343978A (zh) * 2018-09-27 2019-02-15 郑州云海信息技术有限公司 一种深度学习分布式框架用的数据交换方法与装置
CN110163269A (zh) * 2019-05-09 2019-08-23 北京迈格威科技有限公司 基于深度学习的模型生成方法、装置和计算机设备
CN110414679A (zh) * 2019-08-02 2019-11-05 厦门美图之家科技有限公司 模型训练方法、装置、电子设备和计算机可读存储介质
CN111160551A (zh) * 2019-12-04 2020-05-15 上海寒武纪信息科技有限公司 计算图执行方法、计算机设备及存储介质
CN111259205A (zh) * 2020-01-15 2020-06-09 北京百度网讯科技有限公司 一种图数据库遍历方法、装置、设备及存储介质
CN111338635A (zh) * 2020-02-20 2020-06-26 腾讯科技(深圳)有限公司 计算图的图编译方法、装置、设备及存储介质
CN111666077A (zh) * 2020-04-13 2020-09-15 北京百度网讯科技有限公司 算子处理方法、装置、电子设备及存储介质
CN111538656A (zh) * 2020-04-17 2020-08-14 北京百度网讯科技有限公司 梯度检查的监控方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
QIANG HU.ET AL: "DeepMutation++:A Mutation Testing Framework for deep learning Systems", 《2019 34TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112766512A (zh) * 2021-01-25 2021-05-07 北京大学(天津滨海)新一代信息技术研究院 基于元算子的深度学习框架诊断系统、方法、装置、设备及介质
CN114841326A (zh) * 2022-05-19 2022-08-02 北京百度网讯科技有限公司 深度学习框架的算子处理方法、装置、设备和存储介质
CN114841326B (zh) * 2022-05-19 2024-01-12 北京百度网讯科技有限公司 深度学习框架的算子处理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN112149828B (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
CN112270399B (zh) 基于深度学习的算子注册处理方法、装置及电子设备
JP7289334B2 (ja) コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
CN112149828B (zh) 基于深度学习框架的算子精度检测方法和装置
CN108595343A (zh) 应用程序的测试方法及装置
CN112509690A (zh) 用于控制质量的方法、装置、设备和存储介质
CN111309343A (zh) 一种开发部署方法及装置
CN112507090A (zh) 用于输出信息的方法、装置、设备和存储介质
CN112270168A (zh) 对白情感风格预测方法、装置、电子设备及存储介质
CN111654495B (zh) 用于确定流量产生来源的方法、装置、设备及存储介质
CN112306880A (zh) 测试方法、装置、电子设备和计算机可读存储介质
CN110647937A (zh) 标注模型训练方法及装置
CN111753964A (zh) 神经网络的训练方法和装置
CN111708477B (zh) 按键识别方法、装置、设备以及存储介质
CN109240928A (zh) 一种测试方法、装置、设备及存储介质
CN112346947A (zh) 性能检测方法、装置、电子设备和计算机可读介质
CN117421217A (zh) 一种软件功能自动测试方法、系统、终端及介质
CN111582139A (zh) 一种排污口识别方法、装置、电子设备和存储介质
CN114330221B (zh) 计分板实现方法、计分板、电子设备及存储介质
CN114116688B (zh) 数据处理与数据质检方法、装置及可读存储介质
CN111538656B (zh) 梯度检查的监控方法、装置、设备及存储介质
CN113190154B (zh) 模型训练、词条分类方法、装置、设备、存储介质及程序
CN110427330B (zh) 一种代码分析的方法以及相关装置
CN112270414A (zh) 算子监控方法、装置、电子设备及存储介质
CN112560459A (zh) 用于模型训练的样本筛选方法、装置、设备及存储介质
CN110968519A (zh) 一种游戏测试方法、装置、服务器及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231009

Address after: 361000 3F-B003, Zone C, Innovation Building, Software Park, Xiamen Torch High tech Zone, Xiamen, Fujian Province

Patentee after: Xiamen Zhonglian Century Co.,Ltd.

Address before: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100085

Patentee before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.