CN114356787B - 深度学习模型编译器的自动化测试方法、装置及存储介质 - Google Patents

深度学习模型编译器的自动化测试方法、装置及存储介质 Download PDF

Info

Publication number
CN114356787B
CN114356787B CN202210270367.XA CN202210270367A CN114356787B CN 114356787 B CN114356787 B CN 114356787B CN 202210270367 A CN202210270367 A CN 202210270367A CN 114356787 B CN114356787 B CN 114356787B
Authority
CN
China
Prior art keywords
model
file
configuration file
case configuration
use case
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.)
Active
Application number
CN202210270367.XA
Other languages
English (en)
Other versions
CN114356787A (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.)
Jiangsu Qingwei Intelligent Technology Co ltd
Original Assignee
Jiangsu Qingwei Intelligent 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 Jiangsu Qingwei Intelligent Technology Co ltd filed Critical Jiangsu Qingwei Intelligent Technology Co ltd
Priority to CN202210270367.XA priority Critical patent/CN114356787B/zh
Publication of CN114356787A publication Critical patent/CN114356787A/zh
Application granted granted Critical
Publication of CN114356787B publication Critical patent/CN114356787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种深度学习模型编译器的自动化测试方法、装置及存储介质。其中,深度学习模型编译器的自动化测试方法,包括:根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中数据结构用于存储用于创建单算子测试模型所需的参数信息;利用预先设置的测试框架对用例配置文件进行解析,确定与用例配置文件对应的模型框架类型;根据用例配置文件,生成与模型框架类型相关联的离线模型文件;通过离线模型文件进行与模型框架类型对应的深度学习模型编译器测试。

Description

