一种模型参数确定方法、装置及存储介质与流程

文档序号:20699919发布日期:2020-05-12 15:32阅读:140来源:国知局
一种模型参数确定方法、装置及存储介质与流程

本发明属于计算机应用技术领域,特别是涉及一种模型参数确定方法、装置及存储介质。



背景技术:

随着互联网业务的发展,出于语音识别、图像识别、数据挖掘、推荐和个性化技术等方面的需求,深度学习算法模型的种类也越来越丰富。

不同的硬件平台通常具有不同的硬件资源配置,例如不同的硬件平台可以包括不同规格的cpu(centralprocessingunit,中央处理器)、gpu(graphicsprocessingunit,图形处理器)、fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列)、以及asic(applicationspecificintegratedcircuit,专用集成电路)芯片。

此时,如果运行深度学习算法模型的硬件平台的配置较高,可能造成资源浪费;如果运行深度学习算法模型的硬件平台的配置较低,可能出现硬件资源不足的问题。



技术实现要素:

有鉴于此,本发明提供一种模型参数确定方法、请求拦截方法、装置及存储介质,用以在一定程度上解决现有技术中运行深度学习算法模型时,由于硬件平台的配置不确定造成的资源不足或资源过剩的问题。

依据本发明的第一方面,提供了一种模型参数确定方法,所述方法包括:

确定待运行的深度学习算法模型对应目标硬件平台的初始运行参数;

在所述目标硬件平台中,将所述初始运行参数逐代增加至预设运行参数,并依次按照不同运行参数运行所述深度学习算法模型;

分别监测不同运行参数下所述深度学习算法模型的性能值;

若当前运行参数达到预设运行参数,则确定已监测到的性能值中的目标性能值;

将所述目标性能值对应的运行参数,作为所述深度学习算法模型在所述目标硬件平台上运行的目标运行参数。

可选地,所述初始运行参数包括初始进程数和初始批尺寸,所述预设运行参数包括预设进程数和预设批尺寸,所述在所述目标硬件平台中,将所述初始运行参数逐代增加至预设运行参数的步骤,包括:

在上一代批尺寸小于所述预设批尺寸的情况下,确定当前进程数为上一代进程数,以及当前批尺寸由上一代批尺寸按照第一预设规则增加得到;或者,

在上一代批尺寸等于所述预设批尺寸的情况下,确定当前进程数由上一代进程数按照第二预设规则增加得到,以及当前批尺寸为所述初始批尺寸。

可选地,所述在所述目标硬件平台中,将所述初始运行参数逐代增加至预设运行参数,并依次按照不同运行参数运行所述深度学习算法模型的步骤之后,所述方法还包括:

实时监测不同运行参数下所述目标硬件平台的内存占用率和所述深度学习算法模型的性能值;

当所述目标硬件平台的内存占用率符合预设条件时,终止运行所述深度学习算法模型;

确定已监测到的性能值中的目标性能值;

将所述目标性能值对应的运行参数,作为所述深度学习算法模型在所述目标硬件平台上运行的目标运行参数。

可选地,所述目标硬件平台包括中央处理器cpu、图形处理器gpu、现场可编程逻辑门阵列fpga、专用集成电路asic中的至少一种。

可选地,所述预设进程数小于或等于所述目标硬件平台的最大逻辑核数。

依据本发明的第二方面,提供了一种模型参数确定装置,所述装置包括:

初始参数确定模块,用于确定待运行的深度学习算法模型对应目标硬件平台的初始运行参数;

参数测试模块,用于在所述目标硬件平台中,将所述初始运行参数逐代增加至预设运行参数,并依次按照不同运行参数运行所述深度学习算法模型;

目标值监测模块,用于分别监测不同运行参数下所述深度学习算法模型的性能值;

目标值确定模块,用于若当前运行参数达到预设运行参数,则确定已监测到的性能值中的目标性能值;

目标参数确定模块,用于将所述目标性能值对应的运行参数,作为所述深度学习算法模型在所述目标硬件平台上运行的目标运行参数。

