模型推荐方法及装置、设备、计算机存储介质

文档序号:8636 发布日期:2021-09-17 浏览:24次 英文

模型推荐方法及装置、设备、计算机存储介质

技术领域

本公开涉及人工智能领域,尤其涉及一种模型推荐方法及装置、设备、计算机存储介质。

背景技术

随着人工智能的快速发展,深度学习技术成功的被应用于计算机视觉领域。使得对图像的特征提取从传统的手工设计转变为根据数据进行自动提取,极大的提高了图像特征的鲁棒性和识别的准确性。在这其中,模型的设计起到了至关重要的作用。

由于针对同一任务,基于不同模型所能达到的任务处理效果是存在差异的,因此,对于特定任务选取合适的模型具有重要的意义。然而,相关技术中在进行模型的选择时,往往是工程人员基于工作经验进行选择,选择难度高、准确性较差,使得模型的试错成本较高,进而导致了模型的选择周期较长的缺陷。

发明内容

本公开实施例提供一种模型推荐方法及装置、设备、计算机存储介质。

本公开的技术方案是这样实现的:

本公开实施例提供一种模型推荐方法,所述方法包括:

获取在第一硬件运行的神经网络模型目标属性参数;所述目标属性参数包括期望速度值和/或期望精度值;基于所述第一硬件和所述目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到与所述目标属性参数相匹配的神经网络模型;所述预设的神经网络模型库中的各神经网络模型的属性参数为在第二硬件测试得到,所述第二硬件包括所述第一硬件。

这样,在给定期望的硬件平台环境下包括的期望的速度值和期望的精度值等目标属性参数之后,便可以从预先设置的模型库中快速且准确的确定出与目标属性参数匹配的神经网络模型,实现了模型的自动化推荐。

上述方法中,所述目标属性参数还包括基于所述第一硬件运行的神经网络模型处理的批次量;所述基于所述第一硬件和所述目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到与所述目标属性参数相匹配的神经网络模型,包括:基于所述第一硬件、所述批次量、所述目标属性参数,在所述预设的神经网络模型库中对各神经网络模型进行筛选,得到帕累托模型;其中,所述帕累托模型为满足所述期望速度值和/或期望精度值,且计算速度和计算精度最优的神经网络模型;将所述帕累托模型确定为与所述目标属性参数相匹配的神经网络模型。

这样,在给定期望硬件平台环境下包括的期望的批次量、期望的速度值以及期望的精度值等目标属性参数之后,便可以从预先设置的模型库中快速且准确的确定出满足目标属性参数,且计算速度和计算精度最优的神经网络模型,实现了模型的自动化推荐。

上述方法中,所述预设的神经网络模型库基于如下方法构建,包括:获取第一网络结构库,所述第一网络结构库包括至少一种类型的初始神经网络结构;对获取的第一网络结构库进行扩展,得到第二网络结构库;基于第一数据集对所述第二网络结构库中各神经网络结构进行训练处理,得到对应的各神经网络模型;在每一所述第二硬件下,以每一种所述批次量作为输入对所述各神经网络模型进行测试,得到所述各神经网络模型的计算速度值和计算精度值;将所述第二硬件、所述批次量、所述计算速度值和所述计算精度值,与对应的所述神经网络模型进行关联,得到所述预设的神经网络模型库中的所述各神经网络模型的属性参数。

这样,可见,在本公开实施例中,通过定义在类型、深度、宽度以及分辨率中的至少一项上不同的大量神经网络结构,并对各神经网络结构进行训练,获得对应的神经网络模型,构建出具有丰富广泛神经网络模型的模型库。并对各神经网络模型进行测试,获得测试结果,进一步对各神经网络模型的标识与对应的测试结果进行关联,以便于基于关联关系快速进行与目标属性参数匹配的神经网络模型的检测。

上述方法中,所述对获取的第一网络结构库进行扩展,得到第二网络结构库,包括:对所述第一网络结构库中的各初始神经网络结构在至少一个维度上进行扩展处理,得到所述各初始神经网络结构对应的扩展后的神经网络结构集合;所述维度包括以下至少之一:神经网络结构的宽度、深度以及分辨率;基于所述各初始神经网络结构与对应的所述扩展后的神经网络结构集合,构建所述第二网络结构库。

这样,对初始定义的初始神经网络结构进行在类型、深度、宽度以及分辨率中的至少一项维度上的扩展变换,进一步扩充神经网络结构。

上述方法中,所述基于预设训练数据集对所述第一神经网络结构集合中各神经网络结构进行训练处理,得到对应的各神经网络模型,包括:基于预设的第一任务类型,使用所述第一数据集对所述第二网络结构库中的各神经网络结构进行训练处理,得到对应的各神经网络模型。

这样,通过基于预设的任务类型和训练数据集对各神经网络结构进行训练处理,便可获得对应的各神经网络模型。

上述方法中,所述对所述模型库中各神经网络模型进行测试,得到测试结果,包括:从预设测试数据集中提取至少一种批次量;确定预设的至少一种所述第二硬件;在每一所述第二硬件下,针对所述模型库中各神经网络模型,以每一种所述批次量作为输入对各神经网络模型进行测试,得到所述各神经网络模型在每一种所述批次量下对应的计算速度值和计算精度值。

这样,在每一硬件平台环境下,针对模型库中各神经网络模型,以每一种批次量作为输入对各神经网络模型进行测试,获得各神经网络模型在各硬件平台上的运行耗时和精度。

