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

一种模型推荐的方法、装置和计算机设备与流程

2022-08-31 20:29:57 来源:中国专利 TAG:


1.本技术涉及人工智能(artificial intelligence,ai)技术领域,尤其涉及一种模型推荐的方法、装置和计算机设备。


背景技术:

2.近年来,随着人工智能领域的发展,包括深度学习等计算机技术逐渐被应用于各行各业之中,各种神经网络模型也层出不穷。然而,不同的神经网络模型的结构之间存在较大的差异,例如,模型的层数不同,每一层的结点数量不同,每个结点的算子的类型不同或者层与层之间连接关系不同等。不同结构的神经网络模型适用于不同的应用场景,因此,在实际应用中,需要从众多的神经网络模型中选择出适合当前用户需求的模型。人工进行神经网络模型的筛选需要有很强的专业知识和工作经验,并且筛选过程中非常耗时耗力。
3.使用神经网络模型搜索算法可以自动根据训练数据搜索并推荐出适合于当前应用场景的神经网络模型,推荐的模型的精度也可以超过人工筛选的神经网络模型,满足用户的需求。但是当前神经网络模型推荐的技术,搜索时间较长,在搜索过程中需要消耗大量的计算资源,并且选择出的模型不一定能完全适用于当前的应用场景。因此,如何提供一种高效且能感知用户使用的设备的计算能力的模型推荐方法成为亟待解决的技术问题。


技术实现要素:

4.本技术提供了一种模型推荐的方法、装置和计算机设备,以此提供一种高效的且能感知用户使用的设备的计算能力的模型推荐的方法,提高应用程序处理数据的能力。
5.第一方面,提供一种模型推荐的方法,该方法包括:获取应用程序的代理数据集,其中,代理数据集用于评价应用程序处理数据的能力,应用程序运行于计算设备上;根据代理数据集和计算设备的硬件参数推荐适合于应用程序的模型。通过上述方法,可以为应用程序推荐适用于运行应用程序的计算设备以及使用应用程序的应用场景的模型,并且可以提高应用程序输出结果的准确性。
6.在一种可能的实现方式中,模型推荐方法运行于第一设备上,在推荐适合于应用程序的模型之前,该方法包括:数据中心获取计算设备的硬件参数,数据中心还根据计算设备的硬件参数指定第一设备,其中,第一设备的硬件参数与计算设备的硬件参数相同。通过上述方法,用户可以直接使用另一个设备执行模型推荐方法,无需在运行应用程序的计算设备上执行模型推荐算法,减少计算设备的资源消耗。
7.在另一种可能的实现方法中,模型推荐方法运行于计算设备上。通过上述方法,模型推荐方法可以直接获取运行应用程序的计算设备的硬件参数。
8.在另一种可能的实现方法中,根据代理数据和计算设备的硬件参数推荐适合于应用程序的模型,包括:根据计算设备的硬件参数确定适合于应用程序的基本操作的集合,其中,集合包括多个基本操作;根据计算设备的硬件参数确定适合于应用程序的连接结构,其中,连接结构用于将多个基本操作组合为不同的模型;最后,根据基本操作的集合、连接结
构和代理数据集推荐适合于应用程序的模型。通过上述方法,模型推荐方法可以加快应用程序处理数据的速度,选择适合于应用程序的基本操作和连接结构组成模型。
9.在另一种可能的实现方法中,连接结构包括分支结构和输入结构。
10.在另一种可能的实现方法中,应用程序处理数据的能力,包括:应用程序处理数据的精度和处理数据的效率。
11.在另一种可能的实现方法中,计算设备的硬件参数,包括计算设备所包含的芯片的型号、芯片的核的数量或所述芯片的时钟频率。
12.第二方面,本技术提供一种模型推荐装置,模型推荐装置可以位于计算设备上也可以是一台单独的设备,所述模型推荐装置包括用于执行第一方面或第一方面任一种可能实现方式中的模型推荐方法的各个模块。
13.第三方面,本技术提供一种模型推荐系统,包括计算设备和模型推荐装置,计算设备用于运行应用程序。模型推荐装置可以位于计算设备上也可以是一台单独的设备,模型推荐装置用于实现如上述第一方面及第一方面任意一种可能实现方式中相应主体所执行的方法的操作步骤。
14.第四方面,本技术提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中用于存储计算机执行指令,所述计算机设备运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述计算机设备中的硬件资源执行第一方面或第一方面任一种可能实现方式中所述方法的操作步骤。
15.第五方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能实现方式中所述方法的操作步骤。
16.第六方面,本技术提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或第一方面任一种可能实现方式中所述方法的操作步骤。
17.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
18.图1是本技术一个示例性实施例提供的系统架构图;
19.图2是本技术提供的一种模型推荐的方法的流程示意图;
20.图3是本技术实施例提供的一个7*7卷积操作的结构示意图;
21.图4是本技术实施例提供的不同实现方式的卷积算子示意图;
22.图5是本技术提供的一种不同分支结构的示意图;
23.图6是本技术提供的一种不同输入结构的示意图;
24.图7是本技术实施例提供的一个pareto解集的示意图;
25.图8是本技术实施例提供的一种确定基本操作的集合的流程示意图;
26.图9是本技术实施例提供的一种基本算子的连接结构的评分方法的流程示意图;
27.图10是本技术提供的一种基于进化的模型搜索算法的流程示意图
28.图11是本技术提供的一种计算r值的示意图;
29.图12是本实施例提供的一种变异操作的示意图;
30.图13是本实施例提供的一种模型推荐装置的示意图。
具体实施方式
31.下面结合附图对本技术实施例中的技术方案进行描述。
32.本技术实施例提供的模型推荐的方法,可以为用户推荐至少一个适用于处理当前应用场景并且满足计算设备的处理能力的神经网络模型,在对本技术实施例提供的模型搜索的方法介绍之前,对本技术实施例所适用的系统架构进行介绍。
33.图1为本技术实施例提供的一种模型推荐装置的系统100的示意图。如图所示,系统100包括计算设备110和模型推荐装置120。
34.计算设备110用于接收应用场景下生成的数据,并对其进行各项计算处理,可以进一步包括:数据采集装置111、处理器112以及存储器113。数据采集装置111、处理器112和存储器113通过总线连接,可以是数据总线,还可以是电源总线、控制总线和状态信号总线等,该总线也可以为其他类型实现设备内器件间连接的总线。
35.数据采集装置111用于采集应用场景下生成的数据,可以是图片、语音、视频或文本等数据类型。应用程序114运行于处理器112上,可以使用特定的模型对数据采集装置111的采集的数据进行处理,输出用户所需要的计算结果。模型由多个相同或不同的基本算子通过不同的连接方式组合,每一个基本算子可以看作对输入数据的一种操作,例如,卷积算子可以用于提取输入的数据的特征,而池化算子可以用于对输入的数据进行采样。不同的应用程序可以通过使用不同的模型以满足不同的需要。例如,在小区人脸识别的应用场景中,可以使用人脸识别应用程序,调用数据采集装置111(摄像头)获取人脸图像的数据后,通过人脸识别模型计算得到人脸图像的数据与预存的小区人员的人脸图像的相似度,为符合要求的小区人员放行。
36.可选地,计算设备110还可以包括图形处理器(graphics processing unit,gpu),应用程序114可以使用gpu运行特定的模型。
37.适合于应用程序的模型不仅需要符合应用场景的需要,还需要与运行应用程序的计算设备(例如计算设备110)的计算能力相匹配。例如,对于计算速度较慢的计算设备,应该避免模型对数据有较多复杂的处理,又例如,对于处理器核数较多的计算设备,模型可以包含更多的对数据进行并行处理的分支。
38.计算设备110是具有计算能力的电子设备,可以是一个终端计算设备(如笔记本电脑、手机、个人台式电脑、小区闸机),也可以是一台服务器,还可以是由若干台服务器组成的服务器集群,或者是一个云计算服务中心,本技术实施例对此不做限定。需要说明的是,数据采集装置111可以是计算设备110中的一个硬件组件,也可以是一个单独的设备。如图1所示,数据采集装置111集成在计算设备110内部,在其他实施例中,数据采集装置111也可以位于一个独立的设备中。
39.模型推荐装置120用于为应用程序114推荐符合应用场景需要和计算设备的计算能力的模型,包括:处理器121和存储器122。
40.示例性地,存储器122可以用于存储组成不同模型的基本算子,可以包括只读存储器和随机存取存储器,并向处理器121提供指令和数据。存储器122还可以包括非易失性随机存取存储器。例如,存储器122还可以存储设备类型的信息。
41.存储器122可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data date sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
42.处理器121用于使用不同的基本算子组成的不同的模型,并从中选择适合应用程序的模型推荐给应用程序114。处理器121可以是cpu,还可以是其他通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
43.模型推荐装置120也可以是一个终端计算设备,一台服务器,或者是由若干台服务器组成的服务器集群,或者是一个云计算服务中心。模型推荐装置120与计算设备110之间可以采用有线或无线的传输方式,其中,有线的传输方式包括利用以太、光纤等形式进行数据传输,无线传输方式包括移动热点(wi-fi)、蓝牙、红外等传输方式。
44.在其他实施例中,模型推荐装置120还可以是一个硬件装置上的硬件组件或者是运行在硬件装置上的一套软件装置。此时,处理器121和存储器122可以是模型推荐装置所在的硬件装置的处理器和存储器。该硬件装置也可以是一个终端计算设备,一台服务器,或者是由若干台服务器组成的服务器集群,或者是一个云计算服务中心,特别地,还可以是图1中的计算设备110。为了描述方便,本实施例将模型推荐装置120所在的硬件装置的处理器也称为模型推荐装置120的处理器,将模型推荐装置120所在的硬件装置的存储器也称为模型推荐装置120的存储器。
45.可选地,组成模型推荐装置120中的处理器121和存储器122可以分别部署在不同的系统或者硬件装置中。
46.下面将结合图2-12对本技术实施例提供的模型推荐的方法进行说明。图2是本技术提供的一种模型推荐的方法的流程示意图,可由如图1所示的模型推荐装置120执行,如图所示,具体方法包括:
47.s201、模型推荐装置120获取应用程序的代理数据集。
48.代理数据集包括代理输入数据和代理输入数据对应的标签,其中,代理输入数据为应用程序从图1中数据采集装置111获取到的数据的一部分,标签为这部分输入数据对应的真实结果。将代理输入数据输入应用程序,并使用应用程序经过模型计算得到的计算结果与代理输入数据对应的标签进行比较,可以评价应用程序处理数据的能力。应用程序得到的计算结果与标签的差值越小,说明应用程序处理数据的精度越高。应用程序得到计算结果使用的时间越短,说明应用程序处理数据的效率越高。
49.当模型推荐装置120位于计算设备110上时,模型推荐装置可以从应用程序114使用的数据采集装置111中获取代理输入数据,并为这些代理输入数据打上标签。可选地,模型推荐装置还可以使用用户预置的代理数据集。
50.当模型推荐装置120位于一个独立的设备上或模型推荐装置120就是一个独立的设备时,计算设备110或用户可以将计算设备的硬件参数发送给云端的数据中心,其中,硬件参数包括应用程序114运行时使用的处理器的型号、处理器的核的数量、处理器的时钟频率或者gpu的型号。数据中心可以提前获取所有模型推荐装置的硬件参数,然后根据计算设备110或用户发送的硬件参数指定具有相同硬件参数的模型推荐装置执行模型推荐方法。可选地,数据中心还可以根据用户发送的计算设备的硬件参数使用虚拟化技术构建相同硬件参数的虚拟计算设备,并在该虚拟计算设备上运行模型推荐装置。之后,计算设备110或用户可以将代理数据集发送给模型推荐装置。
51.s202、模型推荐装置确定适合于应用程序的基本操作的集合。
52.一个基本操作可以直接由一个基本算子构成,例如池化操作可以由步长相同的池化算子构成,比如一个2步长池化操作由一个2步长池化算子构成,可以每隔两个数据输出一个数据;也可以由多个基本算子组合而成,例如卷积操作可以由卷积核大小相同的卷积算子、修正线性单元(rectified linear unit,relu)算子和批量归一化(batch normalization,bn)算子构成。其中,relu算子用于增强模型输入输出之间的非线性关系,表达式为relu(x)=max(0,x);bn算子用于使用归一化变换函数,将输入数据变换为0均值,单位方差的正态分布。图3为本技术实施例提供的一个7*7卷积操作的结构示意图,如图所示,一个7*7卷积操作由一个relu算子、一个7*7卷积算子和一个bn算子线性连接而成。
53.基本操作包括但不限于:1*1卷积操作、3*3卷积操作、5*5卷积操作、7*7卷积操作、2步长池化操作、3步长池化操作。
54.在实际应用中,卷积操作中的卷积算子可以有不同的实现方式,例如3*3卷积算子可以是一个3*3标准卷积算子,也可以是一个3*1卷积算子和一个1*3卷积算子组合而成的3*3组合卷积算子,两个算子均可以实现3*3的卷积功能。又例如,3*3*3卷积算子可以是一个3*3*3标准卷积算子,可以是三个3*3*1卷积算子和一个1*1*3卷积算子组合而成的3*3*3深度可分离卷积算子,两个算子均可以实现3*3*3的卷积功能。图4为本技术实施例提供的不同实现方式的卷积算子示意图,在图4(a)中,经过中间3*3标准卷积算子的处理之后,左边待处理的7*7数据变换为右边5*5大小的数据,在图4(b)中,待处理数据也可以经过一个3*3组合卷积算子,即先经过一个3*1卷积算子再经过一个1*3卷积算子,获得相同的处理结果。在图4(c)中,经过中间3*3*3标准卷积算子的处理之后,左边待处理的7*7*3数据变换为右边5*5*1大小的数据,而在图4(d)中,待处理数据也可以经过一个3*3*3深度可分离卷积算子,即先经过三个3*3*1卷积算子再经过一个1*1*3卷积算子,获得相同的处理结果。因此一个卷积操作又可以分为标准卷积操作、组合卷积操作以及深度可分离卷积操作三个不同的卷积操作,三个卷积操作可以实现相同的卷积功能。
55.同样,池化操作中的池化算子也可以有不同的实现方式,例如4步长池化算子,可以是4步长平均池化算子,实现方式为使用每4个数据的平均值作为采样值输出,也可以是4步长最大池化算子,实现方式为使用每4个数据中的最大值作为采样值输出。因此一个池化操作也可以分为平均池化操作和最大池化操作,两个操作可以实现相同的采样功能。
56.所有的基本操作可以提前存储在模型推荐装置的存储器中,模型推荐方法执行时,模型推荐装置使用模型搜索方法从存储器中选择适合于应用程序的基本操作组成推荐模型。对于实现相同功能的基本操作,在模型中可以相互替换,可以打上可替换的标签。实现不同功能的可替换的基本操作可以打上不同的可替换的标签。例如,可以使用0标识不可替换的基本操作,使用1标识,4步长平均池化操作和4步长最大池化操作,使用2标识7*7深度可分离卷积操作、7*7组合卷积操作和7*7标准卷积操作。
57.由于计算设备110中芯片架构的设计不同,基本操作在不同的实现方式下需要的计算时间却不一样。因此,可以记录所有可替换的基本操作完成数据处理的时间,对于同一功能的基本操作,从中选择处理时间低于阈值的基本操作加入适合于应用程序的基本操作的集合中。具体选择方法在后文中将结合图8进行详细说明。
58.s203、模型推荐装置确定适合于应用程序的连接结构。
59.连接结构用于将基本操作组合成模型,多个基本操作可以组合为一个操作,又称为操作节点;多个操作节点可以通过相互连接组合为一个单元(cell),每一个cell还包括一个输出节点;而多个cell组合为一个模型,每一个cell可以同时连接多个cell的输出节点。
60.因此,连接结构可以由两部分构成,一部分为分支结构,用于描述多个操作节点组成一个cell时的并行关系;另一部分为输入结构,用于描述多个cell之间的输入关系。
61.对于不同的分支结构,可以由分支结构中操作节点的数量和分支数量来标识,记做m-n分支结构,其中m表示操作操作节点数量,n表示分支数量。
62.分支数量可以由一个cell连接的其他cell的输出节点的连接数量q、cell中操作节点的最大连接数量w以及输出节点的连接数量e,这三个连接数量的和(q w e)计算得到。图5为本技术提供的一种不同分支结构的示意图,以一个cell包括4个操作节点为例,如图5所示,实线方框表示输出节点,圆形表示操作节点,虚线方框表示连接cell的其他cell的输出节点,在图5中为了便于描述,又被称为cell的输入节点。对于图5(a),cell存在一个输入节点,连接两个操作节点,q值为2;同时,cell中每个操作节点都只连接一个操作结点,连接数量的最大值w为1;输出节点连接两个操作结点,e值为2;综上,图5(a)中的cell的分支数量为5,分支结构为4-5。对于图5(b),cell存在两个输入节点,分别连接两个和一个操作结点,q值为3;类似地,w值为1,e值为2;则图5(b)中cell的分支数量为6,分支结构为4-6。对于图5(c),q值为2,w值为3,e值为2,分支数量为7,分支结构为4-7。对于图5(d),q值为3,w值为1,e值为3,分支数量为7,分支结构为4-7。由于不同的硬件平台计算设备对并行数据处理的能力不同,不同的分支结构的模型在不同的硬件平台计算设备中使用时需要的计算时间也不一样,在实际应用中,应该选择亲和运行应用程序硬件平台计算设备的分支结构组成模型。
63.对于输入结构,可以由模型中一个cell连接的其他cell的输出节点的数量标识。例如,图6为本技术提供的一种不同输入结构的示意图,以4个cell为例,如图6所示,每一个方框表示一个cell,在图6(a)中,每一个cell的输入只与跟它相连接的前一个cell有关系,记作1输入结构;在图6(b)中,每一个cell的输入与跟它相连接的前两个cell有关系,记作2输入结构;在图6(c)中,每一个cell的输入与跟它相连的前三个cell有关系,记作3输入结构。当一个cell的输入与多个cell有关时,例如图6(b),计算当前cell是需要额外将前两个
cell的输出搬运到计算单元的内存中,一些计算设备110在设计时采用的内存架构对于多次的内存搬运导致的时延比较敏感,这些计算设备110并不适合在模型中使用多输入的结构。因此,在实际应用中,应该选择亲和运行应用程序计算设备的输入结构组成模型。
64.在本实施例中,可以记录所有不同的分支结构和不同输入结构完成数据处理的时间,根据时间对分支结构和输入结构进行打分,从而可以选择适合于应用程序的分支结构和输入结构。具体评分方法在后文中将结合图9进行详细说明。
65.s204、模型推荐装置确定适合于应用程序的模型。
66.模型搜索算法可以将不同类型以及数量的基本操作通过不同的连接结构组合成不同的模型,并从中选择出适合于应用程序的模型,作为推荐模型。选择推荐模型时,需要同时考虑模型处理数据的精度和时间,以及模型的连接结构的评分,是一个多目标优化问题(multi-objective optimization problems,mops)。对于一个多目标优化问题而言,由于存在目标之间的冲突的现象,一个解在某个目标上是最好的,在其他的目标上可能是最差的。这些在改进任何目标函数的同时,必然会削弱至少一个其他目标函数的解称为非支配解或pareto解,这些pareto解的集合称为pareto解集。图7为本技术实施例提供的一个pareto解集的示意图,如图所示,多目标优化问题包括两个优化目标,希望使f1和f2的值同时达到最小,其目标函数为f=(f1min,f2min)。其中a的f1的值和f2的值都比d值小,表示a支配了d,a的f2的值小于b的f2的值,但是a的f1的值大于b的f1的值,表示a和b之间为非支配的关系。a、b、c三个点均为pareto解,属于pareto解集,他们三者之间均为非支配关系。
67.求解多目标优化问题的解法有很多,包括目标规划方法,目标分解方法,目标化多为少方法(将多个目标减少为一个),基于进化算法的方法,强化学习算法等。其中,进化算法可以对多个目标函数同时进行优化,输出一组pareto解集。模型推荐装置可以采用基于进化的模型搜索算法,同时考虑模型处理数据的精度、处理数据的时间,以及模型的连接结构的评分三个优化目标,确定合适的推荐模型。后面将结合图10详细说明本技术提供的一种基于进化的模型搜索算法的流程示意图。
68.通过本技术提出的方法,可以为应用程序推荐适用于运行应用程序的计算设备以及使用应用程序的应用场景的模型,加快应用程序处理数据的速度,提高应用程序输出结果的准确性。
69.图8为本技术实施例提供的一种确定基本操作的集合的流程示意图,可由如图1所示的模型推荐装置120执行,如图所示,确定方法具体如下:
70.s801、确定输入数据,本方法对输入数据的数量和数值均不做限定,可以对所有的基本操作使用同样的输入数据。
71.s802、选择第一基本操作,判断第一基本操作是否标记为可替换,如果是则执行s5031,如果不是则执行s505。
72.s8031、使用第一基本操作对输入数据进行处理,记录完成处理的时间,并将第一基本操作标记为已完成。
73.s8032、选择未标记完成的并且与第一基本操作的可替换标记相同的第二基本操作。
74.s8033、使用第二基本操作对输入数据进行处理,记录完成处理的时间,并将第二基本操作标记为已完成。
75.s8034、判断与第一基本操作的可替换标记相同的基本操作是否全部标记为已完成,如果没有,则重复执行s8032和s8033;如果已经全部标记为完成,则继续执行s8035。
76.s8035、将可替换标记相同的基本操作中,处理时间最短的基本操作加入适合于应用程序的基本操作的集合中。
77.s804、判断是否所有基本操作标记为完成,如果没有,则跳转至s802,直至所有基本操作被标记为已完成。
78.s805、将第一基本操作加入适合于应用程序的基本操作的集合中,并将第一基本操作标记为完成。
79.通过上述方法,可以只将实现同一功能的可替换的基本操作中处理时间低于阈值的基本操作加入适合于应用程序的基本操作的集合中,以减少模型搜索中需要搜索的基本操作的数量,并且被选择的基本操作也更适合于应用程序之后运行时所使用的计算设备。确定了适合于应用程序的基本操作的集合后,可以进一步确定适合于应用程序的连接结构。
80.图9为本技术实施例提供的一种基本算子的连接结构的评分方法的流程示意图,可由如图1所示的模型推荐装置120执行。如图所示,具体流程如下:
81.s901、确定输入数据,本方法对输入数据的数量和数值均不做限定,可以对所有的分支结构使用同样的输入数据。
82.s902、确定分支结构中组成一个cell的操作节点的数量。操作节点的数量可以由用户指定,也可以根据经验值设定。可选地,该值也可以是一个范围。
83.s903、根据节点的数量确定待评分的不同的分支结构。当一种分支结构下包括多种不同的连接方式时,可以任选一种连接方式作为该分支数量下的待评分的分支结构。在本方法中,目的是为了测试不同的分支结构在运行应用程序的计算设备下的计算效率,因此对节点中的操作的类型不做限制,可以对所有的分支结构的操作节点中使用相同的操作。
84.s904、分别使用输入数据输入每一种分支结构,并记录每一种分支结构完成数据处理的时间。
85.s905、根据处理时间对所有分支结构进行评分,使得处理时间越快的分支结构的评分越高。本技术对评分的方式不做限制,示例性的,可以设置处理时间的阈值t1,当分支结构的处理时间t1大于t1时,记为0分,当分支结构的处理时间t1小于t1时,分数为(t1-t1)*a,其中,a为放大参数,可以根据经验值设置。
86.可选地,还可以根据跟据处理时间设置不同的等级,示例性的,可以将处理时间小于t1的分支结构设置为等级1,处理时间位于t1和t2之间的分支结构设置为等级2,处理时间大于t2的分支结构设置为等级3。
87.s906、确定输入结构中与一个cell的输入有关的cell的数量的最大值。该数值可以由用户指定,也可以根据经验值设定。
88.s907、确定最大值确定待评分的不同的输入结构。与s906类似,可以在所有待评分的输入结构中使用相同数量和相同结构的cell,其中,cell的数量可以为大于s907中最大值的任何数,一般可以设置为最大值 1。
89.s908、分别使用输入数据输入每一种输入结构,并记录每一种输入结构完成数据
处理的时间。
90.s909、根据处理时间对所有输入结构进行评分,使得处理时间越快的输入结构的评分越高。可以采用类似s905的方法。确定了不同的分支结构和输入结构在运行应用程序的计算设备上的计算效率的评分标准之后,可以对下一步搜索出的模型的分支结构和输入结构进行相应的打分,从而选择出适合于运行在运行应用程序的计算设备上的模型。
91.图10为本技术提供的一种基于进化的模型搜索算法的流程示意图,可由如图1所示的模型推荐装置120执行,如图所示,具体方法如下:
92.s1001、初始化种群。
93.种群是多个模型的统称,模型搜索算法可以随机将不同类型的基本操作通过不同的连接结构组合成p个模型,作为种群。其中,组成每个模型的cell的数量为s806中的最大值,组成每一个cell中的节点的数量为s902中的节点的数量。
94.初始化的种群中模型的数量p可以根据经验值设置。
95.将代理数据集中的输入数据分为训练集和验证集两部分,使用训练集的部分数据以及这部分数据对应的标签作为模型的输入数据,对种群中的每个模型分别进行训练,得到训练好的种群。
96.s1002、从种群中随机挑选s个模型,生成第一种群。
97.s1003、根据目标函数获得第一种群中的pareto最优解。
98.根据前面所述,选择推荐模型时,需要同时考虑模型处理数据的精度、处理数据的时间,以及模型的连接结构的评分三个优化目标,目标函数为f=(amin,lmin,rmax)。其中,a表示模型得到的输出数据与真实数据的差值,l表示模型完成数据处理的计算时间,r表示模型的连接结构的评分。
99.对于模型的a值和l值,可以将验证集的数据输入第一种群中的每个模型,得到输出数据,并记录每个模型完成数据处理的时间。其中,a值等于输出数据与验证集的数据对应的标签之间的差值,l值等于模型完成数据处理的时间。
100.对于模型的r值,可以由s203步骤中得到的分支结构和输入结构的评分获得。其中,r值等于模型的每个cell的分支结构的评分和乘以输入结构的评分。图11是本技术提供的一种模型计算r值的示意图,假设3-3分支结构和3-5分支结构的评分分别为m1和m2,1输入结构和2输入结构的评分分别为n1和n2。如图所示,模型a和模型b均由3个cell构成,每个cell由3个节点构成,每一个节点包括至少一个相同或不同的操作。模型a中每个cell的分支结构分别为3-3分支结构、3-5分支结构和3-3分支结构,输入结构为1输入结构,则模型a的r值为(m1 m2 m1)*n1。模型b中每个cell的分支结构分别为3-3分支结构、3-5分支结构和3-5分支结构,输入结构为2输入结构,则模型b的r值为(m1 m2 m2)*n2。
101.计算第一种群中每一个模型的三个参数的值(a,l,r),选择目标函数f的pareto解对应的模型。
102.s1004、对选择的模型进行变异操作,生成第二种群。
103.对每一个选择的模型进行一项变异操作,包括改变任意一个基本操作、改变节点之间的分支结构或者改变cell之间的输入结构。图12为本实施例提供的一种变异操作的示意图,如图所示,模型a为变异之前的操作,模型b、c和d均可以为模型a经过变异操作之后得到的模型。
programmable logical device,cpld),现场可编程门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。也可以通过软件实现图2所示的模型推荐方法时,模型推荐装置120及其各个模块也可以为软件模块,此时,模型推荐装置120可以由图1所示的计算设备110执行,也可以由一台单独的设备执行。
119.可选地,模型推荐装置120可以运行于第一设备上,在根据所述代理数据集和所述计算设备的硬件参数推荐适合于所述应用程序的模型之前,所述第一设备由数据中心获取计算设备的硬件参数后,根据计算设备的硬件参数指定,其中,第一设备的硬件参数与计算设备的硬件参数相同。
120.可选地,模型推荐装置120还可以运行于计算设备上。
121.可选地,推荐单元1302,还用于根据计算设备的硬件参数确定适合于应用程序的基本操作的集合,其中,集合包括多个基本操作;根据计算设备的硬件参数确定适合于应用程序的连接结构,其中,连接结构用于将多个基本操作组合为不同的模型;最后,根据基本操作的集合、连接结构和代理数据集推荐适合于应用程序的模型。
122.根据本技术实施例的模型推荐装置120可对应于执行本技术实施例中描述的方法,并且模型推荐装置120中的各个单元的上述和其它操作和/或功能分别为了实现图2中的各个方法的相应流程,为了简洁,在此不再赘述。
123.综上所述,本技术实施例提供的模型推荐装置120,推荐单元可以综合考虑应用程序的使用场景以及运行时的硬件参数,避免运行应用程序的计算设备无法支持模型推荐装置推荐的模型对数据的处理,降低应用程序处理数据的准确度和速度。
124.本技术还提供一种模型推荐系统,包括计算设备和模型推荐装置,计算设备用于运行应用程序,模型推荐装置用于实现上述模型推荐方法中所执行的方法的操作步骤,模型推荐装置可以部署于计算设备上、其他设备上或为一台单独的设备。
125.上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,ssd)。
126.以上所述,仅为本技术的具体实施方式。熟悉本技术领域的技术人员根据本技术提供的具体实施方式,可想到变化或替换,都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献