深度学习模型编译器的自动化测试方法、装置及存储介质
技术领域
本发明涉及自动化测试技术领域,特别是涉及一种深度学习模型编译器的自动化测试方法、装置及存储介质。
背景技术
在深度学习模型编译器的测试过程中,最基本的测试覆盖就是测试这些通用算子的编译和部署后计算的正确性。通常对算子进行测试覆盖的时候需要对以下几个部分进行覆盖:算子的输入的矩阵维度;算子输入的矩阵shape;算子的各个计算公式中的各个参数。通常对于卷积、池化等参数比较多的算子进行参数组合覆盖测试时需要构建上百个用例。其他没有参数,只需要覆盖输入矩阵维度和输入矩阵shape的算子,也需要设计20+用例。通常对于编译器进行单个算子用例覆盖时需要构建上万个用例,对于多层级联测试场景需要构建更多的用例。而目前使用量较多的一些AI算法模型中,基础算子有50个左右,全量的算子在1000个左右。需要构建大量的用例才能够对编译器做全量的测试。现有的测试方案存在如下缺点:1. 构建模型流程复杂且耗时。每个用例都需要增加代码来创建相应的测试模型。对于一些复杂的级联的算子场景,脚本写作复杂,不利于大规模创建用测试。2.重复工作量较大。Caffe、Tensorflow、Pytorch等不同的深度学习框架相同的算子由于参数名称不一致,需要单独创建生成的模型脚本,进一步增加工作量。3. 用例管理和维护效率较低。该技术方案中的测试用例覆盖的参数和配置是写在代码中的。如果需要集中统一管理,需要通过表格或者文本记录的方式来详细记录每条用例对于参数的覆盖情况,增加了相应的工作量。
针对上述的现有技术中存在的现有的深度学习模型编译器测试方案存在流程复杂耗时、工作量大以及用例的管理和维护效率低的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种深度学习模型编译器的自动化测试方法、装置及存储介质,以至少解决现有技术中存在的现有的深度学习模型编译器测试方案存在流程复杂耗时、工作量大以及用例的管理和维护效率低的技术问题。
根据本公开实施例的一个方面,提供了一种深度学习模型编译器的自动化测试方法,包括:根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中数据结构用于存储用于创建单算子测试模型所需的参数信息;利用预先设置的测试框架对用例配置文件进行解析,确定与用例配置文件对应的模型框架类型;根据用例配置文件,生成与模型框架类型相关联的离线模型文件;通过离线模型文件进行与模型框架类型对应的深度学习模型编译器测试。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本公开实施例的另一个方面,还提供了一种深度学习模型编译器的自动化测试装置,包括:第一确定模型,用于根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中数据结构用于存储用于创建单算子测试模型所需的参数信息;第二确定模块,用于利用预先设置的测试框架对用例配置文件进行解析,确定与用例配置文件对应的模型框架类型;生成模块,用于根据用例配置文件,生成与模型框架类型相关联的离线模型文件;测试模块,用于通过离线模型文件进行与模型框架类型对应的深度学习模型编译器测试。
根据本公开实施例的另一个方面,还提供了一种深度学习模型编译器的自动化测试装置,包括:处理器;存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中数据结构用于存储用于创建单算子测试模型所需的参数信息;利用预先设置的测试框架对用例配置文件进行解析,确定与用例配置文件对应的模型框架类型;根据用例配置文件,生成与模型框架类型相关联的离线模型文件;通过离线模型文件进行与模型框架类型对应的深度学习模型编译器测试。
在本公开实施例中,深度学习模型编译器测试的过程中通过配置文件的方式,可以减少代码开发工作量,让用例的创建更加高效和简单。简化测试用例输入模型的构造流程,提高用例写作效率。一套用例可以适配多个深度学习框架,不需要对每个用例重新修改和适配。优化用例管理方式。能够更方便的批量管理用例和更方便的裁剪用例。进而解决了现有技术中存在的现有的深度学习模型编译器测试方案存在流程复杂耗时、工作量大以及用例的管理和维护效率低的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本发明的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;
图2是根据本公开实施例1的第一个方面所述的深度学习模型编译器的自动化测试方法的流程示意图;
图3A是根据本公开实施例1所述的深度学习模型编译器的自动化测试方法的另一流程示意图;
图3B是根据本公开实施例1所述的离线模型文件的模型结构的示意图;
图4是根据本公开实施例1所述的离线模型文件生辰的流程示意图;
图5是根据本公开实施例2所述的深度学习模型编译器的自动化测试装置的示意图;
图6是根据本公开实施例3所述的深度学习模型编译器的自动化测试装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,还提供了一种深度学习模型编译器的自动化测试方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现深度学习模型编译器的自动化测试方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的深度学习模型编译器的自动化测试方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的深度学习模型编译器的自动化测试方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
在上述运行环境下,根据本实施例的第一个方面,提供了一种深度学习模型编译器的自动化测试方法。图2示出了该方法的流程示意图,参考图3所示,该方法包括:
S202:根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中数据结构用于存储用于创建单算子测试模型所需的参数信息;
S204:利用预先设置的测试框架对用例配置文件进行解析,确定与用例配置文件对应的模型框架类型;
S206:根据用例配置文件,生成与模型框架类型相关联的离线模型文件;
S208:通过离线模型文件进行与模型框架类型对应的深度学习模型编译器测试。
正如背景技术中所述的,现有的测试方案存在如下缺点:1. 构建模型流程复杂且耗时。每个用例都需要增加代码来创建相应的测试模型。对于一些复杂的级联的算子场景,脚本写作复杂,不利于大规模创建用测试。2.重复工作量较大。Caffe、Tensorflow、Pytorch等不同的深度学习框架相同的算子由于参数名称不一致,需要单独创建生成的模型脚本,进一步增加工作量。3. 用例管理和维护效率较低。该技术方案中的测试用例覆盖的参数和配置是写在代码中的。如果需要集中统一管理,需要通过表格或者文本记录的方式来详细记录每条用例对于参数的覆盖情况,增加了相应的工作量。
有鉴于此,本申请实施例提供了一种深度学习模型编译器的自动化测试方法,首先计算设备根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中数据结构用于存储用于创建单算子测试模型所需的参数信息(S202)。
具体地,其中数据结构来存储创建单算子测试模型所需要的算子输入矩阵shape信息和算子参数等关键信息。用户通过预先设定的数据结构输入参数,其中参数为用户需要进行测试的深度学习模型编译器的参数信息,然后生成用例配置文件。
此外,参考图3A所示,用例配置文件还可以通过预先设定的规则进行遍历生成。其中遍历规则需要编写用例的人根据对应所需要测试的模型/算子参数添加。例如:一个模型有两个参数a和b,取值范围分别为True和False。那么编写用例的人只需要添加两条规则给出参数范围range_a=[True,False] range_b=[True,False]那么就会将两个参数组合遍历生成四个用例,分别为{a:True,b:True}{a:False,b:False}{a:True,b:False}{a:False,b:True}。从而实现用例配置文件的生成。
进一步地,计算设备利用预先设置的测试框架对用例配置文件进行解析,确定与用例配置文件对应的模型框架类型(S204)。
具体地,通过测试框架对用例配置文件进行解析,确定用例配置文件的参数信息,从而确定模型框架类型。其中参考图3A所示,模型框架类型例如可以包括TensorFlow、Caffe、Pytorch、ONNX等。
进一步地,计算设备根据用例配置文件,生成与模型框架类型相关联的离线模型文件(S206)。然后通过离线模型文件进行与模型框架类型对应的深度学习模型编译器测试(S208)。
具体地,通过生成与模型框架类型相对应的离线模型文件,从而通过该离线模型文件既可以对该深度学习模型编译器进行测试。从而通过上述方式完成深度学习模型编译器的自动化测试。
从而通过上述方式,深度学习模型编译器测试的过程中通过配置文件的方式,可以减少代码开发工作量,让用例的创建更加高效和简单。简化测试用例输入模型的构造流程,提高用例写作效率。一套用例可以适配多个深度学习框架,不需要对每个用例重新修改和适配。优化用例管理方式。能够更方便的批量管理用例和更方便的裁剪用例。进而解决了现有技术中存在的现有的深度学习模型编译器测试方案存在流程复杂耗时、工作量大以及用例的管理和维护效率低的技术问题。
可选地,根据预先设置的数据结构以及用户的输入信息,确定用例配置文件的操作之前,还包括:创建数据结构,其中数据结构用来存储单算子测试模型所需要的参数信息。
具体地,定义一个统一的数据结构来存储创建单算子测试模型所需要的算子输入矩阵shape信息和算子参数等关键信息。这样就可以将每个测试用例使用配置文件描述出来。从而将深度学习单算子测试用例配置文件化,和代码充分解耦之后可以极大的提高测试用例写作效率。
可选地,还包括:将多种深度学习模型的接口进行统一封装。
具体地,对每个深度学习框架的创建模型的API接口进行统一封装,使其可以直接读取用例的配置文件来生成对应的用例。例如,在Caffe和Tensorflow两个深度学习框架中,卷积算子公式相同,但是相同参数的名称在两个框架不相同。通过统一的接口封装可以屏蔽这个差异,让同一个用例配置文件可以直接生成不同深度学习框架的用例模型。在测试用例配置文件化的基础上进一步封装模型生成接口可以有效的屏蔽不同深度学习框架间的差异,达到可以进一步增加测试用例构造效率的效果。
此外,通过定义数据结构以及封装接口,后续增加测试用例模型时是需要批量的创建用例的配置文件,而不需要开发新代码就可以生成对应的用例所需要的单算子模型,减少了相关开发的工作量。同时,用例配置和代码解耦之后只需要维护一套配置文件就可以管理所有的用例。针对新的验证需求和场景只需要规格规则筛选配置文件,而不需要修改和裁剪代码。
可选地,生成与模型框架类型相关联的离线模型文件之前,还包括:构建离线模型文件的模型结构,其中模型结构与模型框架类型相关联。
具体地,参考图3B所示,示出了用例模型文件的配置文件结构,从而便于后期离线文件的创建。
可选地,构建模型结构的操作,包括:配置深度学习模型中多个算子的连接顺序;配置多个算子的参数值;配置模型结构的矩阵信息,其中矩阵信息包括矩阵个数以及矩阵维数。
具体地,参考图3B所示,第一个关键配置是通过op_list字段定义需要构建的模型的结构,主要是算子的名称和在模型中的连接顺序。第二个关键配置在create_params中定义每一层算子的参数,根据封装的接口名称写入对应的值。第三个关键配置是定义模型的输入矩阵个数,以及每个矩阵的shape。从而通过上述配置实现模型结构的构建。
可选地,生成与模型框架类型相关联的离线模型文件的操作,包括:解析用例配置文件,确定用例配置文件对应的数据信息,其中数据信息包括模型输入层的个数以及输入层的规格信息;获取每个输入层的创建接口,创建算子;根据预先设置的模型结构,将多个输入层对应的多个算子进行连接,确定离线模型文件。
具体地,参考图4所示,示出了离线模型文件的生成流程图,具体步骤如下:
1,测试框架读取模型配置文件。
2,解析配置文件中data_num和input_shape获取模型输入层的个数和输入层的规格。
3,遍历op_list,通过op_list中的算子名称获取对应算子创建的API接口,并从create_params中获取到对应API所需要的参数创建对应的算子实例。
4,根据配置好的模型结构,将第三步创建的算子实例按照对应的顺序将算子的输入和输出节点连接起来生成对应的算子网络。最后调用对应深度学习框架的接口保存离线模型。
从而通过上述方式,可以生成与模型框架类型对应的离线模型文件,从而实现深度学习模型编译器的自动化测试。
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
从而根据本实施例,深度学习模型编译器测试的过程中通过配置文件的方式,可以减少代码开发工作量,让用例的创建更加高效和简单。简化测试用例输入模型的构造流程,提高用例写作效率。一套用例可以适配多个深度学习框架,不需要对每个用例重新修改和适配。优化用例管理方式。能够更方便的批量管理用例和更方便的裁剪用例。进而解决了现有技术中存在的现有的深度学习模型编译器测试方案存在流程复杂耗时、工作量大以及用例的管理和维护效率低的技术问题。
此外,本发明还存在如下技术效果:
1. 生成模型文件的常规通用做法是通过代码调用各个深度学习框架(caffe/tensorflow/pytorch/onnx)各个API接口生成对应的模型,相当于每增加一个用例需要增加模型生成的代码。通过配置文件的方式,可以减少代码开发工作量,让用例的创建更加高效和简单。
2. 用例配置文件化之后可以通过脚本来批量生成配置文件的方式来创建更多的用例,可以进一步提高用例生成效率。
3. 用例配置文件化之后和代码充分进行解耦,可以更加方便的管理用例。例如对用例的修改裁剪,横向对比,覆盖度分析更加方便。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图5示出了根据本实施例所述的深度学习模型编译器的自动化测试装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:第一确定模型510,用于根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中数据结构用于存储用于创建单算子测试模型所需的参数信息;第二确定模块520,用于利用预先设置的测试框架对用例配置文件进行解析,确定与用例配置文件对应的模型框架类型;生成模块530,用于根据用例配置文件,生成与模型框架类型相关联的离线模型文件;测试模块540,用于通过离线模型文件进行与模型框架类型对应的深度学习模型编译器测试。
可选地,根据预先设置的数据结构以及用户的输入信息,确定用例配置文件的操作之前,装置500还包括:创建模块,用于创建数据结构,其中数据结构用来存储单算子测试模型所需要的参数信息。
可选地,装置500还包括:封装模块,用于将多种深度学习模型的接口进行统一封装。
可选地,生成与模型框架类型相关联的离线模型文件之前,装置500还包括:构建模块,用于构建离线模型文件的模型结构,其中模型结构与模型框架类型相关联。
可选地,构建模块包括:第一配置子模块,用于配置深度学习模型中多个算子的连接顺序;第二配置子模块,用于配置多个算子的参数值;第三配置子模块,用于配置模型结构的矩阵信息,其中矩阵信息包括矩阵个数以及矩阵维数。
可选地,生成模块530包括:第一确定子模块,用于解析用例配置文件,确定用例配置文件对应的数据信息,其中数据信息包括模型输入层的个数以及输入层的规格信息;创建子模块,用于获取每个输入层的创建接口,创建算子;第二确定子模块,用于根据预先设置的模型结构,将多个输入层对应的多个算子进行连接,确定离线模型文件。
从而根据本实施例,深度学习模型编译器测试的过程中通过配置文件的方式,可以减少代码开发工作量,让用例的创建更加高效和简单。简化测试用例输入模型的构造流程,提高用例写作效率。一套用例可以适配多个深度学习框架,不需要对每个用例重新修改和适配。优化用例管理方式。能够更方便的批量管理用例和更方便的裁剪用例。进而解决了现有技术中存在的现有的深度学习模型编译器测试方案存在流程复杂耗时、工作量大以及用例的管理和维护效率低的技术问题。
实施例3
图6示出了根据本实施例所述的深度学习模型编译器的自动化测试装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:处理器610;存储器620,与处理器610连接,用于为处理器610提供处理以下处理步骤的指令:根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中数据结构用于存储用于创建单算子测试模型所需的参数信息;利用预先设置的测试框架对用例配置文件进行解析,确定与用例配置文件对应的模型框架类型;根据用例配置文件,生成与模型框架类型相关联的离线模型文件;通过离线模型文件进行与模型框架类型对应的深度学习模型编译器测试。
可选地,根据预先设置的数据结构以及用户的输入信息,确定用例配置文件的操作之前,存储器620还用于为处理器610提供处理以下处理步骤的指令:创建数据结构,其中数据结构用来存储单算子测试模型所需要的参数信息。
可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:将多种深度学习模型的接口进行统一封装。
可选地,生成与模型框架类型相关联的离线模型文件之前,存储器620还用于为处理器610提供处理以下处理步骤的指令:构建离线模型文件的模型结构,其中模型结构与模型框架类型相关联。
可选地,构建模型结构的操作,包括:配置深度学习模型中多个算子的连接顺序;配置多个算子的参数值;配置模型结构的矩阵信息,其中矩阵信息包括矩阵个数以及矩阵维数。
可选地,生成与模型框架类型相关联的离线模型文件的操作,包括:解析用例配置文件,确定用例配置文件对应的数据信息,其中数据信息包括模型输入层的个数以及输入层的规格信息;获取每个输入层的创建接口,创建算子;根据预先设置的模型结构,将多个输入层对应的多个算子进行连接,确定离线模型文件。
从而根据本实施例,深度学习模型编译器测试的过程中通过配置文件的方式,可以减少代码开发工作量,让用例的创建更加高效和简单。简化测试用例输入模型的构造流程,提高用例写作效率。一套用例可以适配多个深度学习框架,不需要对每个用例重新修改和适配。优化用例管理方式。能够更方便的批量管理用例和更方便的裁剪用例。进而解决了现有技术中存在的现有的深度学习模型编译器测试方案存在流程复杂耗时、工作量大以及用例的管理和维护效率低的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种深度学习模型编译器的自动化测试方法,其特征在于,包括:
根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中所述数据结构用于存储用于创建单算子测试模型所需的参数信息;
利用预先设置的测试框架对所述用例配置文件进行解析,确定与所述用例配置文件对应的模型框架类型;
根据所述用例配置文件,生成与所述模型框架类型相关联的离线模型文件;
通过所述离线模型文件进行与所述模型框架类型对应的深度学习模型编译器测试;
生成与所述模型框架类型相关联的离线模型文件之前,还包括:
构建所述离线模型文件的模型结构,其中所述模型结构与所述模型框架类型相关联;
生成与所述模型框架类型相关联的离线模型文件的操作,包括:
解析所述用例配置文件,确定所述用例配置文件对应的数据信息,其中所述数据信息包括模型输入层的个数以及输入层的规格信息;
获取每个所述输入层的创建接口,创建算子;
根据预先设置的所述模型结构,将多个所述输入层对应的多个算子进行连接,确定所述离线模型文件。
2.根据权利要求1所述的方法,其特征在于,根据预先设置的数据结构以及用户的输入信息,确定用例配置文件的操作之前,还包括:
创建数据结构,其中所述数据结构用来存储单算子测试模型所需要的参数信息。
3.根据权利要求1所述的方法,其特征在于,还包括:
将多种深度学习模型的接口进行统一封装。
4.根据权利要求3所述的方法,其特征在于,构建所述离线模型文件的模型结构的操作,包括:
配置深度学习模型中多个算子的连接顺序;
配置所述多个算子的参数值;
配置模型结构的矩阵信息,其中矩阵信息包括矩阵个数以及矩阵维数。
5.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至4中任意一项所述的方法。
6.一种深度学习模型编译器的自动化测试装置,其特征在于,包括:
第一确定模型,用于根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中所述数据结构用于存储用于创建单算子测试模型所需的参数信息;
第二确定模块,用于利用预先设置的测试框架对所述用例配置文件进行解析,确定与所述用例配置文件对应的模型框架类型;
生成模块,用于根据所述用例配置文件,生成与所述模型框架类型相关联的离线模型文件;
测试模块,用于通过所述离线模型文件进行与所述模型框架类型对应的深度学习模型编译器测试;
生成与所述模型框架类型相关联的离线模型文件之前,还包括:
构建所述离线模型文件的模型结构,其中所述模型结构与所述模型框架类型相关联;
生成与所述模型框架类型相关联的离线模型文件的操作,包括:
解析所述用例配置文件,确定所述用例配置文件对应的数据信息,其中所述数据信息包括模型输入层的个数以及输入层的规格信息;
获取每个所述输入层的创建接口,创建算子;
根据预先设置的所述模型结构,将多个所述输入层对应的多个算子进行连接,确定所述离线模型文件。
7.根据权利要求6所述的装置,其特征在于,根据预先设置的数据结构以及用户的输入信息,确定用例配置文件的操作之前,还包括:
创建模块,用于创建数据结构,其中所述数据结构用来存储单算子测试模型所需要的参数信息。
8.一种深度学习模型编译器的自动化测试装置,其特征在于,包括:
处理器;
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
根据预先设置的数据结构以及用户的输入信息,确定用例配置文件,其中所述数据结构用于存储用于创建单算子测试模型所需的参数信息;
利用预先设置的测试框架对所述用例配置文件进行解析,确定与所述用例配置文件对应的模型框架类型;
根据所述用例配置文件,生成与所述模型框架类型相关联的离线模型文件;
通过所述离线模型文件进行与所述模型框架类型对应的深度学习模型编译器测试;
生成与所述模型框架类型相关联的离线模型文件之前,还包括:
构建所述离线模型文件的模型结构,其中所述模型结构与所述模型框架类型相关联;
生成与所述模型框架类型相关联的离线模型文件的操作,包括:
解析所述用例配置文件,确定所述用例配置文件对应的数据信息,其中所述数据信息包括模型输入层的个数以及输入层的规格信息;
获取每个所述输入层的创建接口,创建算子;
根据预先设置的所述模型结构,将多个所述输入层对应的多个算子进行连接,确定所述离线模型文件。
CN202210270367.XA 2022-03-18 2022-03-18 深度学习模型编译器的自动化测试方法、装置及存储介质 Active CN114356787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210270367.XA CN114356787B (zh) 2022-03-18 2022-03-18 深度学习模型编译器的自动化测试方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210270367.XA CN114356787B (zh) 2022-03-18 2022-03-18 深度学习模型编译器的自动化测试方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN114356787A CN114356787A (zh) 2022-04-15
CN114356787B true CN114356787B (zh) 2022-08-16

