CN113672500B - 深度学习算法的测试方法、装置、电子装置和存储介质 - Google Patents

深度学习算法的测试方法、装置、电子装置和存储介质 Download PDF

Info

Publication number
CN113672500B
CN113672500B CN202110850333.3A CN202110850333A CN113672500B CN 113672500 B CN113672500 B CN 113672500B CN 202110850333 A CN202110850333 A CN 202110850333A CN 113672500 B CN113672500 B CN 113672500B
Authority
CN
China
Prior art keywords
test
deep learning
learning algorithm
result
tested
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
CN202110850333.3A
Other languages
English (en)
Other versions
CN113672500A (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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202110850333.3A priority Critical patent/CN113672500B/zh
Publication of CN113672500A publication Critical patent/CN113672500A/zh
Application granted granted Critical
Publication of CN113672500B publication Critical patent/CN113672500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种深度学习算法的测试方法、装置、电子装置和存储介质。其中,该深度学习算法的测试方法包括:获取待测的深度学习算法的测试集,其中,测试集包括多个测试数据,每个测试数据包括测试样本和测试标签;根据各测试标签确定各测试样本对应的标准结果;将各测试样本的测试任务并行下发到部署有待测的深度学习算法的数据计算集群,并获取数据计算集群返回的各测试样本的测试任务的执行结果,其中,执行结果包括待测的深度学习算法对应的测试样本的预测结果;根据各测试样本的标准结果和预测结果,获取待测的深度学习算法的测试结果。通过本申请,解决了相关技术中在深度学习算法的测试过程存在资源利用率低的问题,提高了资源利用率。

Description

深度学习算法的测试方法、装置、电子装置和存储介质
技术领域
本申请涉及深度学习算法领域,特别是涉及深度学习算法的测试方法、装置、电子装置和存储介质。
背景技术
深度学习算法在工业界受到了广泛关注和应用,目前在算法效果的测试方法中,存在着一定程度的手工依赖性以及测试过程缺乏系统管理等问题,对算法结构和参数进行优化过程中,无法避免算法在数据集上进行大量训练和测试,这些准备数据集、统计测试结果的工作,占据了大量时间,严重影响了算法人员的工作效率。
在相关技术中,通过设置一定数量的测试任务队列,为每个测试任务队列指定可入列测试任务的优先级范围;根据优先级所处范围将测试任务添加到相应的测试任务队列中的方式,保证了测试任务调度的公平性和有序性,并提高了测试任务队列组织的效率,可支持测试任务的串行调度和并行调度。然而,在研究过程中发现,上述方式是基于测试任务运行时间来实现优先级调度,没有考虑每个测试任务是否可以进一步细粒度划分,在数据量较大时,数据的读写会占用较多时间,造成GPU服务器、嵌入式设备等稀缺资源长时间处于空闲。
针对相关技术中深度学习算法的测试过程存在资源利用率低的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种深度学习算法的测试方法、装置、电子装置和存储介质,以解决相关技术中深度学习算法的测试过程存在资源利用率低的问题。
第一个方面,在本实施例中提供了一种深度学习算法的测试方法,包括:
获取待测的深度学习算法的测试集,其中,所述测试集包括多个测试数据,每个测试数据包括测试样本和测试标签;
根据各所述测试标签确定各测试样本对应的标准结果;
将各测试样本的测试任务并行下发到部署有所述待测的深度学习算法的数据计算集群,并获取所述数据计算集群返回的各测试样本的测试任务的执行结果,其中,所述执行结果包括所述待测的深度学习算法对应的测试样本的预测结果;
根据各所述测试样本的所述标准结果和所述预测结果,获取所述待测的深度学习算法的测试结果。
在其中的一些实施例中,在根据各所述测试标签确定各测试样本对应的标准结果之后,所述方法还包括:
将各所述测试样本的所述标准结果的数据格式并行转换成与所述测试结果相同的数据格式。
在其中的一些实施例中,将各测试样本的测试任务并行下发到部署有所述待测的深度学习算法的数据计算集群,并获取所述数据计算集群返回的各测试样本的测试任务的执行结果包括:
通过所述计算集群将各所述测试样本的测试任务并行下发到各所述测试样本所对应的worker节点,并获取所述执行结果。
在其中的一些实施例中,通过所述计算集群将各所述测试样本的测试任务并行下发到各所述测试样本所对应的worker节点,并获取所述执行结果包括:
通过所述计算集群获取正处于空闲状态的work节点;
通过所述计算集群基于EDF调度方式将各所述测试样本的测试任务并行下发到与各所述测试样本一一对应的正处于空闲状态下的所述worker节点,并获取所述执行结果。
在其中的一些实施例中,所述方法还包括:
在当前测试样本的所述标准结果或所述预测结果获取失败的情况下,停止对所述当前测试样本的测试。
在其中的一些实施例中,根据各所述测试样本的所述标准结果和所述预测结果,获取所述待测的深度学习算法的测试结果包括:
将各所述测试样本的所述标准结果和所述预测结果进行比对,并行生成各所述测试样本的测试比对结果;
根据各所述测试样本的测试比对结果和预设测试报告模板,并行生成所述待测的深度学习算法的测试结果。
在其中的一些实施例中,所述预设测试报告模板包括多条测试数据,每条测试数据对应于一个测试样本,所述测试数据包括对应的测试样本的多维属性项及测试结果;在生成所述待测的深度学习算法的测试结果之后,所述方法还包括:
根据所述多维属性项对各所述测试样本的预测成功率进行统计,获得与各属性项对应的预测成功率的统计结果,以确定所述待测的深度学习算法在各属性项下的预测表现。
在其中的一些实施例中,在获得与各属性项对应的预测成功率的统计结果之后,所述方法还包括:
可视化与各属性项对应的预测成功率的统计结果。
第二个方面,在本实施例中提供了一种深度学习算法的测试装置,包括:
第一获取模块,用于获取待测的深度学习算法的测试集,其中,所述测试集包括多个测试数据,每个测试数据包括测试样本和测试标签;
确定模块,用于根据各所述测试标签确定各测试样本对应的标准结果;
第二获取模块,用于将各测试样本的测试任务并行下发到部署有所述待测的深度学习算法的数据计算集群,并获取所述数据计算集群返回的各测试样本的测试任务的执行结果,其中,所述执行结果包括所述待测的深度学习算法对应的测试样本的预测结果;
第三获取模块,用于根据各所述测试样本的所述标准结果和所述预测结果,获取所述待测的深度学习算法的测试结果。
第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的深度学习算法的测试方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的深度学习算法的测试方法。
与相关技术相比,在本实施例中深度学习算法的测试方法、装置、电子装置和存储介质,通过获取待测的深度学习算法的测试集,其中,测试集包括多个测试数据,每个测试数据包括测试样本和测试标签;根据各测试标签确定各测试样本对应的标准结果;将各测试样本的测试任务并行下发到部署有待测的深度学习算法的数据计算集群,并获取数据计算集群返回的各测试样本的测试任务的执行结果,其中,执行结果包括待测的深度学习算法对应的测试样本的预测结果;根据各测试样本的标准结果和预测结果,获取待测的深度学习算法的测试结果的方式,解决了相关技术中在深度学习算法的测试过程存在资源利用率低的问题,提高了资源利用率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本实施例的深度学习算法的测试方法的终端的硬件结构框图;
图2是本实施例的深度学习算法的测试方法的流程图;
图3是本实施例的深度学习算法的测试架构部署图;
图4是本实施例的待测的深度学习算法的测试任务的划分示意图;
图5是本实施例的深度学习算法的测试方法的优选流程图;
图6是本实施例的worker节点的EDF调度策略的示意图;
图7是本实施例的深度学习算法的测试架构图;
图8是本实施例的深度学习算法的测试装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的深度学习算法的测试方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的深度学习算法的测试方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种深度学习算法的测试方法,该方法可以是但不限于应用在测试化框架设备中,图2是本实施例的深度学习算法的测试方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取待测的深度学习算法的测试集,其中,测试集包括多个测试数据,每个测试数据包括测试样本和测试标签。
在本步骤中,待测的深度学习算法的测试集可以是从存储有深度学习算法的测试集的数据库中获取的。
步骤S202,根据各测试标签确定各测试样本对应的标准结果。
在本步骤中,每个测试样本均有对应的测试标签,每个测试标签可以携带有该测试样本的标准结果。
步骤S203,将各测试样本的测试任务并行下发到部署有待测的深度学习算法的数据计算集群,并获取数据计算集群返回的各测试样本的测试任务的执行结果,其中,执行结果包括待测的深度学习算法对应的测试样本的预测结果。
在本步骤中,通过将各测试样本的测试任务并行下发到部署有待测的深度学习算法的数据计算集群,并获取数据计算集群返回的各测试样本的测试任务的执行结果的方式,实现了各测试样本的测试任务在数据计算集群进行并行运行,能够使得运行设备的计算资源集中,节约了设备成本,同时还提高了资源的利用率。
步骤S204,根据各测试样本的标准结果和预测结果,获取待测的深度学习算法的测试结果。
基于上述步骤S201至步骤S204,首先根据各测试标签确定各测试样本对应的标准结果,然后再将各测试样本的测试任务并行下发到部署有待测的深度学习算法的数据计算集群,并获取数据计算集群返回的各测试样本的测试任务的执行结果,最后再根据各测试样本的标准结果和预测结果,获取待测的深度学习算法的测试结果的方式,实现了各测试样本的测试任务在数据计算集群进行并行运行,能够使得运行设备的计算资源集中,节约了设备成本,同时还提高了资源的利用率,解决了相关技术中在深度学习算法的测试过程存在资源利用率低的问题。
在其中的一些实施例中,在根据各测试标签确定各测试样本对应的标准结果之后,还可以将各测试样本的标准结果的数据格式并行转换成与测试结果相同的数据格式。
在本实施例中,通过将各测试样本的标准结果的数据格式并行转换成与测试结果相同的数据格式的方式,可以使得各测试样本的标准结果的格式与测试结果的格式的统一标准化,以使得测试化框架设备可以兼容多种测试样本的格式。同时,还可以将多个测试样本的并行自动化转换,以减少深度学习算法的测试对人工的依赖性。
在其中的一些实施例中,将各测试样本的测试任务并行下发到部署有待测的深度学习算法的数据计算集群,并获取数据计算集群返回的各测试样本的测试任务的执行结果包括:通过计算集群将各测试样本的测试任务并行下发到各测试样本所对应的worker节点,并获取执行结果。
数据计算集群中有多种设备类型,每种设备类型中有多台运行设备,每种设备类型均有与之对应的worker节点,每个worker节点负责执行与之对应的测试样本的测试任务,并生成该测试样本的执行结果,在本实施例中,通过将各测试样本的测试任务并行下发到对应的worker节点,并获取执行结果的方式,实现了各测试样本的测试任务在数据计算集群中的多个worker节点上并行运行,能够使得运行设备的计算资源集中,节约了设备成本,以及还提高了资源的利用率。
需要说明的是,数据计算集群主要是用于运行深度学习算法的测试任务中的Demo运行任务,以及将不同的Demo运行任务分发给不同的worker节点,其中,worker节点管理着一个任务队列,同时worker节点还维护着一个设备链表,会将任务队列中的任务调度到链表中空闲设备上运行。通过该方式,可以实现运行多种平台(例如pytorch、tensorflow、caffe等)的Demo运行任务。
在其中的一些实施例中,通过计算集群将各测试样本的测试任务并行下发到各测试样本所对应的worker节点,并获取执行结果包括:通过计算集群获取正处于空闲状态的work节点;通过计算集群基于EDF调度方式将各测试样本的测试任务并行下发到与各测试样本一一对应的正处于空闲状态下的worker节点,并获取执行结果。
在本实施例中,worker节点管理的任务队列均采用EDF调度策略,采用双向循环链表将同类型的设备线性串联起来,在选择运行设备的时候采用轮询的方法检查设备是否可以执行任务,worker节点会记录上一次调度任务的设备节点,每次轮询时,并不是从头的节点开始,而是从记录的节点开始往后查找;当worker节点发现设备不可用时,会将该设备从链表中删除,添加新的设备时,会从记录的链表节点处将新设备加入链表;任务在设备上执行完成(执行失败)会将该设备恢复成可用的状态,worker节点会将任务的执行结果返回给master进程;通过上述方式,可以实现对个测试样本的任务调度。
在其中的一些实施例中,还可以在当前测试样本的标准结果或预测结果获取失败的情况下,停止对当前测试样本的测试。
在本实施例中,通过在当前测试样本的标准结果或预测结果获取失败的情况下,停止对当前测试样本的测试的方式,避免了该测试样本的测试任务后续的错误运行,而造成测试任务的时间浪费的问题。
需要说明的是,停止对当前测试样本的测试方式可以是,停止该当前测试样本的后续的测试任务的调度,并返回错误信息。
在其中的一些实施例中,根据各测试样本的标准结果和预测结果,获取待测的深度学习算法的测试结果包括:将各测试样本的标准结果和预测结果进行比对,并行生成各测试样本的测试比对结果;根据各测试样本的测试比对结果和预设测试报告模板,并行生成待测的深度学习算法的测试结果。
在本实施例中,预设测试报告模板可以根据用户的实际需要进行设置。如用来计算指定的统计指标,可以将预设测试报告模板设置成设定IOU值、按照类别统计、按照属性统计、按照事件统计等等;也可以设置成召回率、检测率、准确率、漏检率、虚检率等统计指标的高低,以用于反映深度学习算法是否在某些类别、属性上是否过于敏感、是否泛化能力不够,是否出现了过拟合等,通过上述模板配置,给用户提供了优化方向,以及便于用户对深度学习算法的测试效果的掌握。
在本实施例中,还将标准结果和预测结果进行对比,可以快速定位出在测试数据集上表现不佳的原因,如,数据集标注错误,数据集中出现较多的干扰源等。可以帮助用户对深度学习算法的测试数据集、训练数据集进行清洗和有效扩充。
在其中的一些实施例中,预设测试报告模板包括多条测试数据,每条测试数据对应于一个测试样本,测试数据包括对应的测试样本的多维属性项及测试结果;在生成待测的深度学习算法的测试结果之后,还可以根据多维属性项对各测试样本的预测成功率进行统计,获得与各属性项对应的预测成功率的统计结果,以确定待测的深度学习算法在各属性项下的预测表现。
在本实施例中,多维属性项可以包括但不限于:类别分类、目标检测匹配、属性识别等等,其对应的统计结果可以是类别分类是否正确、目标检测是否匹配、属性识别是否正确等;通过上述方式,可以帮助用户更优的了解深度学习算法的预测表现。
在其中的一些实施例中,在获得与各属性项对应的预测成功率的统计结果之后,还可以可视化与各属性项对应的预测成功率的统计结果。
在本实施例中,提供了一种数据可视化的界面,可以查看各个测试样本的各属性项对应的预测成功率的统计结果,通过该可视化的方式,可以便于用户更直接的获取到该深度学习算法的测试效果。
图3是本实施例的深度学习算法的测试架构部署图,如图3所示,该测试架构包括:
Nginx,在框架里充当负载均衡服务器,将来自网页web(HTML,HTMLS,VGA,Vue)的请求连接分配给连接数少的服务器。
Socket,数据接口。
HTTP/HTTPS,数据通道。
数据管理服务,提供了多途径的测试数据集的上传。
任务配置管理服务,包括算法结果的比对配置和指标统计的报告配置。
Demo管理服务,将Demo运行任务通过数据计算集群来运行。
设备管理服务,可以查看运行Demo运行任务的嵌入式设备、GPU服务器设备的状态。
测试任务流程管理服务,将待测的深度学习算法的测试任务划分为多个子任务。
测试任务流程消息服务,通过消息队列对多个子任务分别进行缓存。
测试任务流程运行模块,监听消息队列,并用于按照预设流程顺序执行多个子任务。
测试任务调度中心,通过测试任务流程管理服务和测试任务消息服务,来控制算法测试任务的执行,其中测试任务流程管理,负责将算法测试任务划分为多个子任务,测试任务执行服务是不同子任务的执行载体,测试任务消息服务负责将子任务信息准确的传递送给执行服务。
Mysql、Modgodb、文件存储系统用于对测试结果进行存储。
需要说明的是,可以对该测试架构用户权限进行限制,例如约束用户能查看哪些数据集、能查看哪些用户的测试任务。在该测试架构中采用了消息队列(rabbitmq)来实现消息的传递。
图4是本实施例的待测的深度学习算法的测试任务的划分示意图,如图4所示,用户提交的深度学习算法的各测试样本的自动化测试任务,可以划分为如下几个子任务:各测试样本的数据预处理任务、Demo运行任务(相当于上述实施例中的各测试样本的测试任务)、结果比对任务、生成测试结果任务等四个子任务,如图4所示,子任务执行流程依次是数据预处理、Demo运行、结果比对和生成测试结果;测试任务流程消息服务中定义了四个消息队列,分别负责四个子任务的消息传递工作;测试任务流程运行模块中,创建了48*4个进程分别负责四个子任务的运行,四个子任务进程,会监控对应的测试子任务消息队列,当消息队列中,有待执行的消息时,会将任务取出来执行。
需要说明的是,各测试样本的测试任务的数据计算集群运行,可以是指将各测试样本的测试任务中的Demo运行任务在数据计算集群运行,其中,通过将Demo运行任务交给数据计算集群来运行,进程通过网络通信方式,将Demo运行的信息通知给数据计算集群Master,数据计算集群信息包括存储数据集和Demo运行程序的网盘信息,运行Demo运行任务所对应的参数信息,数据计算集群Master收到信息后,将Demo运行任务分配给对应集群设备的Worker节点,当Demo运行任务完成后,数据计算集群Master通知测试Demo运行进程,任务结束。
下面通过优选实施例对本实施例进行描述和说明。
图5是本实施例的深度学习算法的测试方法的优选流程图,可以应用于如图3中所示的测试架构中,如图5所示,该深度学习算法的测试方法包括如下步骤:
步骤S501,获取待测的深度学习算法的测试集,其中,测试集包括多个测试数据,每个测试数据包括测试样本和测试标签。
步骤S502,将各测试样本的测试任务分别划分为四个子任务。
需要说明的是,每个测试样本的测试任务划分为四个子任务后,就会将任务交给调度中心,其中,四个子任务包括数据预处理、各测试样本的测试任务的数据计算集群运行、比对结果和生成测试结果。四个子任务均至少存在两种状态:可以运行状态、等待运行状态,其中,可以将数据预处理的初始状态设置为可以运行状态,以及将各测试样本的测试任务的数据计算集群运行、比对结果和生成测试结果的三个子任务的初始状态为等待运行状态。
步骤S503,通过测试任务调度中心将可以运行状态的子任务交给相应的消息队列。
步骤S504,通过测试任务流程运行模块监听消息队列是否存在状态为可以运行的子任务,若是则执行步骤S505,若否则结束。
步骤S505,并行执行状态为可以运行的子任务。
步骤S506,生成子任务运行结果。
步骤S507,判断是否存在下一个状态为可以运行的子任务,若是,则执行步骤S508,若否,则结束。
步骤S508,获取下一个状态为可以运行的子任务。
步骤S509,将下一个状态为可以运行的子任务发送到指定的消息队列中,并执行步骤S505。
在本实施例中,测试任务流程调度中心将可以运行状态的子任务交给相应的消息队列,首先将第一个子任务(数据预处理)信息放入数据集预处理消息队列,流程运行模块中的数据预处理进程会监控该队列,并将任务信息取出运行,当子任务流程运行结束后,会通知调度中心,任务结束并返回执行结果(包括执行成功,或者执行失败),调度中心继续将第二个子任务(各测试样本的测试任务的数据计算集群运行)的状态置为可以运行,并将其放入各测试样本的测试任务的数据计算集群运行消息队列,将各测试样本的测试任务从指定队列中取出各测试样本的测试任务运行消息,交由数据计算集群来运行,执行结束后,将执行结果返回给调度中心,调度中心继续调度下一个子任务,直到所有任务执行完成。其中任何一个子任务执行失败,调度中心将会停止该测试样本的后续子任务调度,并返回错误信息。
如图6所示,worker节点管理的任务队列均采用EDF调度策略,采用双向循环链表将同类型的设备线性串联起来,在选择运行设备的时候采用轮询的方法检查设备是否可以执行任务,worker节点会记录上一次调度任务的设备节点,每次轮询时,并不是从头的节点开始,而是从记录的节点开始往后查找。当worker节点发现设备不可用时,会将该设备从链表中删除,添加新的设备时,会从记录的链表节点处将新设备加入链表。任务在设备上执行完成(执行失败)会将该设备恢复成可用的状态,worker节点会将任务的执行结果返回给master进程。
图7是本实施例的深度学习算法的测试架构图,为了每个流程都提供了可以自行配置的插件,如图7所示,通过脚本插件,将测试数据集标注格式统一标准化,可以使框架兼容多种数据集格式;还可以基于数据计算集群对深度学习算法中的Demo任务运行进行配置,以使得可以正常运行不同平台(pytorch、tensorflow、caffe)的Demo任务运行,还可以通过比对配置和比对逻辑插件(上述实施例中生成的比对结果),可以非常灵活的制定各测试样本的比对结果,还可以与预设测试报告模板相配合,来实现深度学习算法的多样化的效果测试。
通过预设测试报告模板的方式,可以定制化测试报告样式,如用来计算指定的统计指标,可以将报告模板设置成设定IOU值、按照类别统计、按照属性统计、按照事件统计等等;也可以设置成召回率、检测率、准确率、漏检率、虚检率等统计指标的高低,以用于反映深度学习算法是否在某些类别、属性上是否过于敏感、是否泛化能力不够,是否出现了过拟合等,能够给算法人员提供优化方向。
在一些实施例中还提供了一种数据可视化的界面,可以查看每一张图片数据集或每一帧视频数据集,以及通过数据集多维度筛选,如:类别分类是否正确,目标检测是否匹配,属性识别是否正确等,将标注和算法输出进行对比,可以快速定位出算法在测试数据集上表现不佳的原因,如,数据集标注错误,数据集中出现较多的干扰源等。可以帮助算法人员对测试数据集、训练数据集进行清洗和有效扩充。
通过上述方式,实现了一种通用的深度学习算法的测试任务流程,通过web界面简单的参数配置、流程操作,即可实现不同类型的算法在大规模数据集上的自动化并行测试,能够减少算法效果测试对人工的依赖性。
基于各测试样本的比对结果,以及插件化脚本和预设测试报告模板能够满足不同类型的算法效果的验证需求,结合可视化界面,可以快速定位分析问题,为算法优化和数据清洗提供了有效的帮助。
在本实施例中,还根据不同的测试需求,将深度学习算法的测试任务划分为四个子任务,通过各个子任务的分块运行,实现了各测试样本的测试任务在数据计算集群进行运行,能够使得运行设备的计算资源集中,实现了GPU服务器、嵌入式设备等稀缺资源的高效利用。
在本实施例中还提供了一种深度学习算法的测试装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是本实施例的深度学习算法的测试装置的结构框图,如图8所示,该装置包括:
第一获取模块81,用于获取待测的深度学习算法的测试集,其中,测试集包括多个测试数据,每个测试数据包括测试样本和测试标签;
确定模块82,耦合至第一获取模块81,用于根据各测试标签确定各测试样本对应的标准结果;
第二获取模块83,耦合至确定模块82,用于将各测试样本的测试任务并行下发到部署有待测的深度学习算法的数据计算集群,并获取数据计算集群返回的各测试样本的测试任务的执行结果,其中,执行结果包括待测的深度学习算法对应的测试样本的预测结果;
第三获取模块84,耦合至第二获取模块83,用于根据各测试样本的标准结果和预测结果,获取待测的深度学习算法的测试结果。
在其中的一些实施例中,该装置还包括:转换模块,用于将各测试样本的标准结果的数据格式并行转换成与测试结果相同的数据格式。
在其中的一些实施例中,第二获取模块83包括:第一获取单元,用于通过计算集群将各测试样本的测试任务并行下发到各测试样本所对应的worker节点,并获取执行结果。
在其中的一些实施例中,第一获取单元包括:第一获取子单元,用于通过计算集群获取正处于空闲状态的work节点;第二获取子单元,用于通过计算集群基于EDF调度方式将各测试样本的测试任务并行下发到与各测试样本一一对应的正处于空闲状态下的worker节点,并获取执行结果。
在其中的一些实施例中,该装置还包括:停止模块,用于在当前测试样本的标准结果或预测结果获取失败的情况下,停止对当前测试样本的测试。
在其中的一些实施例中,第三获取模块84包括:比对单元,用于将各测试样本的标准结果和预测结果进行比对,并行生成各测试样本的测试比对结果;生成单元,用于根据各测试样本的测试比对结果和预设测试报告模板,并行生成待测的深度学习算法的测试结果。
在其中的一些实施例中,该装置还包括:第四获取模块,用于根据多维属性项对各测试样本的预测成功率进行统计,获得与各属性项对应的预测成功率的统计结果,以确定待测的深度学习算法在各属性项下的预测表现。
在其中的一些实施例中,该装置还包括:可视化模块,用于可视化与各属性项对应的预测成功率的统计结果。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤S201,获取待测的深度学习算法的测试集,其中,测试集包括多个测试数据,每个测试数据包括测试样本和测试标签。
步骤S202,根据各测试标签确定各测试样本对应的标准结果。
步骤S203,将各测试样本的测试任务并行下发到部署有待测的深度学习算法的数据计算集群,并获取数据计算集群返回的各测试样本的测试任务的执行结果,其中,执行结果包括待测的深度学习算法对应的测试样本的预测结果。
步骤S204,根据各测试样本的标准结果和预测结果,获取待测的深度学习算法的测试结果。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的深度学习算法的测试方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种深度学习算法的测试方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种深度学习算法的测试方法,其特征在于,包括:
获取待测的深度学习算法的测试集,其中,所述测试集包括多个测试数据,每个测试数据包括测试样本和测试标签;
根据各所述测试标签确定各测试样本对应的标准结果;
将各测试样本的测试任务并行下发到部署有所述待测的深度学习算法的数据计算集群,通过所述计算集群将各所述测试样本的测试任务并行下发到各所述测试样本所对应的worker节点,并获取所述数据计算集群返回的各测试样本的测试任务的执行结果,其中,所述执行结果包括所述待测的深度学习算法对应的测试样本的预测结果;
根据各所述测试样本的所述标准结果和所述预测结果,获取所述待测的深度学习算法的测试结果。
2.根据权利要求1所述的深度学习算法的测试方法,其特征在于,在根据各所述测试标签确定各测试样本对应的标准结果之后,所述方法还包括:
将各所述测试样本的所述标准结果的数据格式并行转换成与所述测试结果相同的数据格式。
3.根据权利要求1所述的深度学习算法的测试方法,其特征在于,通过所述计算集群将各所述测试样本的测试任务并行下发到各所述测试样本所对应的worker节点,并获取所述执行结果包括:
通过所述计算集群获取正处于空闲状态的work节点;
通过所述计算集群基于EDF调度方式将各所述测试样本的测试任务并行下发到与各所述测试样本一一对应的正处于空闲状态下的所述worker节点,并获取所述执行结果。
4.根据权利要求1所述的深度学习算法的测试方法,其特征在于,所述方法还包括:
在当前测试样本的所述标准结果或所述预测结果获取失败的情况下,停止对所述当前测试样本的测试。
5.根据权利要求1所述的深度学习算法的测试方法,其特征在于,根据各所述测试样本的所述标准结果和所述预测结果,获取所述待测的深度学习算法的测试结果包括:
将各所述测试样本的所述标准结果和所述预测结果进行比对,并行生成各所述测试样本的测试比对结果;
根据各所述测试样本的测试比对结果和预设测试报告模板,并行生成所述待测的深度学习算法的测试结果。
6.根据权利要求5所述的深度学习算法的测试方法,其特征在于,所述预设测试报告模板包括多条测试数据,每条测试数据对应于一个测试样本,所述测试数据包括对应的测试样本的多维属性项及测试结果;在生成所述待测的深度学习算法的测试结果之后,所述方法还包括:
根据所述多维属性项对各所述测试样本的预测成功率进行统计,获得与各属性项对应的预测成功率的统计结果,以确定所述待测的深度学习算法在各属性项下的预测表现。
7.根据权利要求6所述的深度学习算法的测试方法,其特征在于,在获得与各属性项对应的预测成功率的统计结果之后,所述方法还包括:
可视化与各属性项对应的预测成功率的统计结果。
8.一种深度学习算法的测试装置,其特征在于,包括:
第一获取模块,用于获取待测的深度学习算法的测试集,其中,所述测试集包括多个测试数据,每个测试数据包括测试样本和测试标签;
确定模块,用于根据各所述测试标签确定各测试样本对应的标准结果;
第二获取模块,用于将各测试样本的测试任务并行下发到部署有所述待测的深度学习算法的数据计算集群,通过所述计算集群将各所述测试样本的测试任务并行下发到各所述测试样本所对应的worker节点,并获取所述数据计算集群返回的各测试样本的测试任务的执行结果,其中,所述执行结果包括所述待测的深度学习算法对应的测试样本的预测结果;
第三获取模块,用于根据各所述测试样本的所述标准结果和所述预测结果,获取所述待测的深度学习算法的测试结果。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的深度学习算法的测试方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的深度学习算法的测试方法的步骤。
CN202110850333.3A 2021-07-27 2021-07-27 深度学习算法的测试方法、装置、电子装置和存储介质 Active CN113672500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110850333.3A CN113672500B (zh) 2021-07-27 2021-07-27 深度学习算法的测试方法、装置、电子装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110850333.3A CN113672500B (zh) 2021-07-27 2021-07-27 深度学习算法的测试方法、装置、电子装置和存储介质

Publications (2)

Publication Number Publication Date
CN113672500A CN113672500A (zh) 2021-11-19
CN113672500B true CN113672500B (zh) 2024-05-07

Family

ID=78540469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110850333.3A Active CN113672500B (zh) 2021-07-27 2021-07-27 深度学习算法的测试方法、装置、电子装置和存储介质

Country Status (1)

Country Link
CN (1) CN113672500B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115410072B (zh) * 2022-11-02 2024-05-31 广东交科检测有限公司 一种视频事件检测算法的测试方法及系统
CN115422094B (zh) * 2022-11-04 2023-02-28 浙江大华技术股份有限公司 算法自动化测试方法、中心调度设备及可读存储介质
WO2024119471A1 (zh) * 2022-12-09 2024-06-13 京东方科技集团股份有限公司 算法测试方法及算法测试平台、计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108734293A (zh) * 2017-04-13 2018-11-02 北京京东尚科信息技术有限公司 任务管理系统、方法和装置
CN111951946A (zh) * 2020-07-17 2020-11-17 合肥森亿智能科技有限公司 基于深度学习的手术排班系统、方法、存储介质和终端
CN112597141A (zh) * 2020-12-24 2021-04-02 国网山东省电力公司 一种基于舆情分析的网络流量检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108734293A (zh) * 2017-04-13 2018-11-02 北京京东尚科信息技术有限公司 任务管理系统、方法和装置
CN111951946A (zh) * 2020-07-17 2020-11-17 合肥森亿智能科技有限公司 基于深度学习的手术排班系统、方法、存储介质和终端
CN112597141A (zh) * 2020-12-24 2021-04-02 国网山东省电力公司 一种基于舆情分析的网络流量检测方法

Also Published As

Publication number Publication date
CN113672500A (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
CN113672500B (zh) 深度学习算法的测试方法、装置、电子装置和存储介质
CN108182111B (zh) 任务调度系统、方法和装置
CN111625331B (zh) 任务调度方法、装置、平台、服务器及存储介质
US10116534B2 (en) Systems and methods for WebSphere MQ performance metrics analysis
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN111045911B (zh) 性能测试方法、性能测试装置、存储介质与电子设备
CN103995735A (zh) 用于调度工作流作业的设备和方法
CN111459641B (zh) 一种跨机房的任务调度和任务处理的方法及装置
CN110083536B (zh) 测试资源分配方法及装置、电子设备及存储介质
CN107430526B (zh) 用于调度数据处理的方法和节点
CN110147470B (zh) 一种跨机房数据比对系统及方法
CN109639791A (zh) 一种容器环境下云工作流调度方法及系统
CN115756822A (zh) 高性能计算应用性能调优的方法及系统
CN116820714A (zh) 一种算力设备的调度方法、装置、设备和存储介质
CN116719622A (zh) 业务流程的编排方法及业务流程编排系统
CN113422808B (zh) 物联网平台http信息推送方法、系统、装置及介质
CN113760176A (zh) 数据存储方法和装置
CN114595075A (zh) 一种基于分布式调度的网络编排中异步任务执行方法
CN107193749A (zh) 测试方法、装置及设备
CN109829005A (zh) 一种大数据处理方法及装置
CN115373826A (zh) 一种基于云计算的任务调度方法及装置
CN112131070B (zh) 调用关系跟踪方法、装置、设备及计算机可读存储介质
CN114090201A (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