上述方法中,所述得到与所述目标属性参数相匹配的神经网络模型之后,所述方法还包括:获取所述神经网络模型在所述第一硬件上待处理的第二任务类型;在所述第二任务类型与所述第一任务类型未匹配的情况下,基于所述第二任务类型对应的第二数据集对所述神经网络模型进行再训练,以对神经网络模型的参数进行微调。

这样,在基于用户任务需求,根据指定的任务类型和待推荐的神经网络结构模型进行模型创建时,如果待处理的任务类型与模型训练时预设的任务类型不同,可以进一步基于新的任务类型和新的数据集对神经网络模型进行再训练,实现模型参数微调。

上述方法中,所述方法还包括:确定预设的任务类型;其中,所述预设的任务类型至少包括所述第一任务类型和所述第二任务类型;基于每一种所述任务类型和及其对应的输入格式和输出格式,确认所述预设的神经网络模型库中的每一所述神经网络模型的输入格式和输出格式。

这样,可以对预设的模型库中的各神经网络模型进行多种任务类型、以及每一任务类型输入格式和输出格式的定义,以使各神经网络模型能够支持多种任务类型。

本公开实施例提供一种模型推荐装置,包括:

获取模块,配置为获取在第一硬件运行的神经网络模型目标属性参数;所述目标属性参数包括期望速度值和/或期望精度值;

筛选模块,配置为基于所述第一硬件和所述目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到与所述目标属性参数相匹配的神经网络模型;所述预设的神经网络模型库中的各神经网络模型的属性参数为在第二硬件测试得到,所述第二硬件包括所述第一硬件。

本公开实施例提供一种模型推荐设备,所述模型推荐设备包括处理器、存储有所述处理器可执行指令的存储器,当所述指令被所述处理器执行时,实现如上所述的模型推荐方法。

本公开实施例提供一种计算机可读存储介质,其上存储有程序,应用于模型推荐设备中,所述程序被处理器执行时,实现如上所述的模型推荐方法。

本公开实施例提出的技术方案,模型推荐设备可以获取在第一硬件运行的神经网络模型目标属性参数;目标属性参数包括期望速度值和/或期望精度值;基于第一硬件和目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到与目标属性参数相匹配的神经网络模型;预设的神经网络模型库中的各神经网络模型的属性参数为在第二硬件测试得到,第二硬件包括第一硬件。如此,在给定期望的硬件平台环境下包括的期望的速度值和/或期望的精度值等目标属性参数之后,便可以从预先设置的模型库中快速且准确的确定出与目标属性参数匹配的神经网络模型,实现了模型的自动化推荐,提高了模型选择的准确性,降低了模型试错成本,进一步克服了模型选择周期较长的缺陷。

附图说明

图1为本公开实施例提出的模型推荐方法的实现流程示意图一;

图2为本公开实施例提出的模型推荐方法的实现流程示意图二;

图3为本公开实施例提出的模型推荐方法的实现流程示意图三;

图4为本公开实施例提出的模型推荐方法的实现流程示意图四;

图5为本公开实施例提出的模型推荐方法的实现流程示意图五;

图6为本公开实施例提出的模型推荐方法的实现流程示意图六;

图7为本公开实施例提出的模型推荐方法的实现流程示意图七;

图8为本公开实施例提出的模型推荐方法的应用场景示意图;

图9为本公开实施例提出的模型推荐装置的组成结构示意图;

图10为本公开实施例提出的模型推荐设备的组成结构示意图。

具体实施方式

为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。

对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)ImageNet-1k Val标准测试集:一个计算机视觉数据集,是为了促进计算机图像识别技术的发展而设立的一个大型图像数据集,用于训练和测试神经网络模型,可作为评估图像分类算法性能的基准。

2)测试精度:指在标准测试集上对训练好的网络进行评测所得到的精度指标。

3)参数量:指模型所包含的可学习的参数数量。

4)计算量:指模型对给定输入大小图像所需要的乘加计算次数。

5)运行耗时:指在特定硬件平台上模型的运行速度。

6)帕累托(Pareto)算法:一种多目标优化算法,在现实生活中存在很多的问题都是由互相冲突和影响的多个目标组成,这些目标不可能同时达到最优的状态,多目标优化是指在约束条件下有两个或两个以上优化目标,且这些目标相互矛盾,一个目标往往以牺牲另一个目标为代价,可利用帕累托算法求解出帕累托最优解。

随着人工智能的快速发展,深度学习技术成功的被应用于计算机视觉领域。使得对图像的特征提取从传统的手工设计转变为根据数据进行自动提取,极大的提高了图像特征的鲁棒性和识别的准确性。在这其中,神经网络的结构/模型的设计起到了至关重要的作用。

由于针对同一任务,基于不同模型所能达到的任务处理效果是存在差异的,因此,对于特定任务选取合适的模型具有重要的意义。并且由于模型的选择与诸多参数相关,在模型的选择时需要综合考虑这些因素进行推荐。然而,相关技术中在进行模型的选择时,不仅模型结构较为有限,而且与实际脱节,只考虑参数量和计算量等有限的软件属性参数,同时模型结构普遍为单一任务支持,灵活性差。甚至于模型的选择往往也是工程人员基于工作经验进行选择,使得模型选择难度高、准确性较差,模型的试错成本较高,进而导致了模型的选择周期较长的缺陷。

鉴于此,如何实现高效的模型选择是亟待解决的问题,是本公开实施例所要讨论的内容,下面将结合以下具体实施例进行阐述。

