一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种算法测试方法、装置和存储介质与流程

2022-11-16 18:26:45 来源:中国专利 TAG:


1.本文涉及算法建模技术,尤指一种算法测试方法、装置和存储介质。


背景技术:

2.人工智能ai算法对人工智能技术的发展起重要作用。而ai算法往往具有输出不确定性的特点,即对同一组输入数据,输出的数据并不总是相同。因此需要对ai算法进行测试,构建测试素材集作为ai算法的输入,对ai算法不确定的输出进行数据分析,以评判ai算法的性能是否达到预期。
3.当前对ai算法的测试操作中缺少统一、自动化的测试流程,主要由技术人员自行根据实际需要手工完成测试操作,测试效果难以评估,且测试效率低。


技术实现要素:

4.本技术提供了一种算法测试方法、装置和存储介质,能够实现对算法的自动测试,且提升了测试效率。
5.本技术提供了一种算法测试方法,所述方法包括:
6.对算法进行封装;
7.根据封装后的算法以及获取的针对所述算法的测试素材集生成并存储测试任务;
8.运行存储的测试任务,并输出运行结果;
9.基于所述运行结果进行数据分析,以实现对所述算法的测试。
10.可选的,所述对算法进行封装,包括:
11.对算法进行第一次封装操作,所述第一次封装操作包括:编译和压缩中的一种或多种;
12.对经过第一次封装的算法再进行第二次封装使所述算法成为万维网web服务。
13.可选的,针对所述算法的测试素材集的获取方法,包括:
14.向所述web服务发送超文本传输协议http请求,所述请求包括所述测试素材集的网络存储路径;
15.通过所述web服务访问所述测试素材集的网络存储路径以获取相应的测试素材集。
16.可选的,所述运行存储的测试任务,包括:
17.获得用于测试任务运行的当前总可用资源以及每个测试任务运行所需资源;
18.根据获得的资源对存储的测试任务进行运行控制。
19.可选的,所述根据获得的资源对存储的测试任务进行运行控制,包括:
20.当所述当前总可用资源大于或等于每个测试任务运行所需资源之和时,运行存储的全部测试任务。
21.可选的,所述根据获得的资源对存储的测试任务进行运行控制,包括:
22.当所述当前总可用资源小于每个测试任务运行所需资源之和时,按照生成每个测
试任务的时间先后顺序依次运行测试任务,其中,每运行一测试任务,均判断当前总可用资源是否大于或等于下一待运行测试任务所需资源,如果是,则运行所述下一待运行测试任务;以及每一测试任务运行结束,将运行该测试任务的资源重新回收至当前总可用资源中。
23.可选的,所述根据获得的资源对存储的测试任务进行运行控制,包括:
24.当所述当前总可用资源小于每个测试任务运行所需资源之和时,按照测试任务优先级从高到低的顺序依次运行测试任务,其中,每运行一测试任务,均判断当前总可用资源是否大于或等于下一待运行测试任务所需资源,如果是,则运行所述下一待运行测试任务;以及每一测试任务运行结束,将运行该测试任务的资源重新回收至当前总可用资源中。
25.可选的,所述根据获得的资源对存储的测试任务进行运行控制,包括:
26.当所述当前总可用资源小于每个测试任务运行所需资源之和时,判断是否存在设置了优先级的测试任务,如果存在,则按照测试任务优先级从高到低的顺序依次运行测试任务;当设置了优先级的测试任务运行完毕后如果还剩余待运行测试任务,再根据生成所述剩余待运行测试任务的时间先后顺序依次运行所述剩余待运行测试任务,其中,每运行一测试任务,均判断当前总可用资源是否大于或等于下一待运行测试任务所需资源,如果是,则运行所述下一待运行测试任务;以及每一测试任务运行结束,将运行该测试任务使用的资源重新回收至当前总可用资源中。
27.可选的,所述方法还包括:
28.当按照测试任务优先级从高到低的顺序依次运行测试任务时,每运行一测试任务,判断当前是否存在高于运行的测试任务优先级的测试任务,如果存在,暂停当前运行的测试任务,重新按照测试任务优先级从高到低的顺序依次运行测试任务。
29.可选的,基于所述运行结果进行数据分析,包括以下一种或多种:
30.将所述运行结果和针对所述算法的测试素材集进行对比,得到所述算法的评价指标;
31.根据所述运行结果进行算法不同版本对比以实现对算法版本的评估;
32.根据所述运行结果分析针对所述算法的测试素材集中的测试素材分布;
33.根据所述运行结果调整针对所述算法的测试素材集;
34.生成由针对所述算法的测试素材集确定的所有维度或预设维度的统计分析结果;
35.根据所述运行结果分析测试素材集中的测试素材分布,以及根据所述测试素材分布得到所述测试素材集的维度,选择至少一个维度生成统计分析结果。
36.可选的,当基于所述运行结果进行数据分析,包括根据所述运行结果调整针对所述算法的测试素材集时,根据封装后的算法以及获取的针对所述算法的测试素材集生成并存储测试任务,包括:
37.根据封装后的算法以及获取的调整后的针对所述算法的测试素材集生成并存储测试任务。
38.本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述方法的步骤。
39.本技术还提供了一种算法测试装置,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现如前任一项所述方法。
40.与相关技术相比,本技术记载的技术方案,对算法进行封装并获取针对算法的测
试素材集生成测试任务;通过运行测试任务,并对运行结果进行分析实现了对所述算法的自动测试,提高了算法测试效率。
41.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
42.附图用来提供对本技术技术方案的理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。
43.图1为本技术实施例提供的算法测试方法流程图;
44.图2为本技术实施例提供的对算法进行封装的流程图;
45.图3为本技术实施例提供的运行存储的测试任务的流程图
46.图4为本技术实施例提供的算法测试方法的具体实施示意图;
47.图5为本技术实施例提供的算法测试装置结构图。
具体实施方式
48.本技术描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本技术所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
49.本技术包括并设想了与本领域普通技术人员已知的特征和元件的组合。本技术已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本技术中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
50.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本技术实施例的精神和范围内。
51.本技术实施例提供了一种算法测试方法,如图1所示,所述方法包括:
52.步骤s100对算法进行封装;
53.所述算法可包含多个版本;
54.步骤s101根据封装后的算法以及获取的针对所述算法的测试素材集生成并存储
测试任务;
55.当算法有多个版本时,每个版本的算法对应一个测试素材集;
56.如人脸识别算法,与其对应的测试素材集包括的测试素材可以有:男性人脸素材、女性人脸素材、儿童人脸素材、成年人人脸素材等;对于人脸识别算法,测试素材集中的测试素材可以为图片或视频;
57.所述测试素材集中的所有测试素材均可存储在相同的文件夹中,也可存储在不同的文件夹中;而将针对同一算法的所有测试素材存储在相同的文件夹,有利于提高生成测试任务的效率;
58.所述算法可以包括一个或多个副本;
59.当所述算法包括多个副本时,每个副本与测试素材集中的一个或多个测试素材对应,不同的副本可以对应不同的测试素材,也可以对应相同的测试素材;一个算法的所有副本对应的测试素材的集合为所述针对该算法的测试素材集;
60.当所述算法包括一个副本时,所述测试素材集仅对应该一个副本;
61.步骤s102运行存储的测试任务,并输出运行结果;
62.存储的测试任务可以为一个或多个,运行每个测试任务均会输出运行结果;
63.步骤s103基于所述运行结果进行数据分析,以实现对所述算法的测试。
64.本技术实施例记载的技术方案,能够实现对算法进行自动测试,提高了算法测试效率。
65.在一示例性实施例中,步骤s100对算法进行封装,如图2所示,包括:
66.步骤s1001对算法进行第一次封装操作,所述第一次封装操作包括:编译和压缩中的一种或多种;
67.步骤s1002对经过第一次封装的算法再进行第二次封装使所述算法成为万维网web服务。
68.现有的人工测试算法流程中也存在对算法进行封装的操作,但仅执行一次封装操作,实现对算法的编译、压缩,本技术实施例记载的技术方案在现有封装操作的基础上多进行一次封装操作使算法成为web服务,成为web服务后的算法可以进行远程访问,为测试过程中远程访问外部存储设备以获取测试所需的数据提供了可能。
69.在一示例性实施例中,针对所述算法的测试素材集的获取方法,包括:
70.向所述web服务发送超文本传输协议http请求,所述请求包括所述测试素材集的网络存储路径;
71.通过所述web服务访问所述测试素材集的网络存储路径以获取相应的测试素材集。
72.基于成为web服务器的算法,本技术实施例记载的技术方案实现了通过web服务远程访问测试素材集,方便测试素材集选取和调用。
73.在一示例性实施例中,步骤s102运行存储的测试任务,如图3所示,包括:
74.步骤s1021获得用于测试任务运行的当前总可用资源以及每个测试任务运行所需资源;
75.步骤s1022根据获得的资源对存储的测试任务进行运行控制。
76.当通过调用服务器运行测试任务时,所述资源可以为服务器的内存资源,计算资
源等。
77.在一示例性实施例中,步骤s1022根据获得的资源对存储的测试任务进行运行控制,包括:
78.当判断出当前总可用资源大于或等于每个测试任务运行所需资源之和时,运行存储的全部测试任务。
79.本实施例中,在当前总可用资源可以支持存储的全部测试任务运行时,运行存储的全部测试任务,可有效缩短测试进程,提高测试效率。
80.在一示例性实施例中,步骤s1022根据获得的资源对存储的测试任务进行运行控制,包括:
81.当判断当前总可用资源小于每个测试任务运行所需资源之和时,按照生成每个测试任务的时间先后顺序依次运行测试任务,其中,每运行一测试任务,均判断当前总可用资源是否大于或等于下一待运行测试任务所需资源,如果是,则运行所述下一待运行测试任务;以及每一测试任务运行结束,将运行该测试任务的资源重新回收至当前总可用资源中;或
82.按照测试任务优先级从高到低的顺序依次运行测试任务,其中,每运行一测试任务,均判断当前总可用资源是否大于或等于下一待运行测试任务所需资源,如果是,则运行所述下一待运行测试任务;以及每一测试任务运行结束,将运行该测试任务的资源重新回收至当前总可用资源中;或
83.判断是否存在设置了优先级的测试任务,如果存在,则按照测试任务优先级从高到低的顺序依次运行测试任务;当设置了优先级的测试任务运行完毕后如果还剩余待运行测试任务,再根据生成所述剩余待运行测试任务的时间先后顺序依次运行所述剩余待运行测试任务,其中,每运行一测试任务,均判断当前总可用资源是否大于或等于下一待运行测试任务所需资源,如果是,则运行所述下一待运行测试任务;以及每一测试任务运行结束,将运行该测试任务使用的资源重新回收至当前总可用资源中。
84.本实施例中,当前总可用资源小于每个测试任务运行所需资源之和时,需要对运行的测试任务进行选择,选择的方式可以为按照测试任务生成时间的先后顺序进行选择,也可以为按照测试任务的优先级的高低顺序进行选择,或者当存储的测试任务中的部分为设置了优先级的测试任务的情况下,先按照测试任务的优先级的高低顺序进行选择,再按照测试任务生成时间的先后顺序进行选择。每运行一测试任务,均会判断当前可总可用资源(当前总可用资源是随着当前运行的测试任务的数量的变化而不断变化的,当前运行的测试任务的数量多,当前总可用资源就少;反之,当前运行的测试任务的数量少,当前总可用资源就多)是否能够支持下一待运行的测试任务,如果能够支持,就继续运行下一待运行的测试任务,如果不能够支持,就停止测试任务的运行。本技术实施例所述的方案,在总可用资源足够的情况下,支持多测试任务、多副本的同时进行,有效地提高了测试效率。
85.在一示例性实施例中,所述方法还包括:
86.当按照测试任务优先级从高到低的顺序依次运行测试任务时,每运行一测试任务,判断当前是否存在高于运行的测试任务优先级的测试任务,如果存在,暂停当前运行的测试任务,重新按照测试任务优先级从高到低的顺序依次运行测试任务。暂停的测试任务的使用资源可以重新回收至当前总可用资源中;也可以保留暂停的测试任务的使用资源,
待高优先级的测试任务运行结束后,再继续运行所述暂停的测试任务。
87.由于存储的测试任务的优先级不是一成不变的,如测试人员修改了测试任务的优先级,因此本技术实施例在按照测试任务优先级运行测试任务的过程中,不断对测试任务的优先级进行再判断,如果发现有高于当前运行的测试任务优先级的测试任务,暂停当前运行的测试任务,重新去运行更高优先级的测试任务,确保高优先级的测试任务能够得到优先运行。
88.在一示例性实施例中,步骤s103基于所述运行结果进行数据分析,可以包括以下一种或多种:
89.将所述运行结果和针对所述算法的测试素材集进行对比,得到所述算法的评价指标;所述算法的评价指标可以包括:真正(tp,rue positives):预测为正,实际为正;真负(tn,true negatives):预测为负,实际为负;假正(fp,false positives):预测为正,实际为负;假负(fn,false negatives):预测为负,实际为正;
90.根据运行结果进行算法不同版本对比以实现对算法版本的评估;
91.根据运行结果分析测试素材集中的测试素材分布,如人脸识别算法所使用的测试素材集中有100个测试素材,所述测试素材涉及男性人脸素材、女性人脸素材、儿童人脸素材、成年人人脸素材,那么各个素材的数量即为测试素材分布;该素材分布结果可以通过可视化的图形表示;
92.根据所述运行结果调整针对所述算法的测试素材集,如根据所述素材分布判断素材选择的合理性,对不合理的测试素材进行调整;
93.生成由测试素材集确定的所有维度或预设维度的统计分析结果,如人脸识别算法的测试素材集包括不同性别、年龄的人脸素材,那么不同的性别和年龄即为所述测试素材集确定的维度;可以生成所有维度的统计分析结果,也可以仅生成测试人员所选择的预设维度的统计分析结果;所述统计分析结果可以包括:算法指标结果、素材分布结果和相应的漏检、误检图片或视频;该统计分析结果可以通过可视化的图形表示;
94.根据所述运行结果分析测试素材集中的测试素材分布,以及根据所述测试素材分布得到所述测试素材集的维度,选择至少一个维度生成统计分析结果;该统计分析结果可以通过可视化的图形表示;
95.根据所述运行结果进行算法的精准率、召回率、f1的统计。
96.在一示例性实施例中,所述方法还可以包括:当基于所述运行结果进行数据分析得到当前版本算法的精准率、召回率、f1的统计结果低于预设值时,将对应的测试素材集用于该算法的下一版本的测试。
97.在一示例性实施例中,当数据分析包括根据所述运行结果调整针对所述算法的测试素材集时,步骤s101根据封装后的算法以及获取的针对所述算法的测试素材集生成并存储测试任务,可以包括:
98.根据封装后的算法以及获取的调整后的针对所述算法的测试素材集生成并存储测试任务。
99.本技术实施例记载的方案,利用测试素材集得到运行结果,根据运行结果再调整测试素材集,进而实现了闭环测试流程,相对开环测试流程,闭环测试流程可以实现自我优化的效果。
100.在一实施例性实施例中,所述方法还包括:
101.根据数据分析的结果生成测试报告,具体的,根据需生成的测试报告所需的信息进行自动信息搜集,并根据搜集到的信息自动生成测试报告。
102.本技术实施例记载的技术方案可实现自动生成测试报告,节省了由测试人员编写测试报告的时间,提升了测试效率。
103.图4为一种本技术实施例记载的算法测试方法的具体实施示意图。
104.步骤s400获取算法;
105.步骤s401对算法进行第一次封装操作,所述第一次封装操作包括:编译和压缩中的一种或多种;
106.步骤s402对经过第一次封装的算法再进行第二次封装使所述算法成为万维网web服务;
107.步骤s403向所述web服务发送超文本传输协议http请求,所述请求包括所述测试素材集的网络存储路径;
108.步骤s404通过所述web服务访问所述测试素材集的网络存储路径以获取相应的测试素材集;
109.步骤s405将经过两次封装后的算法和获取的针对所述算法的测试素材集进行绑定,生成并存储测试任务;
110.可选的,所述测试任务中还可绑定所述算法的属性描述信息;
111.步骤s406通过调用服务器运行所述测试任务,判断当前服务器的总可用资源是否大于或等于每个测试任务运行所需资源之和时,如果是,执行步骤s407;如果不是,执行步骤s408
112.步骤s407运行存储的全部测试任务,执行步骤s409;
113.步骤s408根据获得的资源对存储的测试任务进行运行控制;
114.步骤s409基于测试任务的运行结果进行数据分析;
115.步骤s410将数据分析的结果生成分析报告;所述分析报告可以上传至统一的平台,或发送至指定的测试人员,流程结束。
116.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一实施例所述方法的步骤。
117.本技术实施例还提供了算法测试装置,如图5所示,包括存储器501和处理器502,所述存储器501存储有程序,所述程序在被所述处理器502读取执行时,实现如前任一实施例所述的方法。
118.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如
计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献