CN112949842A - 神经网络结构搜索方法、装置、计算机设备以及存储介质 - Google Patents
神经网络结构搜索方法、装置、计算机设备以及存储介质 Download PDFInfo
- Publication number
- CN112949842A CN112949842A CN202110523774.2A CN202110523774A CN112949842A CN 112949842 A CN112949842 A CN 112949842A CN 202110523774 A CN202110523774 A CN 202110523774A CN 112949842 A CN112949842 A CN 112949842A
- Authority
- CN
- China
- Prior art keywords
- search
- model
- network
- network model
- neural network
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种神经网络结构搜索方法、装置、计算机设备以及存储介质,其中,该方法包括:获取用于执行神经网络模型的搜索任务的模型搜索空间;所述模型搜索空间中包含多个具有连接关系的网络模块;确定与所述搜索任务相匹配的多个搜索维度的搜索范围;基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务中所指示的计算资源约束条件的网络模块;基于搜索到的网络模块之间的连接关系和搜索到的网络模块确定子网络模型,并基于子网络模型确定目标神经网络模型;目标神经网络模型用于执行待处理图像的图像处理任务。
Description
技术领域
本公开涉及人工智能技术领域,具体而言,涉及一种神经网络结构搜索方法、装置、计算机设备以及存储介质。
背景技术
随着人工智能技术和智能终端设备的快速发展,在智能终端设备中越来越多的应用程序开始部署神经网络模型。为了提高神经网络模型在各个应用程序中的处理精度,相关技术人员在开发相关神经网络模型时,通过人为设计的方式设计更为复杂的神经网络模型来实现良好的检测结果,例如,该神经网络模型可以为姿态估计网络、图像处理模型、人脸识别模型等。然而,基于人工设计的方法,往往会通过高计算复杂度来提升姿态估计的精度,忽视了实际应用中的实时性需求。同时,该方法往往需要进行大量的人工尝试才可以得到对应的神经网络模型。大量的人工尝试操作降低了神经网络模型的确定效率、延长了神经网络模型的确定时间、极大的增加了人工成本。
发明内容
本公开实施例至少提供一种神经网络结构搜索方法、装置、计算机设备以及存储介质。
第一方面,本公开实施例提供了一种神经网络结构搜索方法,包括:获取用于执行神经网络模型的搜索任务的模型搜索空间;所述模型搜索空间中包含多个具有连接关系的网络模块;确定与所述搜索任务相匹配的多个搜索维度的搜索范围;基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务所指示的计算资源约束条件的网络模块;基于搜索到的网络模块之间的连接关系和搜索到的网络模块确定子网络模型,并基于所述子网络模型确定目标神经网络模型;所述目标神经网络模型用于执行待处理图像的图像处理任务。
在本公开实施例中,通过多个搜索维度的搜索范围,在模型搜索空间中搜索满足计算资源约束条件的子网络模型,进而根据满足计算资源约束条件的子网络模型确定目标神经网络模型,可以实现对模型搜索空间进行多维度搜索,从而自动的搜索得到适应当前搜索任务的轻量级的子网络模型。通过上述所描述的确定目标神经网络模型的方式,可以在保证神经网络处理精度的基础上,减小神经网络模型的结构,降低神经网络模型的计算复杂度,从而提升神经网络模型的图像处理速度,从而满足实时性要求较高的应用场景。
同时,相对于现有技术中基于人工设计的方法确定神经网络模型的方式,采用通过多个搜索维度的搜索范围,在模型搜索空间中搜索满足计算资源约束条件的子网络模型的方式,还可以简化神经网络模型的开发方式,提高神经网络模型的开发效率,降低神经网络模型的开发成本。
一种可选的实施方式中,所述基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务所指示的计算资源约束条件的网络模块,包括:基于至少部分搜索维度分别对应的至少一个搜索范围,确定目标搜索范围;基于确定出的目标搜索范围对每个网络模块进行搜索,搜索得到满足所述计算资源约束条件的多个网络模块。
上述实施方式中,通过设置多个搜索维度,进而根据多个搜索维度在模型搜索空间搜索满足计算资源约束条件的轻量级的子网络模型作为目标神经网络模型,可以在保证神经网络模型的处理精度的基础上,提高该神经网络模型的处理效率,从而满足实时性要求较高的应用场景;同时,通过为至少部分搜索维度确定目标搜索范围,可以快速的在模型搜索空间中定位出与搜索任务相匹配的网络模块,从而能够进一步提高神经网络模型的搜索效率。
一种可选的实施方式中,所述基于所述子网络模型确定所述目标神经网络模型,包括:通过每个子网络模型对预设测试集进行处理,得到测试结果;其中,所述测试结果用于表征对应子网络模型的预测准确度;在所述测试结果中确定目标测试结果所对应的子网络模型为所述目标神经网络模型,其中,所述目标测试结果为测试结果中满足测试条件的测试结果。
上述实施方式中,通过预设测试集对筛选出的满足计算资源约束条件的多个子网络模型进行测试的方式,可以得到处理精度最优的子网络模型,从而可以在保证神经网络模型的处理精度的同时,选择出满足实时性要求较高的应用程序的神经网络模型。
一种可选的实施方式中,所述方法还包括:在所述子网络模型的测试结果中未确定出所述目标测试结果的情况下,更新每个所述搜索维度对应的目标搜索范围;根据更新之后的目标搜索范围对每个网络模块进行搜索,直至在搜索到满足所述计算资源约束条件的多个子网络模型的测试结果中确定出目标测试结果的情况下,基于该目标测试结果所对应的子网络模型确定所述目标神经网络模型。
上述实施方式中,通过更新每个搜索维度的目标搜索范围,可以缩小模型搜索空间中神经网络模型的搜索范围,从而能够快速并高效的从模型搜索空间中搜索到满足计算资源约束条件且预测精度较高的轻量级的子网络模型。
一种可选的实施方式中,所述多个搜索维度包括以下至少之一:模型结构参数、卷积层参数、注意力模块参数;所述模型结构参数用于表征执行所述搜索任务的网络模块的模块数量;所述卷积层参数用于表征以下至少之一:执行所述搜索任务的网络模块输出特征的通道数量、执行所述搜索任务的卷积层的卷积核大小、执行所述搜索任务的卷积层的分组数量;所述注意力模块参数用于指示是否使用每个网络模块中预先设置的注意力模块。
一种可选的实施方式中,所述多个搜索维度包括所述模型结构参数,所述模型结构参数包括:模型深度参数;和/或,所述多个搜索维度包括所述卷积层参数,所述卷积层参数包括以下至少之一:卷积层通道数、卷积核大小参数、卷积层分组参数。
上述实施例中,通过设置模型结构参数、卷积层参数、注意力模块参数,可以在模型搜索空间中扩大神经网络模型的搜索空间,从而搜索出处理精度满足要求的轻量级神经网络模型。
一种可选的实施方式中,所述获取用于执行神经网络模型的搜索任务的模型搜索空间,包括:按照所述搜索任务在预先训练的超网络中获取所述模型搜索空间,其中,所述超网络为预先设定的包含多个网络模块的神经网络模型。
一种可选的实施方式中,通过以下步骤训练待训练的超网络:获取训练样本集,其中,所述训练样本集中包含多个训练样本;在所述待训练的超网络中为每个训练样本抽取至少一个子网络模型;基于所述训练样本集中的多个训练样本对抽取到的所述至少一个子网络模型进行训练,训练之后得到所述超网络。
上述实施方式中,通过随机抽取至少一个子网络模型,并对抽取到的每个子网络模型进行训练的方式,通过对超网络的一次训练过程就可以得到满足不同计算资源约束条件的子网络模型,从而使得超网络能够适应更为广泛的应用场景,从而减少了网络结构搜索的开销。
一种可选的实施方式中,所述每个训练样本中的样本标签为所述至少一个子网络模型中结构最大的子网络模型对该训练样本的预测结果。
上述实施方式中,通过结构最大的子网络模型对该训练样本的预测结果作为其他子网络模型的训练标签,以对其他子网络模型进行监督训练的方式,可以使得抽取到的每个子网络模型都具有较高的预测精度,从而能够实现在保证神经网络模型的预测精度的基础上,选择出能够满足实时性要求的轻量级神经网络模型来对图像进行处理。
一种可选的实施方式中,所述方法还包括:在搜索到所述目标神经网络模型的情况下,获取待处理图像;通过所述目标神经网络模型确定所述待处理图像中所包含的每个目标对象的姿态估计结果。
上述实施方式中,目标神经网络模型的预测精度能够接近超网络中最大结构的子网络模型的预测精度;且搜索出的目标神经网络模型为能够满足计算资源约束条件的轻量级子网络模型。此时,在根据该目标神经网络模型进行姿态估计时,可以满足实时性要求较高的应用场景,同时还可以保证目标神经网络的预测精度。
第二方面,本公开实施例还提供一种神经网络结构搜索装置,包括:获取单元,用于获取用于执行神经网络模型的搜索任务的模型搜索空间;所述模型搜索空间中包含多个具有连接关系的网络模块;第一确定单元,用于确定与所述搜索任务相匹配的多个搜索维度的搜索范围;搜索单元,用于基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务中所指示的计算资源约束条件的网络模块;第二确定单元,用于基于所述搜索到的网络模块之间的连接关系和所述搜索到的网络模块确定子网络模型,并基于所述子网络模型确定目标神经网络模型;所述目标神经网络模型用于执行待处理图像的图像处理任务。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种神经网络结构搜索方法的流程图;
图2示出了本公开实施例所提供的一种可选的基于模型深度参数进行模型搜索的展示示意图;
图3示出了本公开实施例所提供的一种可选的基于卷积层通道数进行模型搜索的展示示意图;
图4示出了本公开实施例所提供的一种可选的基于卷积核大小参数进行模型搜索的展示示意图;
图5示出了本公开实施例所提供的一种可选的基于卷积层分组数量参数进行模型搜索的展示示意图;
图6示出了本公开实施例所提供的一种可选的基于注意力模块参数进行模型搜索的展示示意图;
图7示出了本公开实施例所提供的一种神经网络结构搜索装置的结构示意图;
图8示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,为了提高神经网络模型在各个应用程序中的处理精度,相关技术人员在开发相关神经网络模型时,通过人为设计的方式设计更为复杂的神经网络模型来实现良好的检测结果,例如,该神经网络模型可以为姿态估计网络、图像处理模型、人脸识别模型等。然而,基于人工设计的方法,往往需要进行大量的人工尝试才可以得到对应的神经网络模型。大量的人工尝试操作降低了神经网络模型的确定效率、延长了神经网络模型的确定时间、极大的增加了人工成本。
基于上述研究,本公开提供了一种神经网络结构搜索方法、装置、计算机设备以及存储介质。在本公开实施例中,首先,获取用于执行神经网络模型的搜索任务的模型搜索空间,进而确定与该搜索任务相匹配的多个搜索维度的搜索范围,之后,基于各个搜索维度的搜索范围对模型搜索空间中的每个网络模块进行搜索,在模型搜索空间中搜索满足搜索任务中所指示的计算资源约束条件的网络模块;进而基于搜索到的网络模块和该搜索到的网络模块之间的连接关系确定子网络模型,并基于子网络模型确定目标神经网络模型,以根据目标神经网络模型对待处理图像进行图像处理。
通过上述描述可知,本公开所提供的技术方案可以在模型搜索空间中自动的搜索出与搜索任务相匹配的轻量级神经网络模型(即,目标神经网络模型),相比于现有的神经网络模型的开发方式,本公开所提供的技术方案可以简化神经网络模型的开发方式,提高神经网络模型的开发效率,缩短神经网络模型的开发时间,降低神经网络模型的开发成本。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种神经网络结构搜索方法进行详细介绍,本公开实施例所提供的神经网络结构搜索方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该神经网络结构搜索方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的一种神经网络结构搜索方法的流程图,所述方法包括步骤S102~S106,其中:
S102:获取用于执行神经网络模型的搜索任务的模型搜索空间;所述模型搜索空间中包含多个依次连接的网络模块。
在本公开实施例中,搜索任务中可以包含以下至少一种任务参数:待搜索的神经网络模型的类型、待搜索的神经网络模型的数量、神经网络模型的计算资源约束条件等参数。
S104:确定与所述搜索任务相匹配的多个搜索维度的搜索范围。
在本公开实施例中,多个搜索维度用于表征待搜索的神经网络模型的模型结构。针对每个搜索维度,预先设定了一个或多个搜索范围,本公开对搜索范围的数量不作具体限定,可以根据实际需要来进行设定。
S106:基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务所指示的计算资源约束条件的网络模块。
这里,如果搜索到的网络模型的数量为多个,那么可以理解为搜索到的每个网络模型均满足计算资源约束条件,和/或,可以理解为搜索到的全部网络模块整体满足计算资源约束条件。
针对S106,第一种可能的实施方式为:在不改变模型搜索空间中预先设定的网络模块的结构的前提下,在模型搜索空间中搜索出满足计算资源约束条件的网络模块。
针对S106,第二种可能的实施方式为:通过对模型搜索空间中预先设定的网络模块的结构进行修剪(或者剪枝处理),从而实现在模型搜索空间中搜索出满足计算资源约束条件的网络模型。其中,对网络模块的结构进行修剪依据为上述多个搜索维度的搜索范围。
除此之外,还可以结合上述所描述的第一种和第二种可能的实施方式搜索满足计算资源约束条件的网络模块。
S108:基于搜索到的网络模块之间的连接关系和搜索到的网络模块确定子网络模型,并基于所述子网络模型确定目标神经网络模型;所述目标神经网络模型用于执行待处理图像的图像处理任务。
这里,子网络模型为基于模型搜索空间确定出的一个规模更小的轻量级神经网络模型;子网络模型还可以理解为包含在模型搜索空间中的一个规模更小的网络模型。
在确定子网络模型时,可以在模型搜索空间中确定搜索到的网络模块之间的连接关系;进而,按照该连接关系对搜索到的网络模块进行连接处理,得到子网络模型。
针对上述S106中所描述的第一种可能的实施方式,假设,模型搜索空间中包含串联连接的:网络模块1、网络模块2、网络模块3和网络模块4;假设,对该模型搜索空间进行搜索之后,得到满足计算资源约束条件的网络模块为:网络模块1、网络模块2和网络模块4。此时,可以确定网络模块1、网络模块2和网络模块4之间的连接关系;由于跳过了模型搜索空间中的网络模块3,因此,网络模块1、网络模块2和网络模块4之间的连接关系为依次串联连接的关系。
针对上述S106中所描述的第二种可能的实施方式,假设,模型搜索空间中包含串联连接的:网络模块1、网络模块2、网络模块3和网络模块4;假设,对该模型搜索空间进行搜索之后,得到满足计算资源约束条件的网络模块为:网络模块1’、网络模块2’、网络模块3’和网络模块4’,其中,网络模块1’为对网络模块1进行剪枝处理之后得到的模块,网络模块2’为对网络模块2进行剪枝处理之后得到的模块,网络模块3’为对网络模块3进行剪枝处理之后得到的模块,网络模块4’为对网络模块4进行剪枝处理之后得到的模块。此时,可以按照网络模块1、网络模块2、网络模块3和网络模块4之间的连接关系,将网络模块1’、网络模块2’、网络模块3’和网络模块4’进行连接,得到子网络模型。
针对上述S106中所描述的第一种和第二种相结合的实施方式,假设,模型搜索空间中包含串联连接的:网络模块1、网络模块2、网络模块3和网络模块4;假设,对该模型搜索空间进行搜索之后,得到满足计算资源约束条件的网络模块为:网络模块1’、网络模块2’和网络模块4,其中,网络模块1’为对网络模块1进行剪枝处理之后得到的模块,网络模块2’为对网络模块2进行剪枝处理之后得到的模块。此时,由于跳过了模型搜索空间中的网络模块3,可以按照网络模块1、网络模块2和网络模块4之间的连接关系,将网络模块1’、网络模块2’和网络模块4进行连接,得到子网络模型。
在本公开实施例中,通过多个搜索维度的搜索范围,在模型搜索空间中搜索满足计算资源约束条件的子网络模型,进而根据满足计算资源约束条件的子网络模型确定目标神经网络模型,可以实现对模型搜索空间进行多维度搜索,从而自动的搜索得到适应当前搜索任务的轻量级的子网络模型。通过上述所描述的确定目标神经网络模型的方式,可以在保证神经网络处理精度的基础上,减小神经网络模型的结构,降低神经网络模型的计算复杂度,从而提升神经网络模型的图像处理速度,从而满足实时性要求较高的应用场景。
同时,相对于现有技术中基于人工设计的方法确定神经网络模型的方式,采用通过多个搜索维度的搜索范围,在模型搜索空间中搜索满足计算资源约束条件的子网络模型的方式,还可以简化神经网络模型的开发方式,提高神经网络模型的开发效率,降低神经网络模型的开发成本。
在本公开实施例中,在执行步骤S102之前,用户可以通过计算机设备输入上述所介绍的任务参数,计算机设备在获取到该任务参数之后,自动生成相应的搜索任务;之后执行步骤S102:获取用于执行神经网络模型的搜索任务的模型搜索空间。
在一个可选的实施方式中,可以按照搜索任务在预先训练的超网络中获取模型搜索空间。
这里,超网络可以为预先设定的包含多个网络模块的神经网络模型;或者说超网络可以理解为一个大型神经网络,在该大型神经网络中包含多个网络模块,每个网络模块中包含至少一个网络层。
例如,超网络可以选择为ResNet网络。除此之外,超网络还可以选择为其他的网络模型,本公开不作具体限定。
模型搜索空间可以包含超网络中的全部网络模块,还可以包含超网络中的部分网络模块。在本公开实施例中,对模型搜索空间中所包含的网络模块的数量和/或种类不作具体限定,要求模型搜索空间中所包含的网络模块能够满足上述搜索任务。
在本公开实施例中,上述超网络可以为预先构建且未部署在应用程序中的神经网络模型;上述超网络还可以为预先部署在应用程序中的规模较大的神经网络模型。
在超网络为部署在应用程序中的大规模神经网络模型的情况下,本公开技术方案的一种应用场景为:为了在不改变神经网络模型的处理精度的情况下,得到轻量级的神经网络模型,可以采用本公开所提供的神经网络结构搜索方法,在该规模较大的神经网络模型中进行搜索,得到满足计算资源约束条件且满足预设精度要求的轻量级的神经网络模型,从而实现对该规模较大的神经网络模型的结构进行压缩。压缩之后可以在不改变处理精度的前提下,提高该神经网络模型的处理效率,缩短处理时间,从而满足实时性要求较高的应用场景。
按照上述描述可知,模型搜索空间可以包含超网络中的全部网络模块,还可以包含超网络中的部分网络模块。在本公开实施例中,可以通过以下方式确定模型搜索空间。
方式一:按表确定。
这里,可以预先设定一个数据表1,在该数据表1中包含各种情况下的任务参数和指定模型搜索空间之间的映射关系。该数据表1中的映射关系可以为相关技术人员按照经验创建的映射关系,本公开对该数据表1的创建过程不作具体限定。
在确定模型搜索空间时,可以在数据表1中查找与搜索任务相匹配的指定模型搜索空间作为用于执行上述搜索任务的模型搜索空间。
可以理解的是,在根据数据表1查找到与该搜索任务相匹配的指定模型搜索空间之后,相关技术人员还可以根据实际任务需求对搜索到的指定模型搜索空间进行调整,本公开对调整过程不作具体限定。
方式二:按历史数据确定。
这里,历史数据可以理解为:历史搜索任务,以及用于执行该历史搜索任务的模型搜索空间。
具体地,可以在历史搜索任务中查找与当前待执行的搜索任务相似(或者相近,或者相同)的历史搜索任务,进而,将该历史搜索任务所对应的模型搜索空间确定为当前待执行的搜索任务的模型搜索空间。
上述实施方式中,为了满足各种搜索任务,一般情况下,超网络的结构较为复杂,然而,当搜索任务的任务需求相对于较为简单时,在大型的神经网络模型中进行搜索也会浪费一定的时间,基于此,为了进一步提高神经网络模型的搜索效率,可以按照上述方式一和方式二所描述的方式确定搜索任务所对应的模型搜索空间,进而在模型搜索空间中进行神经网络模型的搜索。通过该处理方式,可以在搜索到符合该搜索任务的神经网络模型的情况下,进一步加快模型的搜索速度,提高模型搜索效率。
针对上述步骤S104,在确定与搜索任务相匹配的多个搜索维度的搜索范围时,可以通过以下方式来进行确定,具体包括:
方式一、具体过程描述如下:
这里,预先创建一个数据表2,其中,在数据表2中包含各种情况下的任务参数和搜索范围之间的映射关系。用户在输入任务参数之后,可以根据该任务参数在该数据表2中查找对应的搜索维度的搜索范围;进而,将查找到的搜索范围确定为与该搜索任务相匹配的多个搜索维度的搜索范围。
方式二、具体过程描述如下:
在历史搜索任务中查找与当前待执行的搜索任务相似(或者相近,或者相同)的历史搜索任务,进而,将该历史搜索任务所对应的搜索范围确定为当前待执行的搜索任务的搜索范围。
在一个可选的实施方式中,上述所描述的多个搜索维度可以包括以下至少之一:模型结构参数、卷积层参数、注意力模块参数。下面将分别对上述参数进行介绍。
参数一:模型结构参数。
模型结构参数用于表征执行搜索任务的网络模块的模块数量。
这里,模型结构参数可以包含:模型深度参数,其中,模型深度参数用于表征执行搜索任务网络模块的模块数量;下面结合图2对模型深度参数进行介绍。
如图2所示的为一种可选的基于模型深度参数进行模型搜索的展示示意图。
通过上述描述可知,在模型搜索空间中包含多个串联连接的网络模块。如图2所示的任意一个网络中基于模型深度参数进行模型搜索的展示示意图。从图2中可以看出,在该网络中包含网络模块1(block1)、网络模块2(block2)、网络模块3(block3)和网络模块4(block4),以及输出层。
从图2中可以看出,当模型深度参数=2时,表示通过网络模块1(block1)和网络模块2(block2)对输入数据进行数据,并跳过网络模块3(block3)和网络模块4(block4),直接将网络模块2处理之后的数据输入至输出层。
当模型深度参数=3时,表示通过网络模块1(block1)至网络模块3(block3)对输入数据进行数据,并跳过网络模块4(block4),直接将网络模块3处理之后的数据输入至输出层。
当模型深度参数=4时,表示通过网络模块1(block1)至网络模块4(block4)对输入数据进行数据,并将网络模块4处理之后的数据输入至输出层。
通过上述描述可知,本公开所提供的技术方案可以根据模型深度参数在模型搜索空间中搜索指定数量的网络模块进行处理。比如,搜索前N个网络模块对输入数据进行处理,对于该网络模块中的其他网络模块,则不对该输入数据进行任何的数据处理,也即,直接跳过该其他网络模块。
参数二:卷积层参数。
卷积层参数用于表征以下至少之一:执行所述搜索任务网络模块输出特征的通道数量、执行所述搜索任务卷积层的卷积核大小、执行所述搜索任务卷积层的分组数量。
针对上述所描述卷积层参数,卷积层参数可以包含以下至少之一:卷积层通道数、卷积核大小参数、卷积层分组数量参数。
如图3所示的任意一个网络模块中基于卷积层通道数进行模型搜索的展示示意图。从图3中可以看出,在未设置卷积层通道数的情况下,3通道的输入数据经过大小为I*O*K*K的卷积核进行计算之后,可以得到4通道的输出数据,其中,I=3,O=4,K=3。
从图3中可以看出,在设置了卷积层通道数之后,就可以在网络模块所输出数据的全部特征通道中选择指定数量的特征通道,从而减少输入数据的宽度,以实现减少神经网络模型的计算量,比如,选择输出数据中的前N个特征通道的数据作为该网络模型的输出数据。
例如,卷积层通道数=2,此时,如图3所示,可以在4特征通道的特征数据中选择前2个特征通道的数据作为该网络模型的输出数据。
在本公开实施例中,卷积核大小参数用于表征执行搜索任务卷积层的卷积核大小。
如图4所示的一种可选的基于卷积核大小参数进行模型搜索的展示示意图。在多个网络模块的卷积层中,初始卷积核的大小可以为4*4,在设定该卷积核大小参数之后,可以按照卷积核大小参数在该初始卷积核中选择2*2大小的卷积核作为该卷积层的卷积核。
在本公开实施例中,如图4所示,可以在初始卷积核的中间位置选择2*2大小的卷积核。除此之外,还可以在初始卷积核中的选择其他大小的卷积核,本公开对此不作具体限定。
按照上述所描述方式,本公开技术方案可以实现在最大的初始卷积核中保留K*K大小的卷积核来实现卷积核大小的改变,其中,K为卷积核的尺寸。
在本公开实施例中,卷积层分组数量参数用于表征执行搜索任务卷积层的分组数量。这里,卷积层分组是指将输入数据拆分为多组子数据,进而,对每组子数据分别进行卷积计算。
如图5中“分组前”所示的卷积计算可知,输入数据为4通道的特征数据,输出数据为2通道的特征数据,此时,要求卷积核的数量为2个,且每个卷积核的大小为4*K*K。
也就是说,假设,输入数据的通道数量为Cin,输出数据的通道数量为Cout,此时,卷积核的数量为Cout个,且每个卷积核大小为Cin*K*K,此时卷积层中卷积核的大小为:Cout*Cin*K*K。
基于此,假设,如图5中“分组后”所示,卷积层分组数量参数=2,表示将输入数据拆分成2组子数据,每组子数据为2通道的特征数据,相应的每组子数据所对应的输出数据为1通道的特征数据。针对2通道的子数据,所对应的卷积核的大小为1*2*K*K(或者,(Cout/2)*(Cin/2) *K*K)。
上述实施方式中,通过对卷积层进行分组,可以减少卷积计算的参数量,从而简化神经网络模型的计算流程,加快神经网络模型的计算效率。
参数三:注意力模块参数。
这里,注意力模块参数用于指示是否使用每个网络模块中预先设置的注意力模块。
在本公开实施例中,可以通过注意力模块参数确定针对每个网络中的每个网络模块是否需要设置注意力模块。如图6所示,当需要使用注意力模块时,每个网络模块的输出数据经过相应的注意力模块之后,输入至下一个网络模块进行处理;当不需要使用注意力模块,直接跳过该注意力模块。
上述实施例中,通过设置模型结构参数、卷积层参数、注意力模块参数,可以在模型搜索空间中扩大神经网络模型的搜索空间,从而搜索出处理精度满足要求的轻量级神经网络模型。
在一个可选的实施方式中,上述步骤106:基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务所指示的计算资源约束条件的网络模块,包括如下步骤:
步骤1061,基于至少部分搜索维度分别对应的搜索范围中确定,目标搜索范围;
步骤1062,基于确定出的目标搜索范围对每个网络模块进行搜索,搜索得到满足所述计算资源约束条件的多个网络模块。
在本公开实施例中,可以预先设置多个搜索维度,针对当前时刻的搜索任务,可以在预先设置的多个搜索维度中确定部分或者全部搜索维度。
在确定出用于执行搜索任务的搜索维度之后,可以根据计算资源约束条件,确定每个搜索维度对应的搜索范围,得到目标搜索范围,其中,该目标搜索范围中包含每个搜索维度所对应的一个或多个搜索范围。
在确定出目标搜索范围之后,就可以基于确定出的目标搜索范围在模型搜索空间中进行搜索,得到满足计算资源约束条件的多个网络模块。
在本公开实施例中,可以通过以下方式设置计算资源约束条件:
这里,可以模拟待搜索的神经网络模型的部署环境,为待搜索的神经网络模型设置任意计算资源约束条件,例如:网络中的浮点运算数(FLOPs),网络的运算时间(FPS),网络的参数量(Parameters)等。其中,浮点运算数(FLOPs)用于衡量网络的计算复杂度。
在设置上述计算资源约束条件之后,就可以根据该计算资源约束条件在模型搜索空间中进行搜索,从而得到符合该计算资源约束条件的多个网络模块。
在搜索到符合该计算资源约束条件的多个网络模块之后,就可以根据搜索到的网络模块及其对应的连接关系确定至少一个子网络模型。进而,在搜索到的至少一个子网络模型中确定处理精度满足预设精度要求的子网络模型作为目标神经网络模型,例如,可以在多个子网络模型中选择处理精度最高的子网络模型作为目标神经网络模型。
在一个可选的实施方式中,上述步骤108,基于所述子网络模型确定所述目标神经网络模型,包括如下过程:
(1)、通过子网络模型对预设测试集进行处理,得到测试结果;其中,所述测试结果用于表征对应子网络模型的预测准确度;
(2)、在所述测试结果中确定目标测试结果所对应的子网络模型为所述目标神经网络模型,其中,所述目标测试结果为测试结果中满足测试条件的测试结果。
在本公开实施例中,在搜索出满足计算资源约束条件的多个网络模块之后,可以基于搜索到的多个网络模块确定至少一个子网络模型,并在至少一个子网络模型中确定目标神经网络模型。
具体地,可以获取预测测试集,然后,模拟待搜索的神经网络模型的部署环境,为以通过每个子网络模型对预设测试集中的每个测试样本进行处理,得到相应的测试结果,其中,每个子网络模型对应一个测试结果。
在至少一个测试结果中确定满足测试条件的目标测试结果可以包含以下几种实现方式:
实现方式一:
这里,可以在多个测试结果中选择最优测试结果所对应的子网络模型作为该目标神经网络模型。
实现方式二:
这里,可以在多个测试结果中选择大于预设测试阈值的测试结果;然后,确定所选择出的测试结果所对应的子网络模型,并确定各个子网络模型的模型结构的复杂度。然后,为复杂度和测试结果设置对应的权重值,并对复杂度和测试结果进行加权求和,从而根据加权求和结果确定目标神经网络模型,例如,可以将最大加权求和结果所对应的子网络模型确定为目标神经网络模型。
这里,可以根据待搜索的神经网络模型的类型确定预设测试集。比如,神经网络模型的类型为姿态估计模型,则预设测试集可以选择为能够进行姿态估计的测试集。
上述实施方式中,通过预设测试集对筛选出的满足计算资源约束条件的多个子网络模型进行测试的方式,可以得到处理精度最优的子网络模型,从而可以在保证神经网络模型的处理精度的同时,选择出满足实时性要求较高的实际应用的神经网络模型。
在本公开实施例中,在上述搜索到的多个子网络模型的测试结果中未确定出目标测试结果的情况下,可以基于上述确定的计算资源约束条件,更新每个搜索维度所对应的目标搜索范围。之后根据更新之后的目标搜索范围对每个网络模块进行搜索,直至在搜索到满足计算资源约束条件的多个子网络模型的测试结果中确定出目标测试结果的情况下,基于该目标测试结果所对应的子网络模型确定所述目标神经网络模型。
在更新目标搜索范围之后,可以基于更新之后的目标搜索范围进行搜索得到给定计算资源约束条件下的多个子网络模型。
这里,更新之后目标搜索范围可以是相对当前时刻的目标搜索范围,能够大概率获取到满足预设精度要求的子网络模型的更小的搜索范围,其中,满足预设精度要求可以理解为根据更新之后目标搜索范围搜索到的子网络模型的测试结果大于或者等于预设测试阈值。
在一个可选的实施方式中,更新每个搜索维度所对应的目标搜索范围的具体更新过程可以描述为:根据当前时刻搜索到的多个子网络模型的测试结果,缩小当前时刻每个搜索维度所对应的目标搜索范围,从而得到更新之后的目标搜索范围。
针对搜索到的每个子网络模型,可以采用上述所描述的方式对每个子网络模型进行测试,得到多个测试结果。在多个测试结果满足预设精度要求的情况下,例如,多个测试结果中包含大于预设测试阈值的目标测试结果,则根据该目标测试结果所对应的子网络模型确定目标神经网络模型。
在现有的神经网络模型的开发方式中,为了提高神经网络模型的处理精度,此时,将提高该神经网络模型的计算复杂度,从而增加数据处理的时间。针对实时性要求较高的应用来说,现有的神经网络模型的开发方式无法满足实时性要求较高的应用场景。在本公开实施例中,通过预先给定的计算资源约束条件设置上述搜索维度,进而根据搜索维度在模型搜索空间搜索相应的子网络模型作为目标神经网络模型的方式,可以在保证神经网络模型的处理精度的基础上,提高该神经网络模型的处理效率,从而满足实时性要求较高的应用场景。该应用场景可以为与短视频相关的互娱项目,比如,与人体姿态相关的互娱项目。
上述实施方式中,通过更新每个搜索维度的目标搜索范围,可以缩小模型搜索空间中神经网络模型的搜索范围,从而能够快速并高效的从模型搜索空间中搜索到满足计算资源约束条件且预测精度较高的轻量级的子网络模型。
在本公开实施例中,在根据预先训练的超网络确定用于执行神经网络模型的搜索任务的模型搜索空间之前,还需要对待训练的超网络进行训练,具体训练过程描述如下:
(1)、获取训练样本集,其中,所述训练样本集中包含多个训练样本;
(2)、在所述待训练的超网络中为每个训练样本抽取至少一个子网络模型;
(3)、基于所述训练样本集中的多个训练样本对抽取到的所述至少一个子网络模型进行训练,训练之后得到所述超网络。
在本公开实施例中,可以根据待搜索的神经网络模型的类型确定训练样本集。比如,神经网络模型的类型为姿态估计模型,则训练样本集可以选择为能够进行姿态估计的样本集。
针对训练样本集中的每个训练样本,根据上述所描述的多个搜索维度,在超网络中抽取了N个子网络模型,分别为:待训练的超网络中结构最大的子网络模型,待训练的超网络中结构最小的子网络模型,以及N-2个随机抽取的子网络模型。
接下来,就可以基于训练样本集对抽取到的N个子网络模型进行训练,得到训练之后的超网络模型。
在本公开实施例中,每个训练样本所对应的样本标签为所述至少一个子网络模型中结构最大的子网络模型对该训练样本的预测结果。
这里,在通过每个训练样本对抽取到的每个子网络模型进行训练时,可以使用结构最大的子网络模型对该训练样本的预测结果作为其他子网络模型的训练标签,以对其他子网络模型进行监督训练。
上述实施方式中,通过随机抽取至少一个子网络模型,并对抽取到的每个子网络模型进行训练的方式,可以实现通过对超网络的一次训练过程得到满足不同计算资源约束条件的子网络模型,从而使得该超网络能够适应更为广泛的应用场景,从而减少了网络结构搜索的开销。
进一步地,在上述实施方式中,通过结构最大的子网络模型对该训练样本的预测结果作为其他子网络模型的训练标签,以对其他子网络模型进行监督训练的方式,可以使得抽取到的每个子网络模型都具有较高的预测精度,从而能够实现在保证神经网络模型的预测精度的基础上,选择出能够满足实时性要求的轻量级神经网络模型来对图像进行处理。
在本公开实施例中,在按照上述所描述的方式确定出目标神经网络模型之后,就可以根据目标神经网络模型对待处理图像进行图像处理,具体包括:
在搜索到所述目标神经网络模型的情况下,获取待处理图像;通过所述目标神经网络模型确定所述待处理图像中所包含的每个目标对象的姿态估计结果。
在本公开实施例中,在对超网络进行训练过程中,由于采用通过结构最大的子网络模型对该训练样本的预测结果对其他子网络模型进行监督训练的训练方式,因此,训练之后得到的子网络模型的预测精度能够接近大规模网络模型的预测精度。
也即,上述目标神经网络模型的预测精度能够接近超网络中最大结构的子网络模型的预测精度;且搜索出的目标神经网络模型为能够满足计算资源约束条件的轻量级子网络模型。此时,在根据该目标神经网络模型进行姿态估计时,可以满足实时性要求较高的应用场景,同时还可以保证目标神经网络的预测精度。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与神经网络结构搜索方法对应的神经网络结构搜索装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述神经网络结构搜索方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图7所示,为本公开实施例提供的一种神经网络结构搜索装置的示意图,所述装置包括:获取单元71、第一确定单元72、搜索单元73、第二确定单元74;其中,
获取单元71,用于获取用于执行神经网络模型的搜索任务的模型搜索空间;所述模型搜索空间中包含多个具有连接关系的网络模块;
第一确定单元72,用于确定与所述搜索任务相匹配的多个搜索维度的搜索范围;
搜索单元73,用于基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务中所指示的计算资源约束条件的网络模块;
第二确定单元74,用于基于所述搜索到的网络模块之间的连接关系和所述搜索到的网络模块确定子网络模型,并基于所述子网络模型确定目标神经网络模型;所述目标神经网络模型用于执行待处理图像的图像处理任务。
在本公开实施例中,通过多个搜索维度的搜索范围,在模型搜索空间中搜索满足计算资源约束条件的子网络模型,进而根据满足计算资源约束条件的子网络模型确定目标神经网络模型,可以实现对模型搜索空间进行多维度搜索,从而自动的搜索得到适应当前搜索任务的轻量级的子网络模型。通过上述所描述的确定目标神经网络模型的方式,可以在保证神经网络处理精度的基础上,减小神经网络模型的结构,降低神经网络模型的计算复杂度,从而提升神经网络模型的图像处理速度,从而满足实时性要求较高的应用场景。同时,相对于现有技术中基于人工设计的方法确定神经网络模型的方式,采用通过多个搜索维度的搜索范围,在模型搜索空间中搜索满足计算资源约束条件的子网络模型的方式,还可以简化神经网络模型的开发方式,提高神经网络模型的开发效率,降低神经网络模型的开发成本。
一种可能的实施方式中,搜索单元73,还用于:基于至少部分搜索维度分别对应的至少一个搜索范围,确定目标搜索范围;基于确定出的目标搜索范围对每个网络模块进行搜索,搜索得到满足所述计算资源约束条件的多个网络模块。
一种可能的实施方式中,第二确定单元74,还用于:通过子网络模型对预设测试集进行处理,得到测试结果;其中,所述测试结果用于表征对应子网络模型的预测准确度;在所述测试结果中确定目标测试结果所对应的子网络模型为所述目标神经网络模型,其中,所述目标测试结果为测试结果中满足测试条件的测试结果。
一种可能的实施方式中,该装置还用于:在所述子网络模型的测试结果中未确定出所述目标测试结果的情况下,更新每个所述搜索维度对应的目标搜索范围;根据更新之后的目标搜索范围对每个网络模块进行搜索,直至在搜索到满足所述计算资源约束条件的多个子网络模型的测试结果中确定出目标测试结果的情况下,基于该目标测试结果所对应的子网络模型确定所述目标神经网络模型。
一种可能的实施方式中,所述多个搜索维度包括以下至少之一:模型结构参数、卷积层参数、注意力模块参数;所述模型结构参数用于表征执行所述搜索任务网络模块的模块数量;所述卷积层参数用于表征以下至少之一:执行所述搜索任务网络模块输出特征的通道数量、执行所述搜索任务卷积层的卷积核大小、执行所述搜索任务卷积层的分组数量;所述注意力模块参数用于指示是否使用每个网络模块中预先设置的注意力模块。
一种可能的实施方式中,所述多个搜索维度包括所述模型结构参数,所述模型结构参数包括:模型深度参数;和/或,所述多个搜索维度包括所述卷积层参数,所述卷积层参数包括以下至少之一:卷积层通道数、卷积核大小参数、卷积层分组参数。
一种可能的实施方式中,获取单元,还用于:按照所述搜索任务在预先训练的超网络中获取所述模型搜索空间,其中,所述超网络为预先设定的包含多个网络模块的神经网络模型。
一种可能的实施方式中,该装置,还用于:通过以下步骤训练待训练的超网络:获取训练样本集,其中,所述训练样本集中包含多个训练样本;在所述待训练的超网络中为每个训练样本抽取至少一个子网络模型;基于所述训练样本集中的多个训练样本对抽取到的所述至少一个子网络模型进行训练,训练之后得到所述超网络。
一种可能的实施方式中,所述每个训练样本所对应的样本标签为所述至少一个子网络模型中结构最大的子网络模型对该训练样本的预测结果。
一种可能的实施方式中,该装置,还用于:在搜索到所述目标神经网络模型的情况下,获取待处理图像;通过所述目标神经网络模型确定所述待处理图像中所包含的每个目标对象的姿态估计结果。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1中的神经网络结构搜索方法,本公开实施例还提供了一种计算机设备800,如图8所示,为本公开实施例提供的计算机设备800结构示意图,包括:
处理器81、存储器82、和总线83;存储器82用于存储执行指令,包括内存821和外部存储器822;这里的内存821也称内存储器,用于暂时存放处理器81中的运算数据,以及与硬盘等外部存储器822交换的数据,处理器81通过内存821与外部存储器822进行数据交换,当所述计算机设备800运行时,所述处理器81与所述存储器82之间通过总线83通信,使得所述处理器81执行以下指令:
获取用于执行神经网络模型的搜索任务的模型搜索空间;所述模型搜索空间中包含多个具有连接关系的网络模块;
确定与所述搜索任务相匹配的多个搜索维度的搜索范围;
基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务所指示的计算资源约束条件的网络模块;
基于搜索到的网络模块之间的连接关系和搜索到的网络模块确定子网络模型,并基于所述子网络模型确定目标神经网络模型;所述目标神经网络模型用于执行待处理图像的图像处理任务。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的神经网络结构搜索方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的神经网络结构搜索方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种神经网络结构搜索方法,其特征在于,包括:
获取用于执行神经网络模型的搜索任务的模型搜索空间;所述模型搜索空间中包含多个具有连接关系的网络模块;
确定与所述搜索任务相匹配的多个搜索维度的搜索范围;
基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务所指示的计算资源约束条件的网络模块;
基于所述搜索到的网络模块之间的连接关系和所述搜索到的网络模块确定子网络模型,并基于所述子网络模型确定目标神经网络模型;所述目标神经网络模型用于执行待处理图像的图像处理任务。
2.根据权利要求1所述的方法,其特征在于,所述基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务所指示的计算资源约束条件的网络模块,包括:
基于至少部分搜索维度分别对应的至少一个搜索范围,确定目标搜索范围;
基于确定出的目标搜索范围对每个网络模块进行搜索,搜索得到满足所述计算资源约束条件的多个网络模块。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述子网络模型确定所述目标神经网络模型,包括:
通过子网络模型对预设测试集进行处理,得到测试结果;其中,所述测试结果用于表征对应子网络模型的预测准确度;
在所述测试结果中确定目标测试结果所对应的子网络模型为所述目标神经网络模型,其中,所述目标测试结果为测试结果中满足测试条件的测试结果。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述子网络模型的测试结果中未确定出所述目标测试结果的情况下,更新每个所述搜索维度对应的目标搜索范围;
根据更新之后的目标搜索范围对每个网络模块进行搜索,直至在搜索到满足所述计算资源约束条件的多个子网络模型的测试结果中确定出目标测试结果的情况下,基于该目标测试结果所对应的子网络模型确定所述目标神经网络模型。
5.根据权利要求1所述的方法,其特征在于,所述多个搜索维度包括以下至少之一:模型结构参数、卷积层参数、注意力模块参数;
所述模型结构参数用于表征执行所述搜索任务的网络模块的模块数量;
所述卷积层参数用于表征以下至少之一:执行所述搜索任务的网络模块输出特征的通道数量、执行所述搜索任务的卷积层的卷积核大小、执行所述搜索任务的卷积层的分组数量;
所述注意力模块参数用于指示是否使用每个网络模块中预先设置的注意力模块。
6.根据权利要求5所述的方法,其特征在于,
所述多个搜索维度包括所述模型结构参数,所述模型结构参数包括:模型深度参数;
和/或,
所述多个搜索维度包括所述卷积层参数,所述卷积层参数包括以下至少之一:卷积层通道数、卷积核大小参数、卷积层分组参数。
7.根据权利要求1所述的方法,其特征在于,所述获取用于执行神经网络模型的搜索任务的模型搜索空间,包括:
按照所述搜索任务在预先训练的超网络中获取所述模型搜索空间,其中,所述超网络为预先设定的包含多个网络模块的神经网络模型。
8.根据权利要求7所述的方法,其特征在于,通过以下步骤训练待训练的超网络:
获取训练样本集,其中,所述训练样本集中包含多个训练样本;
在所述待训练的超网络中为每个训练样本抽取至少一个子网络模型;
基于所述训练样本集中的多个训练样本对抽取到的所述至少一个子网络模型进行训练,训练之后得到所述超网络。
9.根据权利要求8所述的方法,其特征在于,所述每个训练样本所对应的样本标签为所述至少一个子网络模型中结构最大的子网络模型对该训练样本的预测结果。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在搜索到所述目标神经网络模型的情况下,获取待处理图像;
通过所述目标神经网络模型确定所述待处理图像中所包含的每个目标对象的姿态估计结果。
11.一种神经网络结构搜索装置,其特征在于,包括:
获取单元,用于获取用于执行神经网络模型的搜索任务的模型搜索空间;所述模型搜索空间中包含多个具有连接关系的网络模块;
第一确定单元,用于确定与所述搜索任务相匹配的多个搜索维度的搜索范围;
搜索单元,用于基于各个搜索维度的搜索范围对所述模型搜索空间中的每个网络模块进行搜索,得到满足所述搜索任务中所指示的计算资源约束条件的网络模块;
第二确定单元,用于基于所述搜索到的网络模块之间的连接关系和所述搜索到的网络模块确定子网络模型,并基于所述子网络模型确定目标神经网络模型;所述目标神经网络模型用于执行待处理图像的图像处理任务。
12.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至10任一所述的神经网络结构搜索方法的步骤。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至10任一所述的神经网络结构搜索方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110523774.2A CN112949842B (zh) | 2021-05-13 | 2021-05-13 | 神经网络结构搜索方法、装置、计算机设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110523774.2A CN112949842B (zh) | 2021-05-13 | 2021-05-13 | 神经网络结构搜索方法、装置、计算机设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112949842A true CN112949842A (zh) | 2021-06-11 |
CN112949842B CN112949842B (zh) | 2021-09-14 |
Family
ID=76233839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110523774.2A Active CN112949842B (zh) | 2021-05-13 | 2021-05-13 | 神经网络结构搜索方法、装置、计算机设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112949842B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115049108A (zh) * | 2022-05-20 | 2022-09-13 | 支付宝(杭州)信息技术有限公司 | 多任务模型训练方法、多任务预测方法、相关装置及介质 |
WO2024012306A1 (zh) * | 2022-07-14 | 2024-01-18 | 北京字跳网络技术有限公司 | 神经网络模型结构确定方法、装置、设备、介质及产品 |
WO2024040941A1 (zh) * | 2022-08-25 | 2024-02-29 | 华为云计算技术有限公司 | 神经网络结构搜索方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190026639A1 (en) * | 2017-07-21 | 2019-01-24 | Google Llc | Neural architecture search for convolutional neural networks |
CN111340220A (zh) * | 2020-02-25 | 2020-06-26 | 北京百度网讯科技有限公司 | 用于训练预测模型的方法和装置 |
CN111488971A (zh) * | 2020-04-09 | 2020-08-04 | 北京百度网讯科技有限公司 | 神经网络模型搜索方法及装置、图像处理方法及装置 |
CN112445823A (zh) * | 2019-09-04 | 2021-03-05 | 华为技术有限公司 | 神经网络结构的搜索方法、图像处理方法和装置 |
CN112465120A (zh) * | 2020-12-08 | 2021-03-09 | 上海悠络客电子科技股份有限公司 | 一种基于进化方法的快速注意力神经网络架构搜索方法 |
CN112734005A (zh) * | 2020-12-31 | 2021-04-30 | 北京达佳互联信息技术有限公司 | 预测模型的确定方法、装置、电子设备及存储介质 |
-
2021
- 2021-05-13 CN CN202110523774.2A patent/CN112949842B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190026639A1 (en) * | 2017-07-21 | 2019-01-24 | Google Llc | Neural architecture search for convolutional neural networks |
CN112445823A (zh) * | 2019-09-04 | 2021-03-05 | 华为技术有限公司 | 神经网络结构的搜索方法、图像处理方法和装置 |
CN111340220A (zh) * | 2020-02-25 | 2020-06-26 | 北京百度网讯科技有限公司 | 用于训练预测模型的方法和装置 |
CN111488971A (zh) * | 2020-04-09 | 2020-08-04 | 北京百度网讯科技有限公司 | 神经网络模型搜索方法及装置、图像处理方法及装置 |
CN112465120A (zh) * | 2020-12-08 | 2021-03-09 | 上海悠络客电子科技股份有限公司 | 一种基于进化方法的快速注意力神经网络架构搜索方法 |
CN112734005A (zh) * | 2020-12-31 | 2021-04-30 | 北京达佳互联信息技术有限公司 | 预测模型的确定方法、装置、电子设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115049108A (zh) * | 2022-05-20 | 2022-09-13 | 支付宝(杭州)信息技术有限公司 | 多任务模型训练方法、多任务预测方法、相关装置及介质 |
WO2024012306A1 (zh) * | 2022-07-14 | 2024-01-18 | 北京字跳网络技术有限公司 | 神经网络模型结构确定方法、装置、设备、介质及产品 |
WO2024040941A1 (zh) * | 2022-08-25 | 2024-02-29 | 华为云计算技术有限公司 | 神经网络结构搜索方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112949842B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112949842B (zh) | 神经网络结构搜索方法、装置、计算机设备以及存储介质 | |
CN108334945B (zh) | 深度神经网络的加速与压缩方法及装置 | |
CN111160191B (zh) | 一种视频关键帧提取方法、装置及存储介质 | |
CN112949662B (zh) | 一种图像处理方法、装置、计算机设备以及存储介质 | |
CN112470171A (zh) | 选择用于有监督机器学习问题的神经网络架构 | |
CN112232889A (zh) | 一种用户兴趣画像扩展方法、装置、设备及存储介质 | |
WO2012177410A1 (en) | Descriptor storage and searches of k-dimensional trees | |
CN112381227B (zh) | 神经网络生成方法、装置、电子设备及存储介质 | |
CN113469353A (zh) | 神经网络模型的优化方法、数据处理方法及装置 | |
CN113361698A (zh) | 神经网络模型的处理方法和装置、数据处理方法和装置 | |
CN112434188A (zh) | 一种异构数据库的数据集成方法、装置及存储介质 | |
CN112699945A (zh) | 数据标注方法及装置、存储介质及电子装置 | |
CN112884868A (zh) | 三维网格顶点特征确定方法、骨骼蒙皮方法及相关装置 | |
Antioquia et al. | ZipNet: ZFNet-level accuracy with 48× fewer parameters | |
CN114049463A (zh) | 一种二叉树的数据网格化、网格点数据的获取方法及装置 | |
CN111277646A (zh) | 群智感知中基于关联关系和地理位置预测的任务分发算法 | |
CN112214677A (zh) | 一种兴趣点推荐方法、装置、电子设备及存储介质 | |
Minh et al. | A novel light-weight DCNN model for classifying plant diseases on internet of things edge devices | |
CN111353577B (zh) | 基于多任务的级联组合模型的优化方法、装置及终端设备 | |
CN113408571B (zh) | 一种基于模型蒸馏的图像分类方法、装置、存储介质及终端 | |
CN115526310A (zh) | 一种网络模型的量化方法、装置及设备 | |
CN115454466A (zh) | 机器学习模型自动更新的方法、装置、设备和介质 | |
CN114419738B (zh) | 一种姿态检测方法、装置、电子设备以及存储介质 | |
CN116266273A (zh) | 神经网络生成、图像处理的方法及装置、设备及存储介质 | |
CN110276448B (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 |