本公开实施例提供一种模型推荐方法及装置、设备、计算机存储介质,在给定期望的硬件平台环境下包括的期望的速度值和/或期望的精度值等目标属性参数之后,便可以从预先设置的模型库中快速且准确的确定出与目标属性参数匹配的神经网络模型,实现了模型的自动化推荐,提高了模型选择的准确性,降低了模型试错成本,进一步克服了模型选择周期较长的缺陷。

本公开实施例提出的模型推荐方法应用于模型推荐设备中。下面说明本公开实施例提出的模型推荐设备的示例性应用,本公开实施例提出的模型推荐设备可以实施为手机、笔记本电脑,平板电脑,台式计算机,智能电视、车载设备、可穿戴设备、工业设备等。

下面,将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。

本公开一实施例提供了一种模型推荐方法,图1为本公开实施例提出的模型推荐方法的实现流程示意图一,如图1所示,在本公开的实施例中,模型推荐设备执行模型推荐的方法可以包括以下步骤:

S100、获取在第一硬件运行的神经网络模型目标属性参数;目标属性参数包括期望速度值和/或期望精度值。

在一些实施例中,模型推荐设备设置搜索引擎,该搜索引擎的前端对应第一界面。其中,用户可以在第一界面中进行神经网络模型的性能需求参数的配置操作,从而响应于用户在第一界面中的配置操作,获取用于描述待推荐模型的性能需求参数。

在一些实施例中,用于描述与目标属性参数匹配的神经网络模型的性能需求参数可以包括目标应用场景和目标属性参数。

其中,目标应用场景至少包括期望的硬件平台环境即支持进行模型部署运行的第一硬件。

其中,目标属性参数至少包括期望的速度值和期望的精度值中的至少一项,期望的精度值即与目标属性参数匹配的神经网络模型在第一硬件下进行部署测试时获得的精度指标,期望的速度值即待推荐模型的在第一硬件下部署运行时期望的计算速度,换言之运行耗时。

也就是说,在本公开实施例中,响应于用户在第一界面的配置操作,可以至少获取用户指定在第一硬件部署运行的神经网络模型的目标属性参数,包括期望的速度值和期望的精度值中的至少一项。

S110、基于第一硬件和目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到与目标属性参数相匹配的神经网络模型;预设的神经网络模型库中的各神经网络模型的属性参数为在第二硬件测试得到,第二硬件包括第一硬件。

在本公开实施例中,在获取到用户指定的第一硬件下的目标属性参数,即期望的速度值和期望的精度值中的至少一项之后,模型推荐设备可以基于该目标属性参数从预设的模型库中进行神经网络模型的筛选。

应理解,预设的模型库为包含大量神经网络模型的模型库,该模型库中的神经网络模型覆盖范围较为广泛,可以是移动端部署的神经网络模型,即端上小模型;也可以是云端部署的神经网络模型,即云上大模型,覆盖了从端上小模型至云上大模型的广泛范围。另外,模型库中涵盖了在类型、深度、宽度以及分辨率中的至少一项上不同的各种模型。

其中,预设的模型库中的各神经网络模型为经预设训练数据集进行训练获得的,且在预设测试数据集对各神经网络模型进行测试。

在一些实施例中,预设的模型库中的每一神经网络模型都对应一关联信息,可以建立神经网络模型的标识与该关联信息的对应关系;其中,该关联信息可以表征该神经网络模型在预设测试数据集进行测试获得的测试结果,即可以对模型库中的各神经网络模型与其对应的测试结果进行关联。

其中,可以针对模型库中各神经网络模型,在任一预设硬件平台环境下进行部署测试,从而得到各神经网络模型对应的测试结果,该测试结果即针对任一硬件平台环境下,各神经网络模型对应的计算速度值和计算精度值,进而可以将该测试结果与对应的神经网络模型进行关联。

这里,任一预设硬件平台环境可以指能够进行模型部署运行及测试的第二硬件,第一硬件可以是该第二硬件中的其中一种。

在一些实施例中,模型推荐设备设置有搜索引擎,该搜索引擎的后端接入包含具有大量模型结构的预设的模型库,模型推荐设备可以通过该搜索引擎,基于第一硬件下的包括期望的速度值和或期望的精度值的目标属性参数在后端接入的预设的模型库中进行神经网络模型的筛选处理。

其中,在基于第一硬件下的目标属性参数进行待推荐模型的筛选时,可以基于至少一组关联信息进行神经网络模型的筛选;其中,每一组关联信息可以表征在第一硬件下,模型库中的各神经网络模型以特定批次大小(批次量)作为输入经过测试得到的计算速度值以及计算精度值。

在本公开实施例的一实施方式中,可以是在第一平台下基于目标属性参数对模型库进行检索,进而获取到与目标属性参数匹配的神经网络模型。

例如,第一硬件可以是手机移动端,期望的速度值即模型在手机移动端运行时的运行耗时上限(换言之运行速度),期望的精度值即模型在手机移动端运行时模型的精度下限,模型推荐设备通过模型搜索引擎从后端模型库中基于上述参数在可支持在第一硬件部署运行的神经网络模型中进行检索匹配,便可以确定出与目标属性参数匹配的神经网络模型。

在一些实施例中,在确定出与目标属性参数匹配的神经网络模型之后,可以将该神经网络模型呈现在第二界面;其中,该第二界面可以是与第一界面相同的界面,也可以是不同的界面。