可选地,所述初始运行参数包括初始进程数和初始批尺寸,所述预设运行参数包括预设进程数和预设批尺寸,所述参数测试模块,包括:

批尺寸调整子模块,用于在上一代批尺寸小于所述预设批尺寸的情况下,确定当前进程数为上一代进程数,以及当前批尺寸由上一代批尺寸按照第一预设规则增加得到;或者,

进程数调整子模块,用于在上一代批尺寸等于所述预设批尺寸的情况下,确定当前进程数由上一代进程数按照第二预设规则增加得到,以及当前批尺寸为所述初始批尺寸。

可选地,所述装置还包括:

内存占用率监测模块,用于实时监测不同运行参数下所述目标硬件平台的内存占用率和所述深度学习算法模型的性能值;

模型运行控制模块,用于当所述目标硬件平台的内存占用率符合预设条件时,终止运行所述深度学习算法模型;

所述目标值确定模块,还用于确定已监测到的性能值中的目标性能值;

所述目标参数确定模块,还用于将所述目标性能值对应的运行参数,作为所述深度学习算法模型在所述目标硬件平台上运行的目标运行参数。

可选地,所述目标硬件平台包括中央处理器cpu、图形处理器gpu、现场可编程逻辑门阵列fpga、专用集成电路asic中的至少一种。

可选地,所述预设进程数小于或等于所述目标硬件平台的最大逻辑核数。

依据本发明的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的模型参数确定方法的步骤。

针对在先技术,本发明具备如下优点:

本发明实施例中,在目标硬件平台上以不同的运行参数条件,测试运行待上线的深度学习算法模型,并获取深度学习算法模型的性能值,在硬件可允许的运行参数,将对应深度学习算法模型目标性能值的运行参数作为硬件的性能测评结果,从而能够针对运行某深度学习算法模型的在目标硬件平台上的运行参数进行准确的测评,避免了仅关注模型的精简以及准确率,而没有对模型运行过程中的运行参数合理考虑,导致的硬件资源利用率低的问题,提升了模型推理处理的效率,硬件资源利用率的提升,也节省了硬件设备的部署数量以及开销成本。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施例提供的一种模型参数确定方法的步骤流程图;

图2是本发明实施例提供的另一种模型参数确定方法的步骤流程图;

图3是本发明实施例提供的一种模型参数确定装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

图1是本发明实施例提供的一种模型参数确定方法的步骤流程图,该方法可以包括:

步骤101,确定待运行的深度学习算法模型对应目标硬件平台的初始运行参数。

本发明实施例中,深度学习算法模型包括卷积神经网络模型、递归神经网络模型、长短期记忆网络模型、稀疏自动编码器、生成对抗网络模型、深度置信网络模型等。本发明实施例中提及的深度学习算法模型可以应用于语音、文字、图像等的分类、排序、生成等,涉及计算机视觉、自然语言处理、生物信息学等领域,其中,运行深度学习算法模型的目标硬件平台可以包括cpu,gpu,fpga,asic等,多个深度学习算法可以在同一种目标硬件平台运行,同一深度学习算法模型可以在多种同一目标硬件平台运行,本发明实施例中对于深度学习算法模型和目标硬件平台的种类不做具体限制。另外,也可以对其他学习模型在目标硬件平台上的运行参数进行确定,如强化学习模型、深度强化学习模型等。

本发明实施例中,待确定的运行参数可以包括模型在目标硬件平台上运行时的进程数、批尺寸中的至少一种,其中,进程是系统进行资源分配和导读的基本单位,是计算机程序中的一段执行过程,可以理解为正在运行中的程序的实例,基于硬件平台的能力以及实际程序运行效率的要求,可以采用多进程的方式运行程序,此时进程的个数即为进程数;批尺寸(batchsize)是一种批处理参数,极限值为训练集样本总个数,可以理解为每次调整参数前选取的样本数量。本领域技术人员也可以根据需求选择其他的运行参数,本发明实施例对此不做具体限制。