Family

ID=81094933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210270367.XA Active CN114356787B (zh) 2022-03-18 2022-03-18 深度学习模型编译器的自动化测试方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114356787B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407299B (zh) * 2023-10-18 2024-05-07 北京大学 模型测试方法和***
CN117707608B (zh) * 2024-02-04 2024-04-12 深圳市分秒网络科技有限公司 自动化配置文件参数的方法以及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200019488A1 (en) * 2018-07-12 2020-01-16 Sap Se Application Test Automate Generation Using Natural Language Processing and Machine Learning
CN110705714B (zh) * 2019-09-27 2022-07-22 上海联影医疗科技股份有限公司 深度学***台以及计算机设备
CN111275199A (zh) * 2020-01-17 2020-06-12 深圳壹账通智能科技有限公司 一种深度学习模型文件的转换方法、***、计算机设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN114356787A (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
CN114356787B (zh) 深度学习模型编译器的自动化测试方法、装置及存储介质
CN106681903B (zh) 生成测试用例的方法及装置
CN102520972B (zh) 电子游戏开发***及其方法
US7367006B1 (en) Hierarchical, rules-based, general property visualization and editing method and system
US9921569B2 (en) Field device commissioning system and method
CN110347383A (zh) 跨平台桌面应用的前端开发方法及装置
CN111309734B (zh) 自动生成表数据的方法及***
CN111198973A (zh) 基于领域模型的业务可视化处理方法及装置
CN108460068A (zh) 报表导入导出的方法、装置、存储介质及终端
CN109840074B (zh) 一种业务生成方法、装置及网络设备
CN113268243A (zh) 内存预测方法及装置、存储介质、电子设备
CN109522642B (zh) 设备的仿真方法和装置
CN115774707B (zh) 基于对象属性数据处理方法和装置、电子设备和存储介质
CN108491213A (zh) 软件持续集成方法、软件持续集成装置及电子设备
US20170220449A1 (en) Infrastructure rule generation
CN111026047B (zh) 软件的配置方法及装置
Handkiewicz et al. Design automation of a lossless multiport network and its application to image filtering
CN115442266A (zh) 网关性能测试方法、装置、存储介质及电子装置
CN115599401A (zh) 自定义模型的发布方法、装置、设备及介质
CN114328181A (zh) 测试用例的生成和执行方法、装置以及存储介质
CN108334313A (zh) 用于大型soc研发的持续集成方法、装置及代码管理***
CN112182115A (zh) 关系的展示方法和装置、存储介质、电子装置
US11182409B2 (en) Data processing with tags
CN112416488A (zh) 一种用户画像实现的方法、装置、计算机设备及计算机可读存储介质
CN110609781A (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