本公开实施例提出了一种模型推荐方法,通过获取在第一硬件运行的神经网络模型目标属性参数;目标属性参数包括期望速度值和/或期望精度值;基于第一硬件和目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到与目标属性参数相匹配的神经网络模型;预设的神经网络模型库中的各神经网络模型的属性参数为在第二硬件测试得到,第二硬件包括第一硬件。如此,在给定期望的硬件平台环境下包括的期望的速度值和/或期望的精度值等目标属性参数之后,便可以从预先设置的模型库中快速且准确的确定出与目标属性参数匹配的神经网络模型,实现了模型的自动化推荐,提高了模型选择的准确性,降低了模型试错成本,进一步克服了模型选择周期较长的缺陷。

图2为本公开实施例提出的模型推荐方法的实现流程示意图二,如图2所示,在本公开的实施例中,模型推荐设备基于第一硬件和目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到与目标属性参数相匹配的神经网络模型的方法可以包括以下步骤:

S200、基于第一硬件、批次量、目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到帕累托模型;其中,帕累托模型为满足期望速度值和/或期望精度值,且计算速度和计算精度最优的神经网络模型。

S210、将帕累托模型确定为与目标属性参数相匹配的神经网络模型。

在一些实施例中,目标属性参数还包括批次量,即神经网络模型在期望的硬件平台环境即第一硬件下部署运行时,神经网络模型处理的批次量。

在本公开实施例中,在获取到用户指定的第一硬件下期望的批次量,以及期望的速度值和期望的精度值中的至少一项之后,模型推荐设备可以基于上述参数从预设的模型库中进行神经网络模型的筛选。

在一些实施例中,可以预设至少一种批次大小,可以在任一硬件平台环境下,针对模型库中的各神经网络模型,以任一种批次量作为输入对各神经网络模型进行测试,从而得到各神经网络模型对应的测试结果,该测试结果即针对任一硬件平台环境下,各神经网络模型在任一种批次量下对应的计算速度值和计算精度值,进而可以将该测试结果与对应的神经网络模型进行关联。

这里,任一预设硬件平台环境可以指能够进行模型部署运行及测试的第二硬件,第一硬件可以是该第二硬件中的其中一种。

在一些实施例中,在基于第一硬件下的包括批次量、期望的速度值和/或期望的精度值的目标属性参数进行神经网络模型的筛选时,可以基于至少一组关联信息进行神经网络模型的筛选;其中,每一组关联信息可以表征在第一硬件下,模型库中的各神经网络模型以同一种批次大小(批次量)作为输入经过测试得到的计算速度值以及计算精度值。

例如,第一硬件可以是手机移动端,第一硬件运行的神经网络模型处理的批次量可以是256,期望的速度值即模型在手机移动端运行时的运行耗时上限(换言之运行速度),期望的精度值即模型在手机移动端运行时模型的精度下限,模型推荐设备基于上述参数在可支持在第一硬件部署运行,且处理批次量为256的神经网络模型中进行检索匹配,便可以确定出满足目标属性参数即运行耗时小于期望的速度值且精度大于期望的精度值的所有候选模型,然后基于最优解算法,如帕累托算法从这些候选模型中确定出可以部署在手机移动端,且运动耗时最小且精度最高的帕累托最优神经网络模型作为与目标属性参数匹配的神经网络模型。

如此,在给定期望的硬件平台环境、期望的批次量以及期望的速度值和期望的精度值之后,便可以从预先设置的模型库中快速且准确的确定出满足目标指标值且计算速度和计算精度最优的帕累托模型,实现了模型的自动化推荐,提高了模型选择的准确性,降低了模型试错成本,进一步克服了模型选择周期较长的缺陷。

图3为本公开实施例提出的模型推荐方法的实现流程示意图三,如图3所示,在本公开的实施例中,模型推荐设备执行模型推荐的方法可以包括以下步骤:

S300、获取第一网络结构库,第一网络结构库包括不同类型的初始神经网络结构。

S310、对获取的第一网络结构库进行扩展,得到第二网络结构库。

在本公开实施例中,模型推荐设备可以预先构建模型库。其中,构建模型库可以通过以下方式实现:可以先定义大量的神经网络结构,并对这些神经网络结构进行训练处理,获得神经网络模型,并对各神经网络模型进行测试处理,获得表征各神经网络模型属性的各项测试结果,进而对各项测试结果与对应的神经网络结构进行关联,从而基于各神经网络结构以及各神经网络结构与对应的测试结果的关联关系构建模型库。

在一些实施例中,定义大量神经网络结构可以通过以下方式实现:可以获取包括不同类型的初始神经网络结构的第一网络结构库,并通过对初始神经网络结构的维度的扩展,对第一网络结构库进行扩展,从而得到第二网络结构库;这里,第二网络结构库中包含大量的神经网络结构。

在本公开实施例的一实施方式中,模型推荐设备可以先获取第一网络结构库,该第一网络结构库中包含初始神经网络结构,分别为残差神经网络(ResNet),密集神经网络(DenseNet),高效神经网络(EfficientNet),移动端神经网络(MobileNet),规范神经网络(RegNet)等,可以对这些神经网络结构进行维度上的扩展变换,以实现对第一网络结构库中包含的神经网络结构进行扩充,进而得到第二网络结构库。

S320、基于第一数据集对第二网络结构库中各神经网络结构进行训练处理,得到对应的各神经网络模型。

在本公开实施例中,模型推荐设备可以对扩展后的第二网络结构库中的各神经网络结构进行模型训练处理,从而得到各神经网络结构对应的神经网络模型。