一般情况下,增加批尺寸和进程数大小可以提升在目标硬件平台上运行的深度学习算法的资源利用率以及吞吐量。由于吞吐量表示在定创建或部署的深度学习算法模型规模的情况下,在单位时间内的处理多少输入数据以获得推断结果,因此,通过对吞吐量的提升,可以缩减深度学习算法模型对于输入数据的响应时间,从而确定目标硬件平台运行该深度学习算法模型的性能,通常认为吞吐量越大,响应时间越短,模型性能越佳。

本发明实施例中,可以先确定待运行的深度学习算法模型在目标硬件平台上运行的初始运行参数,可选地,可以将目标硬件平台上的可行的运行参数最小值设置初始运行参数,如将初始进程数和/或初始批尺寸设置为1;或者,也可以根据深度学习算法模型在其他硬件平台,或同种类深度学习算法模型在目标硬件平台上的历史运行参数设置初始运行参数,如该深度学习算法模型在其他硬件平台以进程数为2和/或批尺寸为8的参数运行,则可以设置目标硬件平台的初始运行参数中初始进程数为2和/或初始批尺寸为8;或者,也可以根据深度学习算法模型的运行效率要求设置初始运行参数,如要求当前深度学习模型的进程数不小于3和/或批尺寸不小于16,此时,可以设置目标硬件平台的初始进程数为3和/或批尺寸为16。

步骤102:在所述目标硬件平台中,将所述初始运行参数逐代增加至预设运行参数,并依次按照不同运行参数运行所述深度学习算法模型。

通常情况下,由于吞吐量表示在给定创建或部署的深度学习算法模型规模的情况下,单位时间内深度学习算法模型能够处理多少输入数据以获得推断结果,因此,通过对吞吐量的提升,可以缩减深度学习算法模型对于输入数据的响应时间,从而确定目标硬件平台运行该深度学习算法模型的性能,一般认为吞吐量越大,响应时间越短,性能越佳。增加运行参数的大小可以提升在目标硬件平台上运行的深度学习算法的资源利用率以及吞吐量,降低模型的响应时间,从而提升深度学习算法的数据处理速度,提高深度学习算法的性能。在不同运行参数下,可以将处理速度最快的目标性能值作为目标运行参数。

本发明实施例中,为了获得能够使深度学习算法模型对应目标硬件平台的运行的目标运行参数,可以将深度学习算法模型在目标硬件平台上进行试运行。从初始运行参数开始逐代增加至预设运行参数,每一代不同运行参数的情况下,在目标硬件平台上运行该深度学习算法模型。可选地,对初始进程数和初始批尺寸的增加可以通过编写对应逻辑的代码进行自动逐代增加,或者,也可以根据用户手动操作进行人为增加,本发明实施例对此不做具体限制。

步骤103:分别监测不同运行参数下所述深度学习算法模型的性能值。

本发明实施中,分别监测不同运行参数下所述深度学习算法模型的性能值,其中,性能值可以是表征模型数据处理速度性能的值,不考虑模型本身由算法结构、训练数据组成等因素影响的性能指标,如精确率、准确率、召回率等。可选地,一般可以认为模型响应时间越小速度越快,吞吐量越大处理速度越快等,因此,该性能值可以是监测不同进程数和/或不同批尺寸下,深度学习算法模型接收输入数据后输出结果的响应时间,或一定时间内接收输入结果后输出结果的数量即吞吐量。可选地,针对每一个运行参数,可以测定深度学习算法模型对预设个数输入数据的多个响应时间,或者,可以测定深度学习算法模型对预设时间内输入数据的多个响应时间,再将多个响应时间平均值确定为该运行参数的响应时间,本发明实施例中对监测深度学习算法模型性能值,以及监测性能值的方式不做具体限定。

另外,由于本发明实施例中仅针对同一深度学习算法模型在同一目标硬件平台上的运行参数确定,因此,不考虑不同算法之间的差异。在监测深度学习算法模型的性能值时,不考虑不同模型具体如何处理数据,而仅考虑同一模型不同运行参数下数据处理的速度,以便于本发明实施例在不同种类的模型以及不同硬件平台上的推广使用。

