网络搜索方法及装置、电子设备、存储介质与流程

文档序号:33641141发布日期:2023-03-29 02:06阅读:32来源:国知局
1.本公开涉及网络搜索
技术领域
:,具体而言,涉及一种网络搜索方法及装置、电子设备以及计算机可读存储介质。
背景技术
::2.网络架构搜索可以在预先设计好的搜索空间上,通过有效的搜索策略和评估方法,选取性能较好的网络结构。3.相关技术中,搜索剪枝算法在最后的微调过程中,同时对超网络和子网络进行微调。上述方式中,并没有从根本上减少训练过程中子网络的干扰问题,具有一定的局限性,且导致准确性较低。4.需要说明的是,在上述
背景技术
:部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:5.本公开的目的在于提供一种网络搜索方法及装置、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的准确性较低的问题。6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。7.根据本公开的第一方面,提供一种网络搜索方法,包括:对超网络中进行训练获取中间网络,并基于核尺寸对所述中间网络进行训练,获取训练后的中间网络;通过确定学习率以及调整深度选择空间的自适应搜索模块,对所述训练后的中间网络进行深度搜索训练,获取深度网络;通过确定学习率以及调整宽度选择空间的自适应搜索模块,对所述深度网络进行宽度搜索训练,以进行网络搜索。8.根据本公开的第二方面,提供一种网络搜索装置,包括:训练模块,用于对超网络中进行训练获取中间网络,并基于核尺寸对所述中间网络进行训练,获取训练后的中间网络;深度搜索训练模块,用于通过确定学习率以及调整深度选择空间的自适应搜索模块,对所述训练后的中间网络进行深度搜索训练,获取深度网络;宽度搜索训练模块,用于通过确定学习率以及调整宽度选择空间的自适应搜索模块,对所述深度网络进行宽度搜索训练,以进行网络搜索。9.根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的网络搜索方法及其可能的实现方式。10.根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的网络搜索方法及其可能的实现方式。11.本公开实施例中提供的技术方案,一方面,结合学习率以及深度选择空间进行深度搜索训练,以及,结合学习率以及宽度选择空间进行宽度搜索训练,由于调整了深度选择空间和深度选择空间,因此调整了训练程度,改变了进行深度训练和宽度训练的训练步骤,使得训练过程能够更充分,避免了训练不够充分的局限性。另一方面,由于通过确定学习率以及调整深度选择空间和宽度选择空间的自适应搜索模块来改善训练过程,通过对深度选择空间以及对宽度选择空间的调整,以及对学习率的调整,增加了超网络的训练程度,从根本上提高了超网络中子网络的性能与真实性能的一致性,减小了子网络之间的相互干扰,也减小了超网络训练对子网络的干扰,提升了超网络训练的准确性和训练效果,进一步提高了网络搜索的准确性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明12.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。13.图1示出了可以应用本公开实施例的网络搜索方法及网络搜索装置的应用场景的示意图。14.图2示意性示出本公开实施例一种网络搜索方法的示意图。15.图3示意性示出本公开实施例中进行深度搜索训练的示意图。16.图4示意性示出本公开实施例的获取宽度搜索训练的示意图。17.图5示意性示出本公开实施例的搜索剪枝训练的示意图。18.图6示意性示出本公开实施例中超网络训练的整体流程示意图。19.图7示意性示出本公开实施例中一种网络搜索装置的框图。20.图8示意性示出本公开实施例中电子设备的框图。具体实施方式21.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。22.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。23.相关技术中,大型神经网络训练过程结束后,仍然不可避免地存在冗余部分,需要耗费大量的计算资源,对网络性能的提升很小,甚至可以忽略不计。神经网络的剪枝技术可以在保证网络性能的前提下,移除网络中需要大量计算资源的多余部分。24.剪枝问题核心的部分在于:应该对网络的什么部分进行剪枝;如何判断可以修剪的具体参数或结构;怎样可以尽量提高网络性能或不对网络性能造成影响。25.对于如何判断可以修剪的具体参数或结构,在最小精度损失的约束下得到最轻量级的网络的问题,一般根据不同的剪枝方法来设置相应的剪枝标准。非结构化剪枝过程中通常将权重的大小看做剪枝标准,绝对值越小的权重,对于网络的性能影响越小。另外,梯度幅度也是剪枝的衡量参数对网络性能影响的重要指标,反向传播的梯度度量可以一定程度上表现出参数对于网络整体性能的重要性。结构化剪枝更加灵活,判断方法也更加多样,较为常见的有基于l1范数、贪心策略、回归等方法来进行通道剪枝。这些方法在性能上依然存在许多局限性,如上文提到的对稀疏网络加速效果差、在剪枝过程中浅层网络的变化对深层网络进行影响从而导致剪枝效果差等问题。基于此,可通过基于网络架构搜索的搜索式剪枝方法来进行剪枝。26.网络架构搜索技术旨在根据一定的搜索条件和计算方法,找到符合标准的一个或一组最优网络。网络架构搜索通过强化学习、进化算法、微分算法、权值共享等方法,将整个网络视为一个整体,从中通过搜索训练,找到符合标准的最优网络架构。通过网络架构的搜索剪枝方法可以对网络的通道数和深度等参数进行搜索,在验证集上对采样架构进行精度评估,选取出符合条件的最优网络。27.相关技术中,对于渐进式搜索剪枝而言,在网络深度和宽度剪枝过程中,不同的子网络之间仍然不可避免地存在干扰。相关技术中为了减小干扰,仅仅在最后的微调过程中,加入了对子网络的微调,一定程度上改善了超网络和子网络的一致性,提升了子网络的性能,但并未从根本上减小训练中的子网络干扰问题,从而大幅度地降低超网络中的子网络表现与其真实性能的一致性,导致结果不准确。28.为了解决相关技术中的技术问题,本公开实施例中提供了一种网络搜索方法,可以应用于对超网络进行渐进式搜索剪枝的场景中。图1示出了可以应用本公开实施例的网络搜索方法及装置的系统架构的示意图。29.如图1所示,系统架构100可以包括终端110和服务器120。终端110可以为任何类型的能够部署模型并执行计算功能的设备,例如可以为计算机、智能手机、智能电视、平板电脑、智能可穿戴设备(如ar眼镜)、机器人、无人机等设备,只要能够执行网络搜索以及模型计算即可。服务器120可以对超网络进行训练,并基于训练后的超网络进行网络搜索,并且可以将网络搜索得到的网络结构发送至终端,以使终端基于网络结构对待处理对象进行处理。除此之外,终端也可以自行进行超网络训练以及网络搜索得到网络结构,从而使用得到的网络结构对待处理对象进行数据处理。30.具体地,服务器可以对整个超网络进行训练得到中间网络,基于核尺寸对中间网络进行训练得到训练后的中间网络。结合学习率以及深度选择空间在深度维度对训练后的中间网络进行深度搜索训练得到深度网络,进一步根据学习率以及宽度选择空间在宽度维度对深度网络进行宽度搜索训练,以基于渐进式搜索剪枝算法实现网络搜索功能。31.在一些实施例中,当终端110与服务器120不同时,可以从终端110获取待处理对象的数据并发送至服务器,在服务器中进行网络搜索得到网络结构,并通过服务器对待处理对象的数据进行处理,以得到处理结果。进一步地,可以将处理结果发送至终端110进行后续处理。32.需要说明的是,本公开实施例所提供的网络搜索方法可以由终端110或服务器120执行,具体根据网络部署的位置以及实际需求而限定。33.图2中示意性示出了本公开实施例中的网络搜索方法,具体包括以下步骤:34.步骤s210,对超网络进行训练获取中间网络,并基于核尺寸对所述中间网络进行训练,获取训练后的中间网络;35.步骤s220,通过确定学习率以及调整深度选择空间的自适应搜索模块,对所述训练后的中间网络进行深度搜索训练,获取深度网络;36.步骤s230,通过确定学习率以及调整宽度选择空间的自适应搜索模块,对所述深度网络进行宽度搜索训练,以进行网络搜索。37.本公开实施例中,在渐进式搜索剪枝过程中,可先对超网络使用最大参数进行训练,然后基于核尺寸进行搜索。进一步地,可通过添加自适应搜索模块对训练后的中间网络进行深度搜索训练,得到深度网络。自适应搜索模块可以用于确定进行训练的学习率,并且可以调整最后一段的深度选择空间。接下来,可以基于添加的自适应搜索模块对深度网络进行宽度搜索训练,得到训练后的超网络。宽度搜索训练中的自适应搜索模块,也可以用于确定进行训练的学习率,并且可以调整宽度选择空间。38.上述技术方案中,一方面,结合学习率以及深度选择空间进行深度搜索训练,以及,结合学习率以及宽度选择空间进行宽度搜索训练,由于调整了深度选择空间和深度选择空间,因此调整了训练程度,改变了进行深度训练和宽度训练的训练步骤,使得训练过程能够更充分,避免了训练不够充分的局限性。另一方面,由于通过确定学习率以及调整深度选择空间和宽度选择空间的自适应搜索模块来改善训练过程,通过对深度选择空间以及对宽度选择空间的调整,以及对学习率的调整,增加了超网络的训练程度,从根本上提高了超网络中子网络的性能与真实性能的一致性,减小了子网络之间的相互干扰,也减小了超网络训练对子网络的干扰,提升了超网络训练的准确性和训练效果,进一步提高了网络搜索的准确性。39.接下来,参考图2所示,对本公开实施例中的网络搜索方法的各个步骤进行详细说明。40.在步骤s210中,对超网络中的子网络进行训练获取中间网络,并基于核尺寸对所述中间网络进行训练,获取训练后的中间网络。41.本公开实施例中,超网络可以为任意类型的超网络,可用于进行网络搜索。搜索空间可以基于resnet48网络进行构建。resnet48网络的核心是残差结构。42.在获取到超网络之后,可为超网络指定特定的搜索空间。搜索空间可基于resnet48网络进行构建。其中,除了输入层和输出层外,中间层的类型可选,一般可以为不同类型的层设定不同的有限选择范围。网络每层的超参数也可以选择,包括卷积核数量、卷积核通道数、高度、宽度、水平和垂直方向的步长等。43.超网络的搜索空间的具体结构可以如表1中所示。搜索空间可以包括任意类型的超参数的取值范围。本公开实施例中,可以将超网络划分为多个部分,多个部分可以按照网络深度来划分,且可以为由浅到深的网络。并且,每个部分的每一层网络结构相同。参考表1中所示,可以将超网络划分为多段,也可以称为多个部分。多段例如可以为4段,具体数量根据实际需求进行确定。需要说明的是,可以按照网络深度将超网络划分为多个段,由浅到深可以依次表示为:stage1、stage2、stage3、stage4。44.表145.搜索空间resnet48stage数量4stages中block数目[2,3,4,5],[2,3,4,5],[2,3,4,5,6,7,8],[2,3,4,5]stages对应的基本通道数[64,128,256,512]conv层通道放缩比例[1.0,0.95,0.9,0.85,0.8,0.75,0.7][0046]参考表1中所示,其中,stages中block数目可以用于表示每个部分包含的块的数量的范围,即每个部分的深度搜索范围。例如,stage1中block数目可以为[2,3,4,5],可以用于表示第一段,即stage1可以是前面几层,例如2层、3层、4层或5层等等。stage对应的基本通道数[64,128,256,512]表示stage1的通道数为64,stage2的通道数为128,stage3的通道数为256,stage4的通道数为512。conv层通道放缩比例用于表示对每段的通道数进行缩放的比例,可以选择其中的一个进行缩放得到缩放后的通道数,例如stage1的可以选择0.8,stage2可以选择0.7等等。其中可以搜索的部分有:不同stage中block(block的设定方法与resnet相同)的数量以及conv层通道的缩放比例。基于此,超网络的搜索空间中可以包含1026个候选网络。[0047]由于搜索空间中通常包含庞大的参数量与计算量,在一些场景和设备上限制了相应的模型部署,因此可以对超网络进行剪枝,在保证网络性能的前提下,移除网络中需要大量计算资源的多余部分。[0048]为了避免剪枝方法的局限性,可以基于网络架构搜索方法来根据一定的搜索条件和计算方法找到符合标准的一个或一组最优网络。具体可以使用渐进式搜索剪枝方法进行网络搜索。[0049]渐进式搜索剪枝方法旨在通过对超网络的一次训练,得到不同规格的子网络。一次训练完成后不需要额外训练,就可以在超网络中选取到符合需求的不同规格子网络,大大提高了计算效率。其中,渐进式搜索剪枝方法,不同于传统剪枝的单维度(宽度)剪枝,渐进式搜索剪枝从多个维度(深度、宽度、核和分辨率)对超网络进行剪枝训练。[0050]本公开实施例中,超网络中包含许多不同大小的子网络,子网络可以对搜索空间进行采样得到。小的子网络嵌套在大的子网络中。训练超网络可以认为是通过采样大量的子网络或者是所有的子网络一个一个进行训练来实现。为了防止子网络之间的干扰,可从大的子网络训练到小的子网络,即训练方式为渐进收缩。[0051]在一些实施例中,在训练完超网络(最大的子网络)后,会先从卷积核中选择,此时网络宽度和深度保持最大值;随后在进行宽度和深度的选择,整个搜索过程是弹性的,分辨率也是弹性的。渐进式搜索剪枝可以防止小的子网络影响大的子网络,因为大的子网络已经得到了良好的训练,且会将训练好的大的子网络继承给小的子网络,这也加速了训练过程。[0052]本公开实施例中,首先可以对超网络从多个维度进行训练得到中间网络。此处的超网络也可以称为超网络中的最大子网络。多个维度可以包括但不限于分辨率、核尺寸、深度以及宽度。此处的核指的是卷积核。具体地,可先对最大的超网络进行训练,具体可以对深度、宽度、核尺寸和分辨率都采用最大值进行训练获取中间网络。例如,可以从最大卷积核、最大宽度和最大深度开始训练,然后逐步微调网络来获得更小的子网络以完成网络训练。训练全过程中,分辨率都是随机通过输入不同图片尺寸进行全程搜索训练。[0053]在根据分辨率、核尺寸以及深度、宽度等多参数对最大的超网络进行训练之后,可以依次对核尺寸、深度和宽度进行搜索训练。在对核尺寸进行搜索训练时,网络的深度和宽度保持最大值不变,每一层的核尺寸的搜索范围为{3,5,7},且小尺寸核通过大尺寸核的映射得到。通过对超网络基于多参数进行训练获取中间网络,并在网络深度和网络宽度保持最大值不变的情况下,基于核尺寸对中间网络进行训练,可获取训练后的中间网络。[0054]接下来,在步骤s220中,通过确定学习率以及调整深度选择空间的自适应搜索模块,对所述训练后的中间网络进行深度搜索训练,获取深度网络。[0055]本公开实施例中,为了避免相关技术中网络深度和宽度剪枝过程中不同子网络之间存在干扰的问题,可以基于超网络的搜索空间,在深度搜索训练和宽度搜索训练过程中添加自适应搜索模块,以便于通过自适应搜索模块进行渐进式搜索剪枝。自适应搜索模块旨在改进超网络的渐进式搜索训练过程中,训练不够充分和子网络之间相互干扰严重的问题。[0056]自适应搜索模块可以添加至深度搜索训练以及宽度搜索训练中,且深度搜索训练中的自适应搜索模块与宽度搜索训练中的自适应搜索模块不同。自适应搜索模块可以为针对于学习率以及选择空间的模块。例如对于深度搜索训练而言,自适应搜索模块可以为针对学习率以及深度选择空间的模块;对于宽度搜索训练而言,自适应搜索模块可以为针对学习率以及宽度选择空间的模块。[0057]本公开实施例中,为了提高模型训练效率,细化训练粒度,可在深度训练和宽度训练中添加针对学习率和搜索空间的自适应搜索模块。需要说明的是,在渐进式搜索剪枝过程中,可以先执行深度搜索训练再执行宽度搜索训练。此处首先对深度搜索训练过程进行说明。[0058]图3示意性示出了进行深度搜索训练的流程图,参考图3中所示,主要包括以下步骤:[0059]在步骤s310中,获取各阶段训练对应的深度选择空间;[0060]在步骤s320中,基于各阶段训练对应的起始学习率,对各阶段训练的深度选择空间对应的子网络进行训练,以对所述训练后的中间网络进行深度搜索训练获取所述深度网络。[0061]本公开实施例中,可以将深度搜索训练过程划分为多阶段,多阶段具体可以根据实际需求以及模型特性进行确定,例如可以为三阶段,即分为三个阶段进行训练。每个阶段可以包括不同的训练轮数。例如,深度搜索训练中,三阶段训练分别采用5轮、10轮和15轮。在模型训练过程中,0-30轮可以为深度搜索训练。由于超网络可以包括多个子网络,且对超网络的训练过程可以认为是通过采样大量的或者是所有的子网络一个个训练来实现。因此,对超网络进行深度搜索训练可以认为是对其中的大量或者是所有子网络进行深度搜索训练。并且,每个阶段均可以对一个或多个子网络进行训练。[0062]基于此,可以根据自适应搜索模块确定各阶段训练的深度选择空间,从而根据各阶段训练的深度选择空间来确定参与训练的子网络的训练程度。子网络可以包括超网络中的部分子网络或者是全部子网络,具体根据采样情况而确定。[0063]各阶段训练的深度选择空间也不同,深度选择空间可以用于描述各个阶段深度的取值范围。示例性地,可以分别确定每个阶段对应的每段的深度选择空间。深度选择空间可以用于表示训练程度,深度选择空间的数值越多,则训练程度越大。由于将超网络的搜索空间划分为多个段,例如四段,其中最后一段的结构对网络的结果影响较大,因此可以调整最后一段的深度选择空间以对超网络进行深度搜索训练,从而调整训练程度。[0064]对于各阶段中每个段的深度选择空间而言,可根据搜索空间中该段对应的深度搜索范围,来确定各阶段训练的每段的深度选择空间。需要说明的是,各阶段训练的每段的深度选择空间,可根据搜索空间中该段对应深度搜索范围中部分搜索范围或者是全部搜索范围而确定。即,深度选择空间可以为对应的深度搜索范围中的部分或全部。需要说明的是,在深度搜索训练中,第三阶段训练的深度选择空间表示的搜索范围最大,即深度选择空间的数值最多。[0065]由于多段中最后一段的结构最接近输出,且对网络的结果影响较大,因此可以对最后一段的深度选择空间进行更新和调整。示例性地,可以按照超网络的搜索空间中最后一段的深度搜索范围,对与最后一段的深度搜索范围不同的所有阶段的最后一段的深度选择空间进行增加。最后一段的深度选择空间增加后的数值可以为最后一段的深度搜索范围中的部分数值或全部数值,此处根据实际需求进行确定。通过增加最后一段的深度选择空间,使得最后一段的深度选择空间中添加了较小深度的子网络采样训练,因此增加了训练步骤和训练过程,从而增加深度搜索训练的训练程度。[0066]例如,超网络的搜索空间中最后一段的深度搜索范围为[5,4,3,2],第一阶段的最后一段的深度选择空间为[5,4],第二阶段的最后一段的深度选择空间为[5,4,3],第三阶段的最后一段的深度选择空间为[5,4,3,2]。基于超网络的搜索空间中最后一段的深度搜索范围,可以为最后一段的深度选择空间添加较小深度的子网络采样训练,例如将第一阶段的最后一段的深度选择空间修改为[5,4,3,2],将第二阶段的最后一段的深度选择空间修改为[5,4,3,2],并在第三阶段的最后一段的深度选择空间与搜索空间中最后一段的深度选择空间相同时,保持第三阶段的最后一段的深度选择空间不变。需要说明的是,如果第三阶段的最后一段的深度选择空间与搜索空间中最后一段的深度选择空间不同,对第三阶段的最后一段的深度选择空间进行调整。[0067]在网络深度的训练中,结合resnet48网络的特性,第四个stage中的结构对网络的结果影响权重较大,因此,需要着重调整最后一段stage4的深度选择空间。在前10个epoch中,同时对超网络和子网络进行采样,提升训练的公平性。如表2所示,除了第一段至第三段stage1-3的渐进式自适应训练设计以外,在最后一段stage4的深度选择空间中添加了较小深度的子网络采样训练。通过增加最后一段的深度选择空间,能够增加较小深度的子网络来对超网络进行训练,有效提升了深层网络的训练公平性,减小了子网络之间的相互干扰。由于最后一段接近于输出,因此提高了准确性。[0068]表2[0069][0070]对于多阶段训练而言,其对应的起始学习率也不同。学习率为影响性能的超参数,且学习率可以影响训练过程。因此,在实际使用过程中,可以对学习率进行调整,使得学习率在开始训练时很大,在训练过程中逐渐变小,在结束时达到一个最小值。[0071]本公开实施例中,可以使用余弦函数来对学习率进行调整,可以为各阶段训练分别设置一个初始学习率,并通过余弦函数对各阶段训练的初始学习率进行调整。余弦函数中随着横轴的增加余弦值首先缓慢下降,然后加速下降,再次缓慢下降。当学习率减小至最小值时学习率再增大至初始学习率。循环上述过程根据余弦函数对学习率进行调整。其中最小值可以为默认值,例如可以为0。[0072]各阶段训练的初始学习率可以不同,且随着训练时间以及训练阶段的增加,初始学习率增大。例如,参考表2中所示,第一阶段的搜索训练中,采用0.001的起始学习率;第二阶段的搜索训练中,采用0.002的起始学习率;第三阶段的搜索训练中,采用0.004的起始学习率。[0073]参考表2中所示,深度搜索训练过程可以包括阶段1、阶段2以及阶段3。其中阶段1的起始学习率为0.001,对应第0-5轮,第一段stage1、第二段stage2的深度选择空间为[5,4],第三段stage3的深度选择空间为[8,7,6],最后一段stage4的深度选择空间为[5,4,3,2]。阶段2的起始学习率为0.002,对应第5-15轮,第一段stage1、第二段stage2的深度选择空间为[5,4,3],第三段stage3的深度选择空间为[8,7,6,5,4],最后一段stage4的深度选择空间为[5,4,3,2]。阶段3的起始学习率为0.004,对应第15-30轮,第一段stage1、第二段stage2的深度选择空间为[5,4,3,2],第三段stage3的深度选择空间为[8,7,6,5,4,3,2],最后一段stage4的深度选择空间为[5,4,3,2]。[0074]基于上述深度选择空间,在0-30轮中对超网络进行深度搜索训练。在深度搜索训练过程中根据resnet48模型的特性,使用余弦退火的学习率调节方法进行训练。示例性地,深度搜索训练的第一阶段中,采用0.001的起始学习率,在第一阶段的每个段(stage1-stage4)中通过对深度选择空间对应的子网络进行训练实现对训练后的中间网络进行深度训练;深度搜索训练的第二阶段中,采用0.002的起始学习率进行深度训练;深度搜索训练的第三阶段中,采用0.004的起始学习率进行深度训练。在对训练后的中间网络进行深度搜索训练之后,可以得到深度网络。通过在多阶段训练中设置不同的起始学习率,能够提高训练程度,使得训练准确性较高。[0075]本公开实施例中,通过对最后一段的深度选择空间进行增加,获取各阶段训练的每段的深度选择空间,提升了深层网络的训练的公平性。并且设置了多个学习率,能够增加训练程度。由于通过增加了表示学习率和深度搜索空间的自适应搜索模块,提高了子网络在超网络中的性能与真实性能的一致性,因此减少了子网络之间的相互干扰,提高了训练的充分性,能够提高训练准确性和训练效果。[0076]继续参考图2中所示,在步骤s230中,通过确定学习率以及调整宽度选择空间的自适应搜索模块,对所述深度网络进行宽度搜索训练,以进行网络搜索。[0077]本公开实施例中,在执行完深度搜索训练得到深度网络之后,可对宽度搜索训练阶段增加自适应搜索模块。宽度搜索训练阶段的自适应搜索模块可包括学习率以及宽度选择空间的信息。[0078]图4中示意性示出了宽度搜索训练的流程图,参考图4中所示,主要包括以下步骤:[0079]在步骤s410中,增大多阶段训练中目标阶段的宽度选择空间;[0080]在步骤s420中,基于各阶段训练对应的起始学习率,对各阶段训练的宽度选择空间对应的子网络进行训练,以对所述深度网络进行宽度搜索训练。[0081]本公开实施例中,依然可以将宽度搜索训练过程划分为多阶段,多阶段具体可以根据实际需求以及模型特性进行确定,且可以与深度搜索训练中的划分的多阶段训练相同,例如可以为三阶段,即分为三个阶段进行训练。每个阶段可以包括不同的训练轮数,并且宽度搜索训练的训练轮数与深度搜索训练的训练轮数不同。例如,宽度搜索训练中,三阶段训练分别采用5轮、10轮和25轮。在模型训练过程中,0-30轮可以为深度搜索训练,接下来的30-70轮属于宽度搜索训练。[0082]由于超网络可以包括多个子网络,且对超网络的训练过程可以认为是通过采样大量的或者是所有的子网络一个个训练来实现。可以确定出各阶段训练对应的参与训练的部分子网络或者是全部子网络。因此,对超网络进行宽度搜索训练可以认为是对其中的大量或者是所有子网络进行宽度搜索训练。并且,每个阶段均可以对一个或多个子网络进行训练。[0083]基于此,可以确定各阶段训练的宽度选择空间,宽度选择空间可以为各个阶段的宽度的取值范围。宽度选择空间可以用于表示训练程度,宽度选择空间的数值越多,则训练程度越大。各阶段训练的宽度选择空间也可以相同或不同。在一些实施例中,为了减小子网络之间的相互干扰,可增加多阶段训练中目标阶段的宽度选择空间。目标阶段可以包括第二阶段或者是第三阶段。目标阶段可以为任意一段的第二阶段或第三阶段。宽度选择空间增加的数值可以根据实际需求进行增加,此处不作具体限定。处于同一段的第二阶段或第三阶段,其宽度选择空间可以相同,也可以不同,具体根据实际需求进行确定。例如,对于第三段stage3而言,第二阶段的宽度选择空间增加为[1,5],第三阶段的宽度选择空间增加为[1,5]。对于第四段stage4而言,第二阶段的宽度选择空间增加为[1,5],第三阶段的宽度选择空间增加为[1,7]。[0084]表3[0085][0086]参考表3中所示,第一阶段为第30-35轮,其起始学习率为0.001;第二阶段为第35-45轮,其起始学习率为0.002;第三阶段为第45-70轮,其起始学习率为0.004。第一段stage1的第一阶段、第二阶段以及第三阶段的宽度选择空间为[1,3]。第二段stage2的第一阶段、第二阶段以及第三阶段的宽度选择空间为[1,3]。第三段stage3的第一阶段的宽度选择空间为[1,3]、第二阶段以及第三阶段的宽度选择空间为[1,5]。第四段stage4的第一阶段的宽度选择空间为[1,3]、第二阶段的宽度选择空间为[1,5]以及第三阶段的宽度选择空间为[1,7]。[0087]在第30-70轮表示的宽度搜索训练过程中,对于多阶段训练而言,其对应的起始学习率也不同。学习率为影响性能的超参数,且学习率可以影响训练过程。因此,在实际使用过程中,可以对学习率进行调整,使得学习率在开始训练时很大,在训练过程中逐渐变小,在结束时达到一个最小值。[0088]本公开实施例中,依然可以使用余弦函数来对学习率进行调整,可以为各阶段设置一个初始学习率,并通过余弦函数对各阶段训练的初始学习率进行调整。余弦函数中随着横轴的增加余弦值首先缓慢下降,然后加速下降,再次缓慢下降。当学习率减小至最小值时学习率再增大至初始学习率。循环上述过程根据余弦函数对学习率进行调整。其中最小值可以为默认值,例如可以为0。[0089]各阶段训练的初始学习率可以不同,且随着训练时间以及训练阶段的增加,初始学习率增大。宽度搜索训练中各阶段训练的初始学习率,与深度搜索训练中相同阶段的初始学习率相同。例如,第一阶段的搜索训练中,采用0.001的起始学习率;第二阶段的搜索训练中,采用0.002的起始学习率;第三阶段的搜索训练中,采用0.004的起始学习率。[0090]在获取到每个段中每个阶段的宽度选择空间后,基于上述宽度选择空间,在0-30轮为深度搜索训练,在30-70轮为宽度搜索训练。在训练过程中根据resnet48模型的特性,使用余弦退火的学习率调节方法进行宽度搜索训练,示例性地,宽度搜索训练的第一阶段中,采用0.001的起始学习率,对宽度选择空间确定的所有子网络进行宽度搜索训练,以实现对深度网络进行宽度训练;宽度搜索训练的第二阶段中,采用0.002的起始学习率进行宽度训练;宽度搜索训练的第三阶段中,采用0.004的起始学习率进行宽度训练。在对深度网络使用第一阶段、第二阶段以及第三阶段进行宽度搜索训练之后,可以实现对超网络的训练,得到训练后的超网络。[0091]本公开实施例中,在自适应深度搜索后,针对网络宽度进行自适应搜索。随着训练时间的增加,从小宽度开始,逐渐增大网络宽度的搜索空间,有效减小了超网络训练对子网络的干扰。通过在宽度搜索训练过程中增加自适应搜索模块,设置起始学习率以及调整宽度选择空间,增加了训练程度和训练步骤,能够提高子网络在超网络的性能与真实性能的一致性,减小了子网络训练之间的互相干扰,提升了网络性能,提高了训练效果。[0092]图5中示意性示出了对超网络进行剪枝训练的流程图,参考图5中所示,渐进式搜索剪枝指的是只搜索一次的超高效率神经架构搜索算法,即只通过一次搜索即可得到需要的子网络表示的网络结构。[0093]搜索剪枝算法首先训练最大超网(深度、宽度、核和分辨率都采用最大值),然后依次对核尺寸、深度和宽度进行搜索训练。训练全过程中,分辨率都是随机通过输入不同图片尺寸进行全程搜索训练。在对核尺寸进行搜索训练时,网络的深度和宽度保持最大值不变,每一层的核尺寸搜索范围为{3,5,7},小尺寸核通过大尺寸核的映射得到。同理在增加自适应搜索模块之后,依次根据多阶段训练的初始学习率训练网络深度和宽度。例如,第0-30轮进行深度搜索训练,第30-70轮进行宽度搜索训练。训练过程中,超网络和子网络的权值采用共享模式。在训练过程中,减小了子网络之间的干扰,提高了超网络与子网络的一致性,提高了网络的精度。[0094]图6中示意性示出了训练的整体流程示意图,参考图6中所示,整个训练过程可以包括以下步骤:[0095]在步骤s610中,获取超网络。[0096]在步骤s620中,先根据分辨率、核尺寸、深度以及宽度的最大值训练整个超网络得到中间网络。[0097]在步骤s630中,保持深度和宽度不变,依次改变核尺寸的值进行训练直至收敛得到训练后的中间网络。[0098]在步骤s640中,在保持任意两个变量的情况下,基于自适应搜索模块对深度值进行调整以训练模型,直至收敛得到深度网络。[0099]在步骤s650中,在保持任意两个变量的情况下,基于自适应搜索模块对宽度值进行调整实现宽度搜索训练,以对超网络进行渐进式收缩训练,直至收敛得到训练后的超网络。[0100]在得到训练后的超网络后,可以在训练后的超网络中,根据搜索策略进行网络搜索,得到满足条件的子网络作为网络结构,以结束整个过程。[0101]在此基础上,可以基于搜索得到的网络结构对待处理对象进行处理操作。待处理对象可以为待处理图像、待处理语音、待处理文本等等,待处理对象具体可以根据处理操作的类型以及实际应用场景而确定。基于此,可以使用通过网络搜索在训练后的超网络中得到的需要的网络结构,对待处理对象进行处理操作,实现处理操作对应的功能。处理操作可以为目标任务场景下的操作,具体根据目标任务的类型而确定。目标任务可以为各种类型的任务,例如分类任务、检测任务以及分割任务、识别任务等等,具体可根据实际应用场景和实际需求而确定。基于此,处理操作可以包括但不限于分类操作、检测操作以及分割操作、识别操作,从而可基于网络结构对待处理对象实现各种类型的操作,此处不作具体限定。[0102]为保证选取的子网络效果,尽可能地保证子网络在超网络中的评估接近其真实性能。基于此,可采取皮尔逊相关系数来度量子网络真实性能与超网络中评估得到的性能的一致性。皮尔逊相关系数是用来衡量两个数据集合是否在一条线上面,它用来衡量随机变量间的线性相关程度。皮尔逊相关系数越大,一致性越高。[0103]可将添加了自适应搜索模块的超网络与基础模型的训练结果进行比较。参考表4中所示,添加自适应搜索模块后,模型的超网络与子网络性能皮尔逊相关指数从0.79884提升到0.80263,有效地提升了超网络采样子网络的一致性,缓解了超网络之间的相互干扰作用,从而提升了搜索剪枝算法的有效性。[0104]表4[0105]实验配置超网络和子网络的皮尔逊相关指数基础模型0.79884添加自适应搜索模块的模型0.80263[0106]本公开实施例中的技术方案,通过在深度搜索训练以及宽度搜索训练过程中增加自适应搜索模块,调整学习率以及调整深度选择空间和宽度选择空间来确定参与训练的子网络,由于增加了更小深度的子网络,并且设置了多个不同的起始学习率分类分阶段进行训练,对深度搜索训练和宽度搜索训练的训练步骤进行调整,提升了超网络中子网络性能与其真实性能的一致性,提高了子网络性能,缓解了超网络中不同子网络之间产生的相互干扰作用,也减小了超网络训练对子网络的干扰,提高了训练充分性以及准确性,且提高了整体模型搜索效果。[0107]本公开实施例中提供了一种网络搜索装置,参考图7中所示,该网络搜索装置700可以包括:[0108]训练模块701,用于对超网络中进行训练获取中间网络,并基于核尺寸对所述中间网络进行训练,获取训练后的中间网络;[0109]深度搜索训练模块702,用于通过确定学习率以及调整深度选择空间的自适应搜索模块,对所述训练后的中间网络进行深度搜索训练,获取深度网络;[0110]宽度搜索训练模块703,用于通过确定学习率以及调整宽度选择空间的自适应搜索模块,对所述深度网络进行宽度搜索训练,以进行网络搜索。[0111]在本公开的一种示例性实施例中,深度搜索训练模块包括:深度选择空间获取模块,用于获取各阶段训练对应的深度选择空间;训练控制模块,用于基于各阶段训练对应的起始学习率,对各阶段训练的深度选择空间对应的子网络进行训练,以对所述训练后的中间网络进行深度搜索训练获取所述深度网络。[0112]在本公开的一种示例性实施例中,深度选择空间获取模块包括:空间划分模块,用于将所述超网络的搜索空间按照深度划分为多段;深度选择空间更新模块,用于确定最后一段之前的所有段的深度选择空间,并对最后一段的深度选择空间进行更新。[0113]在本公开的一种示例性实施例中,深度选择空间更新模块包括:确定模块,用于根据超网络的搜索空间中,最后一段之前的所有段的深度搜索范围,确定最后一段之前的所有段的深度选择空间;空间增加模块,用于根据超网络的搜索空间中包含的最后一段的深度搜索范围,增加所述最后一段的深度选择空间。[0114]在本公开的一种示例性实施例中,宽度搜索训练模块包括:宽度选择空间增大模块,用于增大多阶段训练中目标阶段的宽度选择空间;训练控制模块,用于基于各阶段训练对应的起始学习率,对各阶段训练的宽度选择空间对应的子网络进行训练,以对所述深度网络进行宽度搜索训练。[0115]在本公开的一种示例性实施例中,所述多阶段训练包括第一阶段、第二阶段以及第三阶段,宽度选择空间增大模块包括:增大控制模块,用于增大多阶段训练中,第二阶段或第三阶段的宽度选择空间。[0116]在本公开的一种示例性实施例中,所述多阶段训练的起始学习率随着训练阶段的增加依次增大。[0117]需要说明的是,上述网络搜索装置中各部分的具体细节在网络搜索方法的部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。[0118]本公开的示例性实施方式还提供一种电子设备。该电子设备可以是上述终端110。一般的,该电子设备可以包括处理器与存储器,存储器用于存储处理器的可执行指令,处理器配置为经由执行可执行指令来执行上述方法。[0119]下面以图8中的移动终端800为例,对该电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图8中的构造也能够应用于固定类型的设备。[0120]如图8所示,移动终端800具体可以包括:处理器801、存储器802、总线803、移动通信模块804、天线1、无线通信模块805、天线2、显示屏806、摄像模块807、音频模块808、电源模块809与传感器模块810。[0121]处理器801可以包括一个或多个处理单元,例如:处理器801可以包括ap(applicationprocessor,应用处理器)、调制解调处理器、gpu(graphicsprocessingunit,图形处理器)、isp(imagesignalprocessor,图像信号处理器)、控制器、编码器、解码器、dsp(digitalsignalprocessor,数字信号处理器)、基带处理器和/或npu(neural-networkprocessingunit,神经网络处理器)等。本示例性实施方式中的方法可以由ap、gpu或dsp来执行,当方法涉及到神经网络相关的处理时,可以由npu来执行,例如npu可以加载神经网络参数并执行神经网络相关的算法指令。[0122]编码器可以对图像或视频进行编码(即压缩),以减小数据大小,便于存储或发送。解码器可以对图像或视频的编码数据进行解码(即解压缩),以还原出图像或视频数据。移动终端800可以支持一种或多种编码器和解码器,例如:jpeg(jointphotographicexpertsgroup,联合图像专家组)、png(portablenetworkgraphics,便携式网络图形)、bmp(bitmap,位图)等图像格式,mpeg(movingpictureexpertsgroup,动态图像专家组)1、mpeg10、h.1063、h.1064、hevc(highefficiencyvideocoding,高效率视频编码)等视频格式。[0123]处理器801可以通过总线803与存储器802或其他部件形成连接。[0124]存储器802可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器801通过运行存储在存储器802的指令,执行移动终端800的各种功能应用以及数据处理。存储器802还可以存储应用数据,例如存储图像,视频等文件。[0125]移动终端800的通信功能可以通过移动通信模块804、天线1、无线通信模块805、天线2、调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块804可以提供应用在移动终端800上3g、4g、5g等移动通信解决方案。无线通信模块805可以提供应用在移动终端800上的无线局域网、蓝牙、近场通信等无线通信解决方案。[0126]显示屏806用于实现显示功能,如显示用户界面、图像、视频等。摄像模块807用于实现拍摄功能,如拍摄图像、视频等,且摄像模块中可以包含色温传感器阵列。音频模块808用于实现音频功能,如播放音频,采集语音等。电源模块809用于实现电源管理功能,如为电池充电、为设备供电、监测电池状态等。传感器模块810可以包括一种或多种传感器,用于实现相应的感应检测功能。例如,传感器模块810可以包括惯性传感器,其用于检测移动终端800的运动位姿,输出惯性传感数据。[0127]需要说明的是,本公开实施例中还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。[0128]计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。[0129]计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。[0130]计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。[0131]通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。[0132]此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。[0133]应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。[0134]本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1