其中,可以基于预设的训练数据集即第一数据集按照统一的标准对第二网络结构库中的各神经网络结构进行训练处理,进而获得对应的神经网络模型。这里,统一的标准可以是各神经网络结构按照统一的目标损失函数、统一的学习率,本申请对此不作具体限定。

在本公开实施例中,可以基于预设训练数据集对第二网络结构库中的各神经网路结构进行第一任务类型的训练处理,其中,该第一任务类型不限制于任一任务类型,如分类任务,或目标检测任务或图像分割任务。

其中,可以基于预设训练数据集对第二网络结构库中的各神经网路结构进行分类的训练处理,从而获得各神经网络结构对应的神经网络模型。或者,也可以基于预设训练数据集对第二网络结构库中的各神经网路结构进行目标检测任务的训练处理,从而获得各神经网络结构对应的神经网络模型;或者,也可以基于预设训练数据集对第二网络结构库中的各神经网路结构进行图像分割任务的训练处理,从而获得各神经网络结构对应的神经网络模型。

例如,模型推荐设备基于预设训练数据集分别对ResNet、DenseNet、EfficientNet进行训练处理,便可获得ResNet对应的训练后神经网络模型模型,DenseNet对应的训练后神经网络模型,EfficientNet对应的训练后的模型。

S330、在每一第二硬件下,以每一种批次量作为输入对模型库中各神经网络模型进行测试,得到各神经网络模型的计算速度值和计算精度值。

S340、将第二硬件、批次量、计算速度值和计算精度值,与对应的神经网络模型进行关联,得到预设的神经网络模型库中的各神经网络模型的属性参数。

在本公开实施例中,模型推荐设备可以对训练后得到的各神经网络模型进行性能测试;其中,可以基于预设测试数据集如ImageNet-1k Val标准测试集,进行模型测试处理,从而得到各神经网络模型对应的测试结果。

在一些实施例中,模型推荐设备可以在多种硬件平台环境下即多种第二硬件下,包括中央处理器(Central Processing Unit,CPU),图形处理器(Graphics ProcessingUnit,GPU)或者手机芯片中手机芯片等进行模型的部署测试。其中,可以在每一第二硬件下,对于各神经网络模型,采用以不同的批次量作为输入对各神经网络模型进行测试,得到测试结果。

这里测试结果可以包括模型在每一第二硬件下以每一种批次量作为输入时得到的运行速度即计算速度值,以及模型的测试精度即计算精度值。另一方面,测试结果还可以包括模型的参数量和模型的计算量。

在本公开实施例中,可以建立神经网络结构模型与对应的测试结果的关联关系;这里,可以将每一硬件平台环境下即每一第二硬件下,以每一种批次量作为输入进行测试得到的各神经网络模型的测试结果,与对应的神经网络模型的进行关联。

这里,可以将每一硬件平台环境下,以每一种批次量作为输入进行测试得到的各神经网络模型的计算速度和计算精度与对应的神经网络的标识进行关联,也就是建立神经网络结构模型与模型属性参数的关联关系。

可见,在本公开实施例中,通过定义在类型、深度、宽度以及分辨率中的至少一项上不同的大量神经网络结构,并对各神经网络结构进行训练,获得对应的神经网络模型,构建出具有丰富广泛神经网络模型的模型库。并对各神经网络模型进行测试,获得测试结果,进一步对各神经网络模型的标识与对应的测试结果进行关联,以便于基于关联关系快速进行与目标属性参数匹配的神经网络模型的检测。

图4为本公开实施例提出的模型推荐方法的实现流程示意图四,如图4所示,在本公开的实施例中,模型推荐设备对获取的第一网络结构库进行扩展,得到第二网络结构库的方法可以包括以下步骤:

S401、对第一网络结构库中的各初始神经网络结构在至少一个维度上进行扩展处理,得到各初始神经网络结构对应的扩展后的神经网络结构集合;维度包括以下至少之一:神经网络结构的宽度、深度以及分辨率。

S402、基于各初始神经网络结构与对应的扩展后的神经网络结构集合构建第二网络结构库。

在本公开实施例中,对包含初始神经网络结构的第一网络结构库进行由第二网络结构库的扩展时,可以基于对各初始神经网络结构在不同维度上的扩展进而实现网络结构库的扩展。

其中,可以对各初始神经网络结构在宽度、深度以及分辨率中的至少一个维度上进行扩展处理,从而得到各初始神经网络结构对应的扩展后的神经网络结构集合。

例如,对初始神经网络结构中的ResNet分别进行一个维度上的扩展变化,即分别在深度、宽度、分辨率上的扩展变换,获得深度扩展后的第一ResNet,宽度扩展后的第二ResNet,分辨率扩展后的第三ResNet;或者在两个维度上的扩展变换,即分别在深度和宽度,或者深度和分辨率,或者宽度和分辨率上的扩展变换,获得深度和宽度扩展后的第四ResNet,深度和分辨率扩展后的第五ResNet,宽度和分辨率扩展后的第六ResNet;或者三个维度上都进行扩展变化的深度和宽度以及分辨率扩展后的第七ResNet,也就是说,在对每一初始神经网络结构在深度、宽度以及分辨率中的至少一个维度上进行扩展变化,可以得到每一初始神经网络结构对应的扩展后的神经网络结构集合,便可以基于扩展后的神经网络结构集合对第一网络结构库进行扩展,获得第二网络结构库。

可见,在本公开实施例中,对初始定义的初始神经网络结构进行在类型、深度、宽度以及分辨率中的至少一项维度上的扩展变换,进一步扩充神经网络结构。