步骤104:若当前运行参数达到预设运行参数,则确定已监测到的性能值中的目标性能值。

本发明实施例中,可以设置预设运行参数,在初始运行参数逐代增加的过程中,当当前运行参数达到预设运行参数时,可以认为目标硬件平台可以正常运行深度学习算法模型的运行参数均已测试完毕。此时,可以在监测得到的性能值中,获取目标性能值,即表示深度学习算法模型对输入数据处理得到输出结果的速度最快的性能值,如响应时间最短、吞吐量最大等。此时,达到了目标硬件平台允许的运行参数中可以得到的最佳性能值,目标硬件平台的资源利用率达到最大,充分发挥了目标硬件平台的性能。其中,当前运行参数指最后一次改变深度学习算法模型在目标硬件平台上的运行参数后,监测性能值的过程中对应的运行参数。另外,本发明实施例中将给定运行参数范围内的表征模型数据处理速度最快的性能值作为目标性能值,而给定运行参数范围以外是否有表征模型处理速度更快的性能值不予考虑。因此为了避免遗漏,可以将目标硬件平台可行的运行参数均进行测试,也可以将模型在其他硬件平台,或在目标硬件平台的历史运行参数作为参考,以选取包含目标性能值适宜的运行参数范围。

步骤105:将所述目标性能值对应的运行参数,作为所述深度学习算法模型在所述目标硬件平台上运行的目标运行参数。

本发明实施例中,由于目标性能值对应目标硬件平台运行该深度学习算法模型的最佳性能,因此,可以确定目标性能值对应的运行参数为深度学习算法模型在目标硬件平台上运行的目标运行参数,从而确定深度学习算法模型对应的运行参数。

可选地,所述初始运行参数包括初始进程数和初始批尺寸,所述预设运行参数包括预设进程数和预设批尺寸,所述步骤102包括:

在上一代批尺寸小于所述预设批尺寸的情况下,确定当前进程数为上一代进程数,以及当前批尺寸由上一代批尺寸按照第一预设规则增加得到;或者,

在上一代批尺寸等于所述预设批尺寸的情况下,确定当前进程数由上一代进程数按照第二预设规则增加得到,以及当前批尺寸为所述初始批尺寸。

本发明实施例中,可以将进程数和批尺寸作为待确定的运行参数,在从初始进程数和初始批尺寸开始逐代增加时,可以选择同时增加进程数和批尺寸,对批尺寸按照第一预设规则增加,对进程数按照第二预设规则增加,如在一次逐代增加中对进程数加1,并对批尺寸增加到2倍;或者,也可以在一次逐代增加中仅增加进程数或仅增加批尺寸,如在一次逐代增加中仅对进程数加2,或仅对批尺寸增加到4倍。

本发明实施例中,在对批尺寸进行增加时按照第一预设规则进行逐代增加,可选地,第一预设规则可以是每一代增加相同数量的批尺寸,如每一代在上一代的基础上增加1、10、100;或者,也可以是每一代增加相同倍数的批尺寸,如每一代增加到上一代的2倍、3倍、4倍等。其中,为了适应实际存储格式,可以对批尺寸依据1、2、4、8、16…逐代增加,即每一代是上一代的2倍。进程数增加的第二规则也可以以此类推,第一预设规则和第二预设规则可以相同,也可以不同。

可选地,在逐代增加的过程中,可以通过预设批尺寸,以及预设进程数来确定逐代增加的方式。为了有序的覆盖所有的参数情况,可以在逐代增加的过程中保持进程数不变,逐代仅增加批尺寸;当批尺寸增加到预设批尺寸时,增加进程数,并将批尺寸重置为初始批尺寸;然后再次开始保持进程数不变,仅增加批尺寸,直到进程数达到预设进程数,且批尺寸达到预设批尺寸为止,其中,逐代增加时每次增加的具体数值不做限定。另外,上一代进程数和上一代批尺寸与当前进程数和当前批尺寸对应,指目标硬件平台在上一次改变进程数和批尺寸后,最后一次改变进程数和批尺寸前,运行深度学习算法模型,监测性能值的过程中采用的进程数和批尺寸。