图5为本公开实施例提出的模型推荐方法的实现流程示意图五,如图5所示,在本公开的实施例中,模型推荐设备对模型库中各神经网络模型进行测试,得到测试结果的方法可以包括以下步骤:

S500、从预设测试数据集中提取至少一种批次量。

S510、确定预设的至少一种第二硬件。

S511、在每一第二硬件下,针对模型库中各神经网络模型,以每一种所述批次量作为输入对各神经网络模型进行测试,得到各神经网络模型在每一种批次量下对应的计算速度值和计算精度值。

在本公开实施例中,模型推荐设备可以基于预设的标准测试集在多种硬件平台环境下,基于不同的批次大小对每一神经网络模型进行测试。

其中,模型推荐设备可以从预设测试数据集,如标准测试集中提取至少一种批次大小,并确定支持模型部署测试的至少一种第二硬件,然后在每一第二硬件下,针对每一神经网络模型以各种批次大小作为输入进行测试,可以得到每一种神经网络模型在每一第二硬件下以每一中批次大小作为输入得到的计算速度以及计算精度。

可见,在每一硬件平台环境下,针对模型库中各神经网络模型,以每一种批次量作为输入对各神经网络模型进行测试,获得各神经网络模型在各硬件平台上的运行耗时和精度。

图6为本公开实施例提出的模型推荐方法的实现流程示意图六,如图6所示,在本公开的实施例中,模型推荐设备在得到所述与目标属性参数匹配的神经网络模型之后的方法可以包括以下步骤:

S601、获取神经网络模型在第一硬件上待处理的第二任务类型。

在一些实施例中,在确定出与目标属性参数匹配的神经网络模型,并将该推荐的神经网络模型呈现在第二界面之后,可以响应于用户在第二界面执行的模型创建操作,基于针对模型的任务需求参数和获取到的与目标属性参数匹配的神经网络模型,创建出满足任务需求参数的目标神经网络模型。

其中,任务需求参数可以指神经网络模型在第一硬件上待处理的第二任务类型。

在本公开实施例的一实施方式中,模型推荐设备设置创建接口用于进行模型创建,该创建接口的前端便对应第二界面。其中,用户可以对创建接口进行神经网络模型的创建操作,如指定神经网络模型在第一硬件上待处理的第二任务类型,进而模型推荐设备可以响应于用户对创建接口的创建操作,获取用于描述待处理的第二任务类型。

这里,该第二任务类型可以为分类任务;或者也可以为目标检测任务;或者还可以为图像分割任务,本申请对此不做具体限定。

在另一些实施例中,任务需求参数还可以包括神经网络模型的类别数量。

可以理解的是,神经网络模型每一层的输出数据是存在差异的,可以获得神经网络模型中间层的输出,也可以获取神经网络模型最后一层的输出数据。在本公开实施例中,在进行模型创建时,用户还可以对需要获取模型哪一层的输出数据指定,即指定模型的数据输出层,换言之模型的深度或者是类别数量。

在本公开实施例的另一实施方式中,用户可以对创建接口进行神经网络模型的创建操作,如指定神经网络模型的待处理任务类型和神经网络模型的类别数量,进而模型推荐设备可以响应于用户对创建接口的创建操作,获取用于描述神经网络模型在第一硬件上待处理的第二任务类型以及对应的类别数量。

S602、在第二任务类型与第一任务类型未匹配的情况下,基于第二任务类型对应的第二数据集对神经网络模型进行再训练,以对神经网络模型的参数进行微调。

在一些实施例中,在确定出与目标属性参数匹配的神经网络模型,并将该神经网络模型呈现在第二界面,并响应于用户在第二界面执行的模型创建操作获取用于描述待处理的第二任务类型之后,如果第二任务类型与预设的第一任务类型不匹配,也就是说,对模型库中的神经网络模型进行训练时的任务类型与当前模型创建时的待处理任务类型并不相同,那么模型推荐设备可以基于第二任务类型对应的第二数据集对神经网络模型进行再训练,以对神经网络模型的参数进行微调,例如,模型一些超参数,学习率、优化器、迭代次数等的调整。

可见,在本公开实施例中,在基于用户任务需求,根据指定的任务类型和待推荐的神经网络结构模型进行模型创建时,如果待处理的任务类型与模型训练时预设的任务类型不同,可以进一步基于新的任务类型和新的数据集对神经网络模型进行再训练,实现模型参数微调。

图7为本公开实施例提出的模型推荐方法的实现流程示意图七,如图7所示,在本公开的实施例中,模型推荐设备在得到与目标属性参数匹配的神经网络模型之后,方法还可以包括以下步骤:

S701、获取神经网络模型在第一硬件上待处理的第二任务类型。

S702、在第二任务类型与第一任务类型匹配的情况下,基于第二任务类型、预设的至少一组任务规范信息以及与目标属性参数匹配的神经网络模型,创建对应的目标神经网络模型;其中:每一组任务规范信息用于表征预设的至少一种任务类型,在模型库中每一神经网络模型下对应的输入格式和输出格式。

在本公开实施例中,响应于在创建接口的创建操作,获取用于描述与目标属性参数匹配的神经网络模型在第一硬件上待处理的第二任务类型之后,如果该第二任务类型与预设的第一任务类型相匹配,便可以基于该第二任务类型和与目标属性参数匹配的神经网络模型进行模型的创建。

在一些实施例中,模型推荐设备可以预先定义规范模型库中各神经网络模型支持的多种任务类型,以及各神经网络模型在每一任务类型下对应的输入、输出格式,即至少一组任务规范信息。其中,该至少一组规范信息为至少一种任务类型,在模型库中每一神经网络模型下对应的输入格式和输出格式。