如,当前目标硬件平台的逻辑核数为8,则设置目标硬件平台针对待运行深度学习算法模型的预设进程数为8、预设批尺寸为128;此时,确定待运行的深度学习算法模型对应目标硬件平台的初始进程数为1,初始批尺寸为1;在目标硬件平台上,以初始进程数1和初始批尺寸1运行深度学习算法模型,并监测响应时间为t11;然后,保持进程数为1不变,将批尺寸增加到2,监测深度学习算法模型的响应时间t12,以此类推,增加批尺寸为4、8、…、128;增加进程数为2,将批尺寸重置为初始批尺寸1,运行深度学习算法模型,并监测响应时间t21,以此逐代增加;当进程数为8,批尺寸为128的情况下运行深度学习算法模型的响应时间t87测试完后,在已监测到的所有响应时间中确定最小的目标响应时间为t66,该目标响应时间对应目标运行参数为目标进程数6,目标批尺寸64;则确认进程数为6,批尺寸为64是该深度学习算法模型在目标硬件平台上运行的参数。

可选地,所述预设进程数小于或等于所述目标硬件平台的最大逻辑核数。

实际应用中,以目标硬件平台为cpu为例,逻辑核数为cpu中实际接入的芯片组数量,如cpu核数,包括双核cpu、四核cpu等,在采用超线程技术,将一个物理核模拟为两个核的情况下,cpu的逻辑核数为由超线程技术模拟出的核数,如双核cpu逻辑核数为4,四核cpu逻辑核数为8。

本发明实施例中,由于进程数不能超过最大逻辑核数,因此,可以设定预设进程数小于或等于目标硬件平台的最大逻辑核数,如cpu的逻辑核数为8,可以设置预设进程数为8或预设进程数为6,另外,为了适应实际存储的情况,批尺寸可以以2的n次方的形式逐代增加,其中n可以等于1、2、3、4……,根据目前大多数硬件平台的标准,可以设置n的最大值为7,即预设批尺寸为128,从而在硬件平台的内存效率和内存容量之间寻找最佳平衡,避免cpu超载,保证深度学习算法模型的正常运行。预设批尺寸的设置与实际硬件平台的种类、资源的实际情况有关,本发明实施例对批尺寸设置的方式和具体数值不做限制。

本发明实施例中,为了获得能够使深度学习算法模型对应目标硬件平台的运行的目标运行参数,可以将深度学习算法模型在目标硬件平台上进行试运行,从而监测不同运行参数寸的情况下,目标硬件平台的性能值。从而根据从已检测到的性能值中的目标性能值,确定目标硬件平台运行该深度学习模型的目标性能参数。

图2是本发明实施例提供的另一种模型参数确定方法的步骤流程图,如图2所示,该方法可以包括:

步骤201:确定待运行的深度学习算法模型对应目标硬件平台的初始运行参数。

步骤202:在所述目标硬件平台中,将所述初始运行参数逐代增加至预设运行参数,并依次按照不同运行参数运行所述深度学习算法模型。

步骤203:实时监测不同运行参数下所述目标硬件平台的内存占用率和所述深度学习算法模型的性能值。

步骤204:当所述目标硬件平台的内存占用率符合预设条件时,终止运行所述深度学习算法模型。

步骤205:确定已监测到的性能值中的目标性能值。

步骤206:将所述目标性能值对应的运行参数,作为所述深度学习算法模型在所述目标硬件平台上运行的目标运行参数。

本发明实施例中,为了避免内存溢出,影响深度学习算法模型的正常运行,可选地,可以实时监测目标硬件平台的内存占用率,如cpu的内存使用大小或gpu的显卡使用大小等,当实时的内存占用率符合预设条件时,则认为目标硬件平台的当前状态已达到饱和,此时可以提前结束深度学习算法模型的运行,以防止目标硬件平台的内存溢出。可选地,可以根据目标硬件平台最大内存或最大显存设置目标硬件平台的饱和阈值,当目标硬件平台实时的内存占用率达到或接近饱和阈值时,可以认为当前情况符合预设条件。由于不同的深度学习算法模型可能占用的内存量不同,因此,当在目标硬件平台上运行的深度学习算法不同时,预设条件对应的饱和阈值也可能不同,可以根据实际情况具体设置。