在一些实施例中,在获取用于描述与目标属性参数匹配的神经网络模型在第一硬件上待处理的第二任务类型之后,便可以基于该第二任务类型和至少一组任务规范信息,确定出在该第二任务类型下模型的输入、输出格式,进而规范与目标属性参数匹配的神经网络模型的输入、输出格式,从而进一步构建出支持第二任务类型的目标神经网络模型。

在本公开实施例中,为了使模型库中的各神经网络模型支持不同的任务,如分类任务、目标检测任务、图像分类任务等,可以对各神经网络模型进行任务类型和输入、输出格式进行规范定义;其中至少一组任务规范信息可以采用如下方式实现:

确定预设的至少一种任务类型;对模型库中的每一神经网络模型,基于每一种任务类型和对应的输入格式和输出格式进行规范定义处理,得到对应的一组任务规范信息。

例如分类任务、目标检测任务、图像分类任务等。

其中,对于分类任务进行规范定义,给予指定的输入,返回的输出格式为定长的二维向量,可以支持使用分类器进行类别的判定。

其中,对于目标检测任务或者图像分割任务进行规范定义,给予指定的输入,返回的输出格式为为一组不同尺度大小的特征矩阵,支持下有任务的特征提取。

可见,对模型库中的各模型进行了多种任务类型的定义规范,以使各神经网络模型能够被不同的下游任务所调用。

在另一些实施例中,在获取用于描述与目标属性参数匹配的神经网络模型在第一硬件上待处理的第二任务类型和类别数量之后,便可以基于该第二任务类型和至少一组任务规范信息,确定出在该第二任务类型下模型的输入、输出格式,基于类别数量确定出模型的数据输出层,进而规范与目标属性参数匹配的神经网络模型的输入、输出格式,以及与目标属性参数匹配的神经网络模型的数据输出层,从而进一步构建出支持第二任务类型的目标神经网络模型。

可见,在本公开实施例中,可以基于用户任务需求,根据指定的任务类型和待推荐的神经网络结构模型构建能够支持特定任务的目标神经网络模型。

示例性的,图8为本公开实施例提出的模型推荐方法的应用场景示意图,如图8所示为GPU硬件平台上模型库各神经网络模型的性能(运行耗时和精度)分布,该模型库中包含了对应11种类型的神经网络模型,包括resnet、regnet、bignas、bignas、dmcp、shufflenet_v2、mobilenet_v2、oneshot_supcell、crnas_resnet、efficient、netmobilenet_v3,可以对每一种神经网络模型的结构进行在宽度、深度以及分辨率中的至少一个维度上的扩展,便可以获得对应每一类型的神经网络模型集合。如resnet对应的神经网络结构进行至少一个维度上的扩展处理之后,可以获得resnet18c_×0_25、resnet18c_×0.5、resnet18c_×0_125、dmcp_resnet18_47M等同一类型但不同维度结构的神经网络模型。其他类型的神经网络模型对应结构的扩展类同,此处不再赘述。

进一步的,在基于GPU硬件平台下的目标属性参数,如运行耗时为1ms。精度为60%,对模型库进行筛选以确定与目标属性参数匹配的神经网络模型时,可以先确定出所有运行耗时小于1ms,精度大于60%的候选模型,即虚线相交对应的左上角处的多个神经网络模型均为满足运行耗时小于1ms,精度大于60%的候选模型,进一步的,可以基于帕累托最优解方法从这些候选模型中确定出速度最快且精度最优的帕累托模型,也就是帕累托曲线即----pareto上的点对应的神经网络模型bignas_resnet18_492M。

基于上述实施例,在本公开的在一实施例中,图9为本公开实施例提出的模型推荐装置的组成结构示意图,如图9所示,所述模型推荐装置10包括获取模块11、筛选模块12、扩展模块13、训练模块14、测试模块15、关联模块16、确定模块17。

获取模块11,配置为获取在第一硬件运行的神经网络模型目标属性参数;所述目标属性参数包括期望速度值和/或期望精度值;

筛选模块12,配置为基于所述第一硬件和所述目标属性参数,在预设的神经网络模型库中对各神经网络模型进行筛选,得到与所述目标属性参数相匹配的神经网络模型;所述预设的神经网络模型库中的各神经网络模型的属性参数为在第二硬件测试得到,所述第二硬件包括所述第一硬件。

在一些实施例中,所述目标属性参数还包括基于所述第一硬件运行的神经网络模型处理的批次量,所述推荐单元,配置为基于所述第一硬件、所述批次量、所述目标属性参数,在所述预设的神经网络模型库中对各神经网络模型进行筛选,得到帕累托模型;其中,所述帕累托模型为满足所述期望速度值和/或期望精度值,且计算速度和计算精度最优的神经网络模型;以及将所述帕累托模型确定为与所述目标属性参数相匹配的神经网络模型。

在一些实施例中,所述获取模块11,配置为获取第一网络结构库,所述第一网络结构库包括不同类型的初始神经网络结构。

在一些实施例中,所述扩展模块13,配置为对获取的第一网络结构库进行扩展,得到第二网络结构库。

在一些实施例中,所述训练模块14,配置为基于第一数据集对所述第二网络结构库中各神经网络结构进行训练处理,得到对应的各神经网络模型。

在一些实施例中,所述测试模块15,配置为在每一所述第二硬件下,以每一种所述批次量作为输入对所述各神经网络模型进行测试,得到所述各神经网络模型的计算速度值和计算精度值。

在一些实施例中,所述关联模块16,配置为将所述第二硬件、所述批次量、所述计算速度值和所述计算精度值,与对应的所述神经网络模型进行关联,得到所述预设的神经网络模型库中的所述各神经网络模型的属性参数。

在一些实施例中,所述扩展模块13,配置为对所述第一网络结构库中的各初始神经网络结构在至少一个维度上进行扩展处理,得到所述各初始神经网络结构对应的扩展后的神经网络结构集合;所述维度包括以下至少之一:神经网络结构的宽度、深度以及分辨率;以及基于所述各初始神经网络结构与对应的所述扩展后的神经网络结构集合,构建所述第二网络结构库。

在一些实施例中,所述训练模块14,配置为基于预设的第一任务类型,使用所述第一数据集对所述第二网络结构库中的各神经网络结构进行训练处理,得到对应的各神经网络模型。

在一些实施例中,所述测试模块15,配置为从预设测试数据集中提取至少一种批次量;以及确定预设的至少一种所述第二硬件;以及在每一所述第二硬件下,针对所述模型库中各神经网络模型,以每一种所述批次量作为输入对各神经网络模型进行测试,得到所述各神经网络模型在每一种所述批次量下对应的计算速度值和计算精度值。

在一些实施例中,所述获取模块11,配置为在得到与所述目标属性参数相匹配的神经网络模型之后,获取所述神经网络模型在所述第一硬件上待处理的第二任务类型。

在一些实施例中,所述训练模块14,配置为在所述第二任务类型与所述第一任务类型未匹配的情况下,基于所述第二任务类型对应的第二数据集对所述神经网络模型进行再训练,以对所述神经网络模型的参数进行微调。

在一些实施例中,所述确定模块17,配置为确定预设的任务类型;其中,所述预设的任务类型至少包括所述第一任务类型和所述第二任务类型;以及基于每一种所述任务类型和及其对应的输入格式和输出格式,确认所述预设的神经网络模型库中的每一所述神经网络模型的输入格式和输出格式。

在本公开的实施例中,进一步地,图10为本公开实施例提出的模型推荐设备的组成结构示意图,如图10所示,本公开实施例提出的模型推荐设备20还可以包括处理器21、存储有处理器21可执行指令的存储器22,进一步地,活体检测设备20还可以包括通信接口23,和用于连接处理器21、存储器22以及通信接口23的总线24。

在本公开的实施例中,上述处理器21可以为特定用途集成电路(ApplicationSpecific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(ProgRAMmable Logic Device,PLD)、现场可编程门阵列(Field Prog RAMmable GateArray,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。活体检测设备20还可以包括存储器22,该存储器22可以与处理器21连接,其中,存储器22用于存储可执行程序代码,该程序代码包括计算机操作指令,存储器22可能包含高速RAM存储器,也可能还包括非易失性存储器,例如,至少两个磁盘存储器。

在本公开的实施例中,总线24用于连接通信接口23、处理器21以及存储器22以及这些器件之间的相互通信。

在本公开的实施例中,存储器22,用于存储指令和数据。

进一步地,在本公开的实施例中,上述处理器21,用于获取用于描述与目标属性参数匹配的神经网络模型的目标应用场景和目标指标值,所述目标应用场景至少包括:期望的硬件平台环境;所述目标指标值至少包括期望的速度值和/或期望的精度值;基于所述目标应用场景和所述目标指标值,对预设的模型库中各神经网络模型进行筛选,得到所述与目标属性参数匹配的神经网络模型;所述与目标属性参数匹配的神经网络模型为在所述期望的硬件平台环境下测试得到的测试结果满足所述目标指标值,且计算速度和计算精度最优的神经网络模型。

在实际应用中,上述存储器22可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器15提供指令和数据。

另外,在本实施例中的各功能模块可以集成在一个推荐单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本公开实施例提供了一种模型推荐设备,该模型推荐设备可以预先构建目标模型库;其中,目标模型库用于表征候选模型、软件属性参数以及硬件属性参数之间的对应关系;然后在接收到模型的推荐请求的情况下;其中,推荐请求携带推荐软件属性参数和推荐硬件属性参数;根据推荐软件属性参数和推荐硬件属性参数对目标模型库进行搜索处理,进而获得目标推荐模型。如此,通过构建包含丰富模型结构,且包含丰富模型属性的目标模型库,能够根据指定模型推荐需求在目标模型库中自动搜索出合适的推荐模型,实现了模型的自动化推荐,提高了模型选择的准确性,降低了模型试错成本,进一步克服了模型选择周期较长的缺陷。。

本公开实施例提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上所述的模型推荐方法。

具体来讲,本实施例中的一种模型推荐方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种模型推荐方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:

获取用于描述与目标属性参数匹配的神经网络模型的目标应用场景和目标指标值,所述目标应用场景至少包括:期望的硬件平台环境;所述目标指标值至少包括期望的速度值和/或期望的精度值;

基于所述目标应用场景和所述目标指标值,对预设的模型库中各神经网络模型进行筛选,得到所述与目标属性参数匹配的神经网络模型;

所述与目标属性参数匹配的神经网络模型为在所述期望的硬件平台环境下测试得到的测试结果满足所述目标指标值,且计算速度和计算精度最优的神经网络模型。

相应地,本公开实施例再提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令用于实现本公开实施例提出的模型推荐方法中的步骤。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:基于数字表面模型辅助的高光谱图像本征分解方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!