本发明实施例中,当监测到内存占用率达到饱和阈值时,可以认为再增加运行参数,发生内存溢出问题的概率会大大增加,因此,即使此时的进程数没有达到预设运行参数,也无需再继续增加运行参数继续监测性能值。可以在之前监测得到的性能值中,获取目标性能孩子。可选地,在获取目标性能值时,将内存占用率达到预设条件时对应的性能值排除,以避免会导致内存溢出的运行参数被确认为该深度学习算法模型对应的运行参数。

可选地,所述目标硬件平台包括中央处理器cpu、图形处理器gpu、现场可编程逻辑门阵列fpga、专用集成电路asic中的至少一种。

本发明实施例中,对于深度学习算法模型对应的目标硬件平台,可以是多个,也可以是一个,在多个目标硬件平台上进行测试时,可以进一步获取能够好的运行深度学习算法模型的目标硬件平台,从而更加充分的利用硬件平台资源,既节省深度学习算法模型处理输入数据的时间,又节省硬件设备使用数量,降低了硬件开销成本,其中,多个硬件平台可以分别测试,也可以共同测试。

本发明实施例中,以cpu硬件为例,对于cpu可以直接使用多进程和增加批尺寸大小来提升资源利用率,进而提升深度学习算法模型在cpu上的吞吐量。由于有的深度学习算法模型复杂、参数量多,只使用cpu硬件无法满足对实时性要求高度额的任务。对此,常用的一种方法是使用cpu和gpu异构系统共同提供深度学习算法计算。此时cpu往往用于数据预处理和后处理,数据控制以及深度学习算法中非计算密集型的功能层。而gpu往往用于计算密集的卷积层、池化等操作。对于cpu、gpu共同提供加速的异构系统,为了提供最佳的性能,cpu和gpu仍然使用增加多进程和batchsize来提升吞吐量,其中cpu主要是内存和核数影响,gpu主要是受显存和gpu计算资源量影响。

另外,gpu并不是单纯的直接使用多进程来加速,在gpu的常规使用中,每一个时刻只有一个任务在执行。在cpu端使用多进程,在gpu实现采用的是时间片轮转调度方式。此时,cpu中的进程(process)发送的cuda(computeunifieddevicearchitecture,统一计算设备架构)任务对gpu资源的利用率是很低的。为此为了充分利用gpu资源,提升算法的吞吐量,本发明实施例使用了多进程调度(multi-processscheduling,mps)方案,将不同进程分别提交各自任务到mps服务端,并在服务端整合为一个统一的上下文,再将多个任务同时发送到gpu中执行,这就有效地提升了gpu的利用率。其中,在pascal(帕斯卡)架构下,mps是最多可以支持16个进程或者说16个用户同时提交任务。

以下示出本发明实施例提供的一种代码示例,以解释说明本发明实施例的上述方案:

其中,可以通过约束条件限制目标函数中变量的取值范围,并通过在变量取值范围中对目标函数求取最值以确定目标变量,本申请中变量可以包括进程数、批尺寸等,目标函数可以是求取不同进程数和批尺寸下运行模型的性能值。对cpu、gpu异构硬件平台下的约束条件和目标函数可以是:

约束条件:

其中:(1)代表cpu内存约束,(2)代表gpu显存约束,(3)代表gpu计算资源约束;(4)多进程个数约束(num=cpu最大逻辑核数),x1代表使用的进程数,进程数应当小于或等于cpu最大逻辑核数(5)x2代表批尺寸大小,使用2m是因为批尺寸的增加一般是依据2,4,8,16…增加,更适用于实际存储。

一般情况下,gpu的显存会最先消耗完,其次是gpu的计算资源,而此时,cpu的内存资还有富余,因此,约束条件中的公式(1)也可以去除。

目标函数:

penformance_iter=infer_time/image_num#响应时间除以图片处理结果数表示性能

performance.append(penformance_iter)#获取不同进程数下和批尺寸下的性能值,

performance_max=performance.max()

通过目标函数确定目标性能值,并将目标性能值对应的进程数和批尺寸最为目标函数的目标运行参数。

本发明实施例中,在目标硬件平台上以不同的运行参数条件,测试运行待上线的深度学习算法模型,并获取深度学习算法模型的性能值,在硬件可允许的运行参数,将对应深度学习算法模型目标性能值的运行参数作为硬件的性能测评结果,从而能够针对运行某深度学习算法模型的在目标硬件平台上的运行参数进行准确的测评,避免了仅关注模型的精简以及准确率,而没有对模型运行过程中的运行参数合理考虑,导致的硬件资源利用率低的问题,提升了模型推理处理的效率,硬件资源利用率的提升,也节省了硬件设备的部署数量以及开销成本。

图3是本发明实施例提供的一种模型参数确定的装置300,如图3所示,该装置可以包括:

初始参数确定模块301,用于确定待运行的深度学习算法模型对应目标硬件平台的初始运行参数;

参数测试模块302,用于在所述目标硬件平台中,在所述目标硬件平台中,将所述初始运行参数逐代增加至预设运行参数,并依次按照不同运行参数运行所述深度学习算法模型;

目标值监测模块303,用于分别监测不同运行参数下所述深度学习算法模型的性能值;

目标值确定模块304,用于若当前运行参数达到预设运行参数,则确定已监测到的性能值中的目标性能值;

目标参数确定模块305,用于将所述目标性能值对应的运行参数,作为所述深度学习算法模型在所述目标硬件平台上运行的目标运行参数。

可选地,所述初始运行参数包括初始进程数和初始批尺寸,所述预设运行参数包括预设进程数和预设批尺寸,所述参数测试模块302,包括:

批尺寸调整子模块,用于在上一代批尺寸小于所述预设批尺寸的情况下,确定当前进程数为上一代进程数,以及当前批尺寸由上一代批尺寸按照第一预设规则增加得到;或者,

进程数调整子模块,用于在上一代批尺寸等于所述预设批尺寸的情况下,确定当前进程数由上一代进程数按照第二预设规则增加得到,以及当前批尺寸为所述初始批尺寸。

可选地,所述装置还包括:

内存占用率监测模块,用于实时监测不同运行参数下所述目标硬件平台的内存占用率和所述深度学习算法模型的性能值;

模型运行控制模块,用于当所述目标硬件平台的内存占用率符合预设条件时,终止运行所述深度学习算法模型;

所述目标值确定模块,还用于确定已监测到的性能值中的目标性能值;

所述目标参数确定模块,还用于将所述目标性能值对应的运行参数,作为所述深度学习算法模型在所述目标硬件平台上运行的目标运行参数。

可选地,所述目标硬件平台包括中央处理器cpu、图形处理器gpu、现场可编程逻辑门阵列fpga、专用集成电路asic中的至少一种。

可选地,所述预设进程数小于或等于所述目标硬件平台的最大逻辑核数。

本发明实施例中,在目标硬件平台上以不同的运行参数条件,测试运行待上线的深度学习算法模型,并获取深度学习算法模型的性能值,在硬件可允许的运行参数,将对应深度学习算法模型目标性能值的运行参数作为硬件的性能测评结果,从而能够针对运行某深度学习算法模型的在目标硬件平台上的运行参数进行准确的测评,避免了仅关注模型的精简以及准确率,而没有对模型运行过程中的运行参数合理考虑,导致的硬件资源利用率低的问题,提升了模型推理处理的效率,硬件资源利用率的提升,也节省了硬件设备的部署数量以及开销成本。

本发明实施例还提供一种终端,包括处理器,存储器,存储在存储器上并可在处理上运行的计算机程序,该计算机程序被处理器执行时实现上述模型参数确定方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述模型参数确定方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,可以为只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。

在此提供的请求处理方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的请求处理方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1