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

一种训练模型的训练方法、场景识别方法、计算机设备与流程

2021-11-15 15:42:00 来源:中国专利 TAG:


1.本技术涉及图片处理技术领域,特别是涉及一种训练模型的训练方法、场景识别方法、计算机设备。


背景技术:

2.从图像中判断图像场景所处的地点类型,是图像理解的一种常见任务,它属于图像分类的一种。一个更好的神经网络设计通常会显著提高精度。现有技术中,精度的提高是以更高的计算复杂度为代价的,也就是说,要得到更好的神经网络设计,就意味着计算复杂度更大,因此,计算资源限制的平台无法承载这些更好的神经网络设计,这使得将神经网络部署到计算资源限制的平台(如移动设备)上更具挑战性。目前,针对计算资源限制的平台设计高效模型有两种方法,一是人工设计高效模型,二是通过神经网络架构搜索方法得到高效模型。
3.神经网络架构搜索方法将硬件高效的网络设计为多目标超参数优化问题(如fbnet,mnasnet),在移动设备算力限制下为计算机视觉任务设计高效模型提供了有效的解决方案。虽然取得了突破,但是由于神经网络架构中包含多个神经网络,这些神经网络组合形成一个大搜索空间,通常,搜索空间越大、越复杂,搜索得到的神经网络越好,要从这个大搜索空间中搜索得到一个神经网络,需要消耗一定的搜索开销,要从一个更大、更复杂的搜索空间中搜索获得更好的神经网络来提高精度,搜索开销更大,而且搜索空间里多一个神经网络,其搜索开销会呈指数级增长,因此,神经网络架构搜索仍然存在搜索开销巨大的问题。
4.因此,现有技术有待改进。


技术实现要素:

5.本发明所要解决的技术问题是,提供训练模型的训练方法、场景识别方法、计算机设备,以降低搜索开销。
6.一方面,本发明实施例提供了一种训练模型的训练方法,包括:
7.获取训练模型和训练图片集;其中,所述训练模型包括依次连接的若干个神经网络模块,其中,每个神经网络模块均包括若干个神经网络层;
8.基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数,其中,所述模型参数包括所述已训练模型中各个神经网络层各自分别对应的样本权重参数;
9.若所述已训练模型不满足预设条件,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层的样本权重参数,确定该神经网络模块中的目标神经网络层,并根据所述目标神经网络层,确定该神经网络模块对应的更新神经网络模块,其中,所述更新神经网络模块中包括所述目标神经网络层;
10.根据所述已训练模型中各个神经网络模块各自分别对应的更新神经网络模块,确定所述已训练模型对应的更新模型,并将所述更新模型作为训练模型,继续执行所述基于
所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数的步骤,直至所述已训练模型满足预设条件。
11.第二方面,本发明实施例提供了一种场景识别方法,所述场景识别方法包括:
12.获取待识别图像,根据所述待识别图像的任务类型确定已训练模型;其中,所述已训练模型为上述任意一项所述的训练模型,所述已训练模型为基于训练图片集训练得到的;其中,所述训练图片集包括:多组样本图片,每组样本图片均包括一训练图片和所述训练图片对应的期望场景识别标签;
13.根据所述已训练模型确定目标神经网络;
14.将所述待识别图像输入至所述目标神经网络,通过所述目神经网络对所述待识别图像进行识别得到所述待识别图像对应的场景识别标签。
15.第三方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
16.获取训练模型和训练图片集;其中,所述训练模型包括依次连接的若干个神经网络模块,其中,每个神经网络模块均包括若干个神经网络层;
17.基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数,其中,所述模型参数包括所述已训练模型中各个神经网络层各自分别对应的样本权重参数;
18.若所述已训练模型不满足预设条件,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层的样本权重参数,确定该神经网络模块中的目标神经网络层,并根据所述目标神经网络层,确定该神经网络模块对应的更新神经网络模块,其中,所述更新神经网络模块中包括所述目标神经网络层;
19.根据所述已训练模型中各个神经网络模块各自分别对应的更新神经网络模块,确定所述已训练模型对应的更新模型,并将所述更新模型作为训练模型,继续执行所述基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数的步骤,直至所述已训练模型满足预设条件。
20.第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
21.获取训练模型和训练图片集;其中,所述训练模型包括依次连接的若干个神经网络模块,其中,每个神经网络模块均包括若干个神经网络层;
22.基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数,其中,所述模型参数包括所述已训练模型中各个神经网络层各自分别对应的样本权重参数;
23.若所述已训练模型不满足预设条件,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层的样本权重参数,确定该神经网络模块中的目标神经网络层,并根据所述目标神经网络层,确定该神经网络模块对应的更新神经网络模块,其中,所述更新神经网络模块中包括所述目标神经网络层;
24.根据所述已训练模型中各个神经网络模块各自分别对应的更新神经网络模块,确定所述已训练模型对应的更新模型,并将所述更新模型作为训练模型,继续执行所述基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数的步骤,直至所述已训练模型满足预设条件。
25.与现有技术相比,本发明实施例具有以下优点:
26.为了得到高效的神经网络,采用训练模型表示搜索空间,由于所述训练模型包括若干个模块,所述模块包括若干个神经网络层,本发明通过对神经网络模块进行更新得到更新模型,减少神经网络层是数量,从而大幅度降低了搜索开销。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1为本发明实施例中训练模型的训练方法的应用环境图;
29.图2为本发明实施例中训练模型的训练方法的第一流程示意图;
30.图3为本发明实施例中神经网络的训练方法的第二流程示意图;
31.图4为本发明实施例中场景图;
32.图5为本发明实施例中神经网络层的结构图;
33.图6为本发明实施例中训练模型的结构图;
34.图7为本发明实施例中13个神经网络层的示意图;
35.图8为本发明实施例中神经网络的训练方法的第三流程示意图;
36.图9为本发明实施例中从训练好的训练模型中抽取得到的神经网络的示意图;
37.图10为本发明实施例中计算机设备的内部结构图。
具体实施方式
38.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.发明人经过研究发现,对于利用神经网络的应用,关键是模型在目标任务上实现高精度,在目标计算平台上实现低延迟时间,目标计算平台是指模型所运行的计算平台,例如,将模型应用在手机上,通过手机实现模型的运行过程,那么该手机为目标计算平台。针对计算资源限制的平台(例如,现场可编程门阵列(field-programmable gate array,fpga)、精简指令集计算机(reduced instruction set computer,risc)、微处理器(advanced risc machine,arm))可以通过神经网络架构搜索(neural architecture search)方法得到高效的模型,神经网络架构搜索方法是采用搜索策略在搜索空间内搜索神经网络,并采用评估策略评估搜索到的神经网络,以得到目标神经网络的方法。搜索空间(search space)是指待搜索的神经网络的候选集合,搜索空间中存在多个待搜索的神经网络,搜索策略是指在搜索空间中搜索以得到目标神经网络的方法,搜索策略具体可以是随机搜索、贝叶斯优化、迁移学习、强化学习、进化算法、遗传算法、贪心算法以及基于梯度的算法中的任意一种。评估策略是指评估搜索到的神经网络的性能高低的方法,得到评估结果后,可继续采用搜索策略进行搜索,直至得到目标神经网络。
40.由于神经网络架构将多个神经网络组合成大搜索空间,神经网络架构搜索的目的
是从大搜索空间中搜索一个目标神经网络,因此,神经网络架构搜索仍然很耗时,搜索开销巨大。
41.为了解决上述问题,在本发明实施例中,为了通过神经网络架构搜索方法得到高效的神经网络,所采用的训练模型为超级网络(super net),训练模型是指用于训练的数学模型,超级网络是指由多个神经网络组成的大网络,通过超级网络表示搜索空间。在本发明中,所述训练模型所述训练模型包括依次连接的若干个神经网络模块(或者称超级块superblock),每个神经网络模块均包括若干个神经网络层(或者称候选块candidate block),神经网络模块是指由若干个神经网络层组成的模块,神经网络层是指由若干个基础神经网络单元组成的层,基础神经网络单元包括:卷积核、激活函数、池化单元、循环神经网络单元等,其中,卷积核(convolution kernel)是指在进行图像处理时,给定输入图像,在输出图像中每一个像素是输入图像中一个小区域中像素的加权平均,其中权重有一个函数定义,该函数则称为卷积核。激活函数(activation function)是指神经元上运行的函数,其作用是负责将神经元的输入映射到输出端。池化(pooling)单元主要用于参数降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。循环神经网络单元是指用于处理序列数据的神经网络单元。此外,基础神经网络单元还可以是随机失活(dropout)单元,随机失活是对具有深度结构的神经网络进行优化的方法,通过将参数的部分权重或输出随机归零,降低节点间的相互依赖性,从而实现神经网络的正则化(regularization),降低复杂度。
42.因此,选择不同的神经网络层进行连接会形成不同的神经网络,那么训练模型中存在有若干个神经网络,这些神经网络就形成了搜索空间,通过对所述训练模型进行训练优化所述训练模型的模型参数,就是从这些神经网络中搜索一个目标神经网络。训练模型中不同的神经网络的性能会有好有坏,训练开始时,所有神经网络层的样本权重参数是一样的,但是随着训练的进行,所述神经网络层的样本权重参数会向着性能好的神经网络的方向修正,那么性能好的神经网络层的样本权重参数较大,而性能差的神经网络层的样本权重参数较小,本发明通过在训练过程中,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层的样本权重参数,确定该神经网络模块中的目标神经网络层,并根据所述目标神经网络层,确定该神经网络模块对应的更新神经网络模块,其中,所述更新神经网络模块中包括所述目标神经网络层。也就是说,根据神经网络层的样本权重参数确定该神经网络层是否作为更新神经网络模块中的目标神经网络层,一些神经网络层并不能作为更新神经网络模块中的目标神经网络层。因此,相对于神经网络模块来说,更新神经网络模块中的目标神经网络层的数量只会少于神经网络模块中神经网络层的数量,减少一个神经网络层,就意味着搜索空间中减少多个神经网络,相对于已训练模型,更新模型的搜索开销也会呈指数级下降。搜索开销是指搜索过程所涉及的消耗值,搜索开销包括内存上的开销、计算上的开销、时间上的开销。可以理解的是,减少神经网络层后,训练所需的内存、计算、时间必然会减少。
43.此外,现有技术中,训练神经网络时,有通用的代理数据集(proxy dataset)作为训练图片集,这些代理数据集通常比较简单,且数据较好,容易训练。在训练完神经网络后,神经网络的应用于目标任务(如场景识别,图像修正等)时,再将目标数据集中的目标数据输入到训练好的神经网络中并得到输出,目标数据更加复杂,不容易训练,如果将未训练的
神经网络直接采用目标数据进行训练,会耗费大量时间,且有可能导致无法收敛,得不到训练好的神经网络。尤其是训练模型,训练时训练模型中每个神经网络都需要迭代,这是十分庞大的计算量。由于本发明训练过程中,训练模型中神经网络层的数量会逐渐减少,大大减少了训练时的计算量,因此,本发明的训练模型适应性强,可以将目标数据集作为训练图片集,直接在目标数据集上训练。目标数据集中的目标数据包括图像数据和音频数据,本发明实施例以图像数据为例进行说明。
44.本发明实施例可以应用到如下场景中,首先,服务器可以采集训练图片集,并将所述训练图片集输入终端设备,以使得终端设备依据所述训练图片集对训练模型进行训练。终端设备可以预先存储有训练模型,并响应服务器的输入的训练图片集,并进行训练得到已训练模型。
45.可以理解的是,如图1所示,在上述应用场景中,虽然将本发明实施方式的动作描述为由部分由终端设备10执行、部分由服务器20执行。但是,这样动作可以完全有服务器20或者完全由终端设备10执行。本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。其中,终端设备10包括台式终端或移动终端,例如台式电脑、平板电脑、笔记本电脑、智能手机等。服务器20包括独立的物理服务器、物理服务器集群或虚拟服务器。
46.在获取到所述已训练模型后,可以根据所述神经网络层的样本权重参数得到性能好的神经网络(样本权重参数越大的神经网络层所形成的神经网络,性能也就越好),可以将所述神经网络用于处理通过具有摄像头的终端设备拍摄的照片。例如,将通过具有摄像头的终端设备拍摄的照片作为输入项输入所述神经网络,通过所述神经网络对该照片进行场景识别,以得到该照片对应的场景识别标签,从而可以快速识别照片的场景,确定照片对应的场景识别标签。当然,在实际应用中,所述神经网络可作为一个场景识别模块配置于具有摄像头的终端设备,当具有摄像头的终端设备拍摄到照片时,启动所述场景识别功能模块,通过所述场景识别功能模块对该照片进行场景识别处理,使得去具有摄像头的终端设备输出照片对应的场景识别标签。
47.需要注意的是,上述应用场景仅是为了便于理解本发明而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
48.下面结合附图,详细说明本发明的各种非限制性实施方式。
49.神经网络架构搜索问题可视为神经网络架构中的路径选择问题,从而搜索空间中的任何特定结构的神经网络都可以通过神经网络架构中的某个路径来表示。例如,如图6所示的训练模型中,13个神经网络层就有13条路,从输入开始,每个神经网络模块选择一个神经网络层,即选择一条路,走过所有神经网络模块后,这些路就会形成一条连续的路径,这条连续的路径就代表一个神经网络。因此,神经网络架构搜索问题表示为
[0050][0051]
在给定搜索空间a下,寻求一个神经网络a∈a,通过训练神经网络架构的模型参数ω
a
以达到最小损失函数l(a,ω
a
)。在本发明中,通过对训练模型进行训练,调整训练模型的模型参数以达到最小损失函数。搜索空间定义了哪些神经网络会被搜索到,搜索空间的大小既要能够描述足够丰富的神经网络,也要避免搜索时间过长。搜索空间越大,神经网络的
数量就越多,搜索算法需要运行的迭代次数就越多,用到的gpu算力也就越多。
[0052]
参见图2,示出了本发明实施例中的一种训练模型的训练方法。在本实施例中,所述训练方法例如可以包括以下步骤:
[0053]
s1、获取训练模型和训练图片集,其中,所述训练模型包括依次连接的若干个神经网络模块,其中,每个所述神经网络模块均包括若干个神经网络层。
[0054]
本发明实施例中,如图3所示,采用训练模型表示搜索空间,所述训练模型的拓扑结构包括线性链式结构,多分支、跨层连接结构,链状多分支结构。所述训练模型被切分成若干个所述神经网络模块,各所述神经网络模块之间采用线性链式排布或多分支、跨层连接排布或链状多分支排布,从而堆叠形成所述训练模型。第i-1个所述神经网络模块的输出作为第i个所述神经网络模块的输入,第i个所述神经网络模块的输出再作为第i 1个所述神经网络模块的输入。各所述神经网络模块中存在若干个并列的神经网络层,在所述训练模型训练过程中,各所述神经网络模块可以独立的选择其中的所述神经网络层,也就是说,各所述神经网络模块可以选择相同或者不相同的所述神经网络层。各所述神经网络模块选择不同的神经网络层并连接可以得到不同的神经网络,在不同的神经网络模块中,相同的神经网络层对整个神经网络的精度和延迟时间有不同的影响,允许不同的所述神经网络模块选择不同的所述神经网络层可以获得更好的精度和效率,也就是说,得到性能更好的神经网络。
[0055]
用一个搜索空间的固定的宏结构构造一个分层搜索空间,搜索空间的宏结构定义了所述神经网络模块的数量和每个所述神经网络模块的输入/输出维度。所述训练模型表示一个搜索空间,各神经网络模块表示搜索子空间集合,各所述神经网络层表示搜索子空间。如图6所示,所述训练模型包括n个(层)神经网络模块(即超级block),如神经网络模块1、神经网络模块2、神经网络模块3、...、神经网络模块n等。每个所述神经网络模块均包括m个神经网络层(即候选block),如神经网络层1、神经网络层2、神经网络层3、...、神经网络层m等。因此,所述训练模型中神经网络的数量为m
n
,也就是说,有m
n
条路径可供选择。也就是说,通过在每个神经网络模块中均设置多个神经网络层,形成搜索子空间集合,各个神经网络层的结构各不相同,那么多个神经网络层提供了不同选择,每个神经网络模块在训练模型中所处的位置不同,具有某一结构的神经网络层更匹配该位置,各神经网络层连接得到的神经网络的性能更佳。也就是说,提供多个神经网络层,利于找到性能更佳的神经网络层,提高神经网络的性能。
[0056]
本发明实施例的一个实现方式中,如图5所示,所述神经网络层采用倒置残余块(inverted residual blocks)。所述倒置残余块包括:依次堆叠的第一逐点卷积层、深度卷积层、第二逐点卷积层。第一逐点卷积层可以是逐点(1
×
1)卷积(convolution)或者组卷积(group convolution),深度卷积层是一个k
×
k的深度卷积(depthwise convolution)(其中k表示卷积核大小),第二逐点卷积层是另一个逐点(1
×
1)卷积或组卷积。每个所述神经网络层可以为组卷积选择不同的卷积扩张率、卷积核大小和重复次数(即组数)。h
×
w表示特征图的空间大小。“relu”激活函数遵循第一个1
×
1卷积和深度卷积,但在最后一个1
×
1卷积之后没有激活函数。如果输出维度与输入维度保持相同,则使用跳过连接将输入添加到输出。我们使用一个扩张系数e来控制所述神经网络层,它决定了我们将第一个1
×
1卷积的输出通道大小与它的输入通道大小相比扩展多少。深度卷积可选择3或5的核大小。对于
每个所述神经网络模块具有固定的输入通道c
in
、输出通道c
out
,也就是说,该神经网络模块中各神经网络层共用一个输入通道和一个输出通道。且在该神经网络模块中,各神经网络层的深度卷积层的步长s是固定的,也就是说,同一神经网络模块中,各神经网络层的深度卷积层的步长相同,而不同神经网络模块中的神经网络层的深度卷积层的步长可以不相同。步长是指滑动卷积核时所移动的像素数,步长数为1或2。当然在其它实施例中,还可以采用其它形式的神经网络层,本发明不做限定。
[0057]
本发明实施例的一个实现方式中,如图7所示的神经网络层的可视化示意图中通过不同长宽比的长方形表示不同的神经网络层。图7中神经网络层是数量为13,那么各所述神经网络模块均包括13个神经网络层(即m=13),所述神经网络模块中13个神经网络层的配置如下表1所示。
[0058]
表1神经网络模块中13个神经网络层的配置情况表
[0059][0060][0061]
注意,有一个名为“skip”的神经网络层,该神经网络层直接将输入特征映射馈送到输出,而无需实际计算。所述神经网络层本质上允许减少训练模型的深度,因此最终得到的已训练模型中的所述神经网络模块的数量可以小于n。
[0062]
本发明实施例中,所述神经网络层采用倒置残余块,每个所述神经网络模块均包括13个所述神经网络层,搜索空间中的每个神经网络层可以选择不同的扩张系数、卷积核大小、卷积扩张率以及重复次数,具体如图7所示。根据所述搜索空间定义所述搜索空间的宏架构,例如,采用19个所述神经网络模块,其中,第2个、第4个、第7个、第16个所述神经网络模块的步长为2,其余所述神经网络模块的步长为1。
[0063]
现有技术中,神经网络架构搜索方法需要利用代理数据集(proxy dataset)(例如,对较小代理数据集进行训练,或仅使用更小的模型进行学习,或仅训练极少几轮),代理数据集是指对模型进行预搜索或预训练的数据集,例如,当神经网络架构几乎不可能在大型数据集上进行搜索时,预先在代理数据集上进行搜索,然后在在大型数据集上进行搜索。这些在代理数据集上优化的网络结构不能保证在目标数据集上是最佳的,也就是说,代理数据集上优化的网络结构在大型数据集这一目标数据集上有可能不是最佳的。
[0064]
本发明实施例中,由于在训练过程中更新神经网络模块中目标神经网络层的数量会减少,大大降低了搜索开销,则不需要在代理任务的代理数据集上进行训练,可以直接在目标任务的目标数据集上进行训练。也就是说,代理数据集和目标数据集均可以作为本发明中的训练图片集进行训练。本发明中训练模型中的目标神经网络可为解决目标任务的神经网络,包括但不限于以下至少之一:
[0065]
对输入图像中目标和背景进行分割的目标分割;
[0066]
对输入图像中目标的分类;
[0067]
对输入图像中目标的识别;其中,目标的识别包括场景识别以及人脸识别;
[0068]
基于输入图像的目标跟踪;
[0069]
基于输入图像的目标补全;
[0070]
基于输入图像的目标重建;
[0071]
基于医疗图像的诊断辅助;
[0072]
基于输入语音的语音识别、语音校正。
[0073]
所述训练图片集包括多组样本图片,每组样本图片均包括一训练图片和所述训练图片对应的期望输出数据。期望输出数据是指为了实现目标任务,期望训练模型在训练过程中输出的数据,目标神经网络的目标任务不同,目标神经网络对应的训练图片集也不同,那么训练图片和期望输出数据也不相同。例如,目标任务为目标的识别时,将待识别图像输入训练模型后,期望训练模型输出的是该待识别图像的识别标签。例如在场景识别中,将某一场景图片输入训练模型,期望输出数据是该场景的名称的标签,记为期望场景识别标签。
[0074]
举例说明,目标神经网络的目标任务是对输入图像中目标的识别,那么训练图片为携带有目标的图片,期望输出数据是训练图片对应的识别标签,且训练模型输出的实际输出数据是训练图片对应的实际识别标签。以场景识别型目标神经网络为例,所述训练图片集中的各场景图片存在对应的期望场景识别标签,即将场景图片作为训练图片,期望场景识别标签作为期望输出数据,那么训练模型输出的实际输出数据是场景图片对应的实际场景识别标签。例如,采集多类别的场景图片,如图4所示的场景为餐馆,并确保场景图片的期望场景识别标签准确,从而将这些场景图片和期望场景识别标签形成训练图片集。具体地,利用网络爬虫计算,在互联网上爬取对应期望场景识别标签的场景图片并清洗,以节约成本。
[0075]
举例说明,如果目标神经网络的目标任务是对输入图像中目标的分类,那么训练图片为携带有目标的图片,期望输出数据是训练图片中目标对应的分类标签。如果目标神经网络的目标任务是对输入图像中目标的分类,那么训练图片为携带有目标的图片,期望输出数据是训练图片中目标对应的分类标签。如果目标神经网络的目标任务是基于输入图像的目标补全,那么训练图片为待补全图片,期望输出数据是待补全图片中对应的补全图
像。如果目标神经网络的目标任务是基于输入图像的目标重建,那么训练图片为待重建图片,期望输出数据是待重建图片中对应的重建图像。
[0076]
s2、基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数,其中,所述模型参数包括所述已训练模型中各个神经网络层各自分别对应的样本权重参数。
[0077]
所述训练模型基于所述训练图片集进行训练得到所述已训练模型的模型参数,实质上是通过使用搜索策略从搜索空间中搜索神经网络(如图8所示),也就是说,采用神经架构搜索方法对神经网络进行架构设计。
[0078]
模型参数是指训练模型内部的配置变量,可以用数据估计它的值。本发明中模型参数包括模型的网络参数(ω)和模型的架构参数(θ)。网络参数ω包括:卷积权重,偏置等,网络参数ω是指训练模型中基础神经网络单元的配置变量,网络参数ω涉及对输入数据的具体处理的参数。架构参数θ是指确定训练模型的结构的参数,涉及的是选择何种神经网络层。
[0079]
训练模型的架构参数θ={(θ1)(θ2)
···

i
)},θ
i
表示第i个神经网络模块的架构参数;训练模型的网络参数ω={(ω1)(ω2)
···

i
)},ω
i
表示第i个神经网络模块的网络参数。更具体的,训练模型的架构参数θ={(θ1)(θ2)
···

i
)}={(θ1,1,θ
1,2
,
···

1,j
)(θ
2,1

2,2
,
···

2,j
)
···

i,1

i,2
,
···

i,j
)},θ
i,j
表示第i个神经网络模块中第j个神经网络层的样本权重参数,即训练模型中,各个神经网络层各自分别对应的样本权重参数可用θ
i,j
来表示。训练模型的网络参数ω={(ω1)(ω2)
···

i
)}={(ω
1,1

1,2
,
···

1,j
)(ω
2,1

2,2
,
···

2,j
)
···

i,1

i,2
,
···

i,j
)},ω
i,j
表示第i个神经网络模块中第j个神经网络层的网络参数。
[0080]
为了使所述训练模型的计算和优化易于处理,每个所述神经网络模块都独立于其他神经网络模块的选择来挑选一个所述神经网络层。因此,可以将各所述神经网络层的选择建模为从独立分类分布中采样的样本,那么,训练模型中的所述神经网络模块i选择所述神经网络层j的样本概率为p(i,j)。样本概率是指训练模型中神经网络模块中神经网络层被采样的概率。
[0081]
本发明实施例的一个实现方式中,由于神经网络模块中神经网络层被采样时,要么是被采样(可记为1),要么是没有被采样(可记为0),也就是说采样呈现离散分布,神经网络层的样本概率p(i,j)对样本权重参数θ
i,j
不是直接可微的。本技术通过gumbel-softmax分布进行采样,使训练得到所述训练模型的结构分布更有效,且神经网络层的样本概率p(i,j|θ
i,j
)对样本权重参数θ
i,j
是可微的。使用gumbel-softmax函数在每个所述神经网络模块的架构参数(θ)上定义样本概率则为
[0082][0083]
其中,∑表示求和符号,p(i,j|θ
i,j
)表示第i个神经网络模块中第j个神经网络层的样本概率,θ
i,j
表示第i个神经网络模块中第j个神经网络层的神经网络层的样本权重参数,e表示自然对数的底数,m表示所述神经网络层的数量。
[0084]
由于每个神经网络模块单独采样,那么神经网络a的样本概率为:
[0085][0086]
由于通过gumbel-softmax分布进行采样,实现神经网络层的样本概率p(i,j|θ
i,j
)对样本权重参数θ
i,j
可微,那么神经网络a的样本概率p
θ
(a)对架构参数θ也是可微的,因此,针对公式(1),本发明不必求解具有离散搜索空间的最优结构a∈a,而是通过放松求解,在搜索过程中,同时优化训练模型的网络参数(ω)和架构参数(θ),以最小化我们的损失函数。因此,可以将公式(1)改写成:
[0087][0088]
其中,训练模型的架构参数θ={(θ
1,1
,θ
1,2
,
···

1,j
)(θ
2,1

2,2
,
···

2,j
)
···

i,1

i,2
,
···

i,j
)},θ
i,j
表示第i个神经网络模块中第j个神经网络层的样本权重参数;训练模型的网络参数ω={(ω
1,1

1,2
,
···

1,j
)(ω
2,1

2,2
,
···

2,j
)
···

i,1

i,2
,
···

i,j
)},ω
i,j
表示第i个神经网络模块中第j个神经网络层的网络参数。
[0089]
步骤s2,包括:
[0090]
步骤s21、将所述训练图片输入所述训练模型,得到所述训练模型输出的所述训练图片对应的实际输出数据。
[0091]
本发明实施例的一种实现方式中,将训练图片输入所述训练模型,通过所述训练模型输出所述训练图片对应的实际输出数据,实际输出数据是指训练模型在训练过程中实际输出的数据,例如,目标任务为目标识别时,输入训练模型的是待识别图像,而训练模型实际输出的数据可能是该待识别图像对应的识别标签,也有可能是其它识别标签。举例说明,将待识别场景图片输入所述训练模型,通过所述训练模型得到待识别场景图片对应的实际场景识别标签,例如,将如图4的餐馆的待识别场景图片输入训练模型,训练模型输出的实际场景识别标签为会议室,而该餐馆的场景图片对应的期望场景识别标签为餐馆,也就是说,训练模型输出的实际场景识别标签是错误的。
[0092]
如图6所示的训练模型中,各神经网络模块采用线性链式排布,训练图片输入后,依次经过各神经网络模块进行处理最后输出实际输出数据。神经网络模块1对输入数据进行处理得到的神经网络模块1的处理数据,然后输入到神经网络模块2中,神经网络模块2对神经网络模块1的处理数据进行处理得到神经网络模块2的处理数据,接着输入到神经网络模块3中,依次类推,直到神经网络模块n输出神经网络模块n的处理数据,即实际输出数据。
[0093]
在本发明实施例的一种实现方式中,训练模型中的各神经网络模块是依次连接的,每个神经网络模块都有固定的输入和输出通道,第i-1个所述神经网络模块的输出作为第i个所述神经网络模块的输入,第i个所述神经网络模块的输出再作为第i 1个所述神经网络模块的输入。每个神经网络模块仅有一个输入数据和一个输出数据,神经网络模块的输入数据输入后,该神经网络模块中的每个神经网络层对神经网络模块的输入数据进行处理,然后根据该神经网络模块中各神经网络层的处理数据和各神经网络层的样本概率得到该神经网络模块的输出数据。
[0094]
对于第i个神经网络模块和第i-1个神经网络模块来说,满足如下关系:
[0095]
[0096]
其中,x
i-1
表示第i-1个神经网络模块的处理数据,x
i
表示第i个神经网络模块的处理数据,b
i,j
表示第i个神经网络模块中第j个神经网络层的处理操作,n表示神经网络模块的数量,p(i,j|θ
i,j
)表示第i个神经网络模块中第j个神经网络层的样本概率。
[0097]
在各神经网络模块采用其他排布的实现方式中,某个神经网络模块的输入数据有两个或两个以上,例如,训练图片输入到神经网络模块1和神经网络模块2中,得到神经网络模块1的处理数据和神经网络模块2的处理数据,然后将神经网络模块1的处理数据和神经网络模块2的处理数据都输入到神经网络模块3中进行处理得到神经网络模块3的处理数据。
[0098]
步骤s21具体包括:
[0099]
s211、针对所述训练模型中神经网络模块的每一个神经网络层,将所述训练图片输入该神经网络层进行处理,得到所述神经网络模块中该神经网络层对应的处理数据。
[0100]
具体地,将所述训练图片输入到第一个神经网络模块的每一个神经网络层中,该神经网络层对所述训练图片进行处理得到该神经网络层的处理数据。虽然同一神经网络模块中各神经网络层是输入数据是相同的,由于不同的神经网络层的结构是不同的,那么各神经网络层的处理数据是不相同的。
[0101]
对于第一个神经网络模块中第j个神经网络层的处理数据为b
1,j
(x0),其中,x0表示训练图片。所述训练图片输入到所述训练模型后,通过第一个神经网络模块中的神经网络层进行计算,从而得到该神经网络层的处理数据。具体地,主要通过卷积和抽样实现特征的提取和映射,采用多个卷积核抽样过程。多层的提取过程能够从数据中提取到有用的信息。
[0102]
s212、根据所述神经网络模块中各个神经网络层各自分别对应的处理数据和所述神经网络模块中各个神经网络层各自分别对应的样本概率,得到所述训练模型中所述神经网络模块的处理数据。
[0103]
为了将各神经网络层区别开,体现各神经网络层的性能大小,将神经网络层的样本概率与该神经网络层的处理数据相乘,相当于通过神经网络层的样本概率对该神经网络层的处理数据进行加权,然后求和得到第一个神经网络模块的处理数据x1:
[0104][0105]
其中,p(1,j|θ
1,j
)表示第一个神经网络模块中第j个神经网络层的样本概率,b
1,j
(x0)表示第一个神经网络模块中第j个神经网络层的处理数据,x0表示训练图片。
[0106]
s213、将所述训练模型中所述神经网络模块的处理数据作为所述训练模型中下一个所述神经网络模块的输入数据,针对所述训练模型中下一个神经网络模块的每一个神经网络层,将所述输入数据输入该神经网络层进行处理,得到该神经网络模块中该神经网络层对应的处理数据,直至所述训练模型中最后一个神经网络模块处理完成得到得到所述训练模型中最后一个神经网络模块的处理数据,将所述训练模型中最后一个神经网络模块的处理数据作为所述训练模型输出的所述训练图片对应的实际输出数据。
[0107]
具体地,第一个神经网络模块的处理数据x1作为所述训练模型中下一个所述神经网络模块的输入数据,即第二个神经网络模块的输入数据。那么第二个神经网络模块的处理数据x2:
[0108]
[0109]
其中,p(2,j|θ
2,j
)表示第二个神经网络模块中第j个神经网络层的样本概率,b
2,j
(x1)表示第二个神经网络模块中第j个神经网络层的处理数据,x1表示第一个神经网络模块的处理数据。
[0110]
训练模型中有n个神经网络模块,第n个神经网络模块进行处理后得到第n个神经网络模块的处理数据,即为所述训练模型输出的所述训练图片对应的实际输出数据。
[0111]
最后一个神经网络模块的处理数据x
n

[0112][0113]
其中,p(n,j|θ
n,j
)表示最后一个神经网络模块中第j个神经网络层的样本概率,b
n,j
(x
n-1
)表示最后一个神经网络模块中第j个神经网络层的处理数据,x
n-1
表示第n-1个神经网络模块的处理数据。
[0114]
s22、根据所述实际输出数据和所述训练图片对应的期望输出数据,对所述训练模型的模型参数进行调整,得到已训练模型的模型参数。
[0115]
具体地,这里的所述训练模型的模型参数包括:网络参数和架构参数,也就是说,网络参数和架构参数是同时调整的,通过训练一次性得到已训练模型。这一点是有别于现有技术中先通过搜索确定架构参数,再通过训练确定网络参数的。
[0116]
在得到实际输出数据后,则进入第二阶段、反向传播过程。具体地,将权重、偏置以及架构参数等模型参数反向传播回去,从输出层依次向后传递到各神经网络模块,直到每个神经网络模块都得到了自己的梯度,然后进行模型参数更新的操作,得到已训练模型的模型参数。
[0117]
可以将训练模型的模型参数看成一个向量,该向量中的各元素则是各神经网络层的参数,具体为各神经网络层的网络参数和各神经网络层样本权重参数。对所述训练模型的模型参数进行调整,实际上是对训练模型中每个神经网络层的网络参数和每个神经网络层的样本权重参数进行调整,调整后得到已训练模型的模型参数包括已训练模型的神经网络层的网络参数和已训练模型的神经网络层的样本权重参数。
[0118]
在训练之前,训练模型中各神经网络层的样本概率是均等的。在训练时,每个迭代都通过每个神经网络层进行计算,也就是说,只要所述神经网络层存在于所述神经网络模块中,就都算在内。经过训练,所述训练模型的各神经网络层的样本概率则有大有小,在训练过程中,将样本概率低的神经网络层舍弃,被舍弃的所述神经网络层就不会参与后续训练,那么所述神经网络模块的结构得到简化。
[0119]
步骤s22具体包括:
[0120]
s221、根据所述实际输出数据和所述训练图片对应的期望输出数据,确定所述训练模型的损失函数值。
[0121]
损失函数是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数,在本发明中可以用于衡量模型的效果,例如,效果包括精度和效率。本发明实施例的一个实现方式中,为了同时确保精度和效率,将损失函数定义为:
[0122]
l(θ,ω)=l
p
(θ,ω) α*l
e
(θ) (9)
[0123]
其中,l(
·
)表示损失函数,θ、ω分别表示所述训练模型的架构参数、网络参数,l
p
(
·
)表示训练模型的目标任务的损失项,l
e
(
·
)表示训练模型的延迟时间的损失项,α表示
超参数,所述超参数用于控制训练模型的目标任务的损失项与训练模型的延迟时间的损失项之间的权衡。训练模型的目标任务的损失项是指训练模型进行目标任务时的损失,例如,训练模型的目标任务的损失项包括均方误差、交叉熵、hinge loss、focalloss等。训练模型的延迟时间的损失项是指对目标计算平台的延迟时间的损失。每个基本神经网络单元在目标计算平台上的延迟时间是确定的,那么各神经网络层的延迟时间是根据该神经网络层的样本权重参数确定的,也就是说,训练模型的延迟时间的损失项由训练模型的架构参数确定。
[0124]
步骤s211具体包括:
[0125]
s211a、根据所述实际输出数据和所述训练图片对应的期望输出数据得到所述训练模型的目标任务的损失项。
[0126]
通过所述实际输出数据和所述期望输出数据得到训练模型的目标任务的损失项l
p
(θ,ω)。例如,训练模型的目标任务是场景识别,训练模型的目标任务的损失项为场景识别的损失项,具体可以是场景识别的精度。
[0127]
s211b、根据所述训练模型中各个神经网络层的样本权重参数和各个神经网络层的延迟时间得到所述训练模型的延迟时间的损失项;其中,所述神经网络层的延迟时间是根据该神经网络层的样本权重参数确定的。
[0128]
本发明实施例的一种实现方式中,由于训练模型的延迟时间的损失项主要关注延迟时间,将计算训练模型的延迟时间的损失项定义为
[0129][0130]
其中,∑表示求和符号,n表示所述神经网络模块的数量,m表示单个神经网络模块中神经网络层的数量,latency(
·
)表示第i个神经网络模块中第j个神经网络层的延迟时间,p(i,j|θ
i,j
)表示第i个神经网络模块中第j个神经网络层的样本概率,p(i,j|θ
i,j
)根据所述训练模型的架构参数得到,具体参见公式(2)。
[0131]
s211c、根据所述训练模型的目标任务的损失项和所述训练模型的延迟延间的损失项确定所述训练模型的损失函数值。
[0132]
所述训练模型的目标任务的损失项较低表明所述训练模型在目标任务上的精度较高,所述训练模型的延迟延间的损失项较低表明所述训练模型在目标计算平台上的效率。通过所述超参数α可以调控精度和效率,可以得到精度和效率上折中的训练模型,使所述训练模型更合理。
[0133]
s222、基于所述训练模型的损失函数值,对所述训练模型的模型参数进行调整,得到已训练模型的模型参数。
[0134]
具体地,基于所述训练模型的损失函数值,采用梯度下降法同时对所述训练模型的网络参数和架构参数进行调整,得到已训练模型的模型参数。也就是说,向最小化所述训练模型的损失函数值的方向调整所述训练模型的模型参数,由于所述网络参数和所述架构参数是同时调整的。
[0135]
具体地,采用如下公式计算已训练模型的网络参数:
[0136][0137]
其中,ω'表示已训练模型的网络参数,ω表示训练模型的网络参数,α1表示第一
预设学习率,表示所述损失函数对网络参数的梯度。
[0138]
根据损失函数对网络参数的偏导确定梯度下降的方向,并沿着梯度下降的方向以第一预设步长,即第一预设学习率,求解比上次更小的值,直到已训练模型的损失函数值最小化。
[0139]
具体地,采用如下公式计算已训练模型的架构参数:
[0140][0141]
其中,θ'表示已训练模型的架构参数,θ表示训练模型原有的架构参数,α2表示第二预设学习率,表示所述损失函数对架构参数的梯度。
[0142]
根据损失函数对架构参数的偏导确定梯度下降的方向,并沿着梯度下降的方向以第二预设步长,即第二预设学习率,求解比上次更小的值,直到已训练模型的损失函数值最小化。
[0143]
步骤s222包括:
[0144]
步骤s222a、基于所述训练模型的目标任务的损失项,针对所述训练模型中每一个神经网络层,调整该神经网络层的网络参数,得到所述已训练模型中对应神经网络层的网络参数。
[0145]
具体地,由于训练模型的目标任务的损失项与训练模型的网络参数和架构参数均相关,训练模型的延迟时间的损失项仅与训练模型的架构参数相关,因此,在调整网络参数时,可以仅计算训练模型的目标任务的损失项,并针对所述训练模型中每一个神经网络层,调整该神经网络层的网络参数,得到所述已训练模型中对应神经网络层的网络参数。举例说明,神经网络层的网络参数是基于所述训练模型的目标任务的损失项来调整的,就第i个神经网络模块中第j个神经网络层而言,确定所述训练模型的目标任务的损失项对该神经网络层的网络参数的梯度根据梯度训练模型中该神经网络层的网络参数ω
i,j
以及第一预设学习率α1,确定已训练模型中对应神经网络层的网络参数ω'
i,j

[0146]
步骤s222b、基于所述训练模型的损失函数值,针对所述训练模型中每一个神经网络层,调整该神经网络层的样本权重参数,得到所述已训练模型中对应神经网络层的样本权重参数。
[0147]
具体地,由于训练模型的目标任务的损失函数项和训练模型的延迟时间的损失项均与训练模型的架构参数相关,因此,在调整架构参数(或者说样本权重参数)时,需要基于训练模型的损失函数值对架构参数进行调整。举例说明,神经网络层的样本权重参数是基于所述训练模型的损失函数值来调整的,就第i个神经网络模块中第j个神经网络层而言,确定所述训练模型的损失函数值对该神经网络层的样本权重参数的梯度根据梯度训练模型中该神经网络层的样本权重参数θ
i,j
表以及第二预设学习率α2,确定已训练模型中对应神经网络层的样本权重参数θ'
i,j

[0148]
步骤s222c、将所述已训练模型中所有神经网络层各自分别对应的网络参数和样
本权重参数作为所述已训练模型的模型参数。
[0149]
具体地,将已训练模型的所有神经网络层各自分别对应的网络参数和样本权重参数作为所述已训练模型的模型参数。举例说明,已训练模型中第i个神经网络模块中第j个神经网络层的网络参数ω'
i,j
和样本权重参数θ'
i,j
作为已训练模型的模型参数。
[0150]
s3、若所述已训练模型不满足预设条件,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层的样本权重参数,确定该神经网络模块中的目标神经网络层,并根据所述目标神经网络层,确定该神经网络模块对应的更新神经网络模块,其中,所述更新神经网络模块中包括所述目标神经网络层。
[0151]
在本发明实施例的一个实现方式中,所述预设条件包括一下至少一种:a、所述已训练模型的损失函数值满足预设要求,b、训练次数达到预设次数,c、已训练模型中各所述神经网络模块中的所述神经网络层的数量均达到预设数量。
[0152]
若所述已训练模型不满足预设条件,则对已训练模型中的神经网络模块进行更新得到更新神经网络模块,更新神经网络模块包括目标神经网络层,目标神经网络层是根据已训练模型中神经网络模块中各个神经网络层的样本权重参数确定的,也就是说,将神经网络模块中样本权重参数较大的神经网络层确定为目标神经网络层,再根据目标神经网络层确定更新神经网络模块。
[0153]
步骤s3包括:
[0154]
s31、针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中所有神经网络层各自分别对应的样本权重参数,确定该神经网络模块中各个神经网络层各自分别对应的样本概率。
[0155]
若所述已训练模型不满足预设条件,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中所有神经网络层各自分别对应的样本权重参数,确定该神经网络模块中各个神经网络层各自分别对应的样本概率。具体地,根据该神经网络模块中各个神经网络层的样本权重参数计算得到该神经网络模块中各所述神经网络层各自分别对应的样本概率。具体参见公式(2)计算该神经网络模块中各神经网络层各自分别对应的样本概率。
[0156]
由于本发明中采用使用gumbel-softmax函数,那么单个所述神经网络模块中各所述神经网络层的样本概率之和为1。也就是说,神经网络层的样本概率仅与该神经网络层所在神经网络模块中的其余神经网络层的样本概率进行比较,举例说明,在训练之前,神经网络模块中有13个神经网络层,那么各神经网络层的样本概率均为1/13,随着训练的进行,一些神经网络层的样本概率大于1/13,另一些神经网络层的样本概率小于1/13。也就是说,由于模型参数是往最小化损失函数的方向调整,性能高(例如精度和效率高)的神经网络层的样本权重参数增大,性能差(例如精度和效率低)的神经网络层的样本权重参数减小,那么性能高的神经网络层的样本概率也就增大,性能差的神经网络层的样本概率也就减小。
[0157]
步骤s31包括:
[0158]
步骤s311、针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中每一个神经网络层对应的样本权重参数,确定该神经网络模块中该神经网络层对应的样本值。
[0159]
具体地,就第i个神经网络模块而言,该神经网络模块中各神经网络层对应的样本
权重参数为θ
i,j
=(θ
i,1
,θ
i,2
,θ
i,3

···
,θ
i,j-1
,θ
i,j
),就第i个神经网络模块中第j个神经网络层而言,该神经网络模块中该神经网络层对应的样本值为
[0160]
步骤s312、根据该神经网络模块中所有神经网络层各自分别对应的样本值之和,以及该神经网络模块中每一个神经网络层对应的样本值,确定该神经网络模块中该神经网络层对应的样本概率,以确定该神经网络模块中各个神经网络层各自分别对应的样本概率。
[0161]
具体地,该第i个神经网络模块中所有神经网络层各自分别对应的样本值之和为其中,m为第i个神经网络模块中神经网络层的数量。就第i个神经网络模块中第j个神经网络层而言,第i个神经网络模块中第j个神经网络层对应的样本值为那么第i个神经网络模块中第j个神经网络层的样本概率为
[0162]
s32、根据该神经网络模块中各个神经网络层各自分别对应的样本概率,确定该神经网络模块中的目标神经网络层;其中,所述目标神经网络层为样本概率大于预设概率的神经网络层。
[0163]
具体地,预设概率是指预先设置的样本概率阈值,用于确定神经网络层是否为目标神经网络层。所述预设概率可以根据需要进行设置,本发明实施例的一个实现方式中,所述预设概率的取值范围为0-10%,当然预设概率的取值与神经网络模块中神经网络层的数量有关,神经网络模块中神经网络层的数量越少,预设概率也越小;神经网络模块中神经网络层的数量越多,预设概率也越小。例如,神经网络模块中神经网络层的数量为13个时,将所述预设概率设置为0.3%,同一所述神经网络模块中,某一所述神经网络层的样本概率低于0.3%时,则该神经网络层就不是目标神经网络,就不会出现在更新神经网络模块中。
[0164]
s4、根据所述已训练模型中各个神经网络模块各自分别对应的更新神经网络模块,确定所述已训练模型对应的更新模型,并将所述更新模型作为训练模型,继续执行所述基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数的步骤,直至所述已训练模型满足预设条件。
[0165]
具体地,当神经网络层的样本概率减小至预设概率时,该神经网络层就不属于目标神经网络,就会被更新神经网络模块舍弃。在一次迭代过程中,有可能已训练模型中没有神经网络层被舍弃,有可能已训练模型中有一个或多个神经网络层被舍弃,还有可能一个神经网络模块中有一个或多个神经网络层被舍弃。被舍弃的神经网络层不参加后续的训练,也就不会出现在最终得到的更新模型中。
[0166]
在确定更新模型后,将更新模型作为训练模型,继续执行步骤s2,直至所述已训练模型满足预设条件。
[0167]
具体地,判断所述已训练模型是否满足预设条件,如果满足预设条件,则将该已训练模型输出。
[0168]
根据所述预设条件的具体情况进行判断,所述预设条件包括以下至少一种:所述已训练模型的损失函数值满足预设要求、所述已训练模型的训练次数达到预设次数以及所述已训练模型的各所述神经网络模块中的所述神经网络层的数量均达到预设数量。
[0169]
所述预设要求根据所述已训练模型的精度和效率确定,例如,所述已训练模型的损失函数值达到最小值或者不再变化。所述预设次数为所述已训练模型的最大训练次数,例如,4000次等。所述预设数量根据所述已训练模型中所述神经网络模块的数量确定,例如,所述神经网络模块的个数为19个,在训练到所述神经网络层的数量与所述神经网络模块的数量一致时,也就是说,每个所述神经网络模块中仅剩下一个所述神经网络层,那么也就得到了所述已训练模型的唯一的神经网络,无需再继续训练。再如,所述已训练模型的各所述神经网络模块中的所述神经网络层的数量均少于预设数量(例如预设数量设置为3个)时,则可以结束训练。当然也可以在所述神经网络层的数量为所述神经网络模块的数量的n倍时结束训练,n的取值范围可以是[1,3]。
[0170]
举例说明,采用一种判断方式判断所述已训练模型是否满足预设条件时,例如,若所述已训练模型的损失函数值不满足预设要求,则所述已训练模型不满足预设条件,那么继续训练;若所述已训练模型的损失函数值满足预设要求,则所述已训练模型满足预设条件,那么训练结束。再如,若所述已训练模型的各所述神经网络模块中的所述神经网络层的数量没有都达到预设数量,则所述已训练模型不满足预设条件,那么继续训练;若所述已训练模型的各所述神经网络模块中的所述神经网络层的数量均达到预设数量,则所述已训练模型满足预设条件,那么训练结束。
[0171]
采用至少两种判断方式一起判断所述已训练模型是否满足预设条件时,例如,采用损失函数值和训练次数一起来判断所述已训练模型是否满足预设条件,在计算得到损失函数值后,判断所述损失函数值是否满足预设要求;若损失函数值满足预设要求,则结束训练;若损失函数值不满足预设要求,则判断所述已训练模型的训练次数是否达到预测次数,若未达到预设次数,则根据所述损失函数值对所述已训练模型的参数进行修正;若达到预设次数,则结束训练。这样通过损失函数值和训练次数来判断已训练模型的训练是否结束,可以避免因损失函数值无法达到预设要求而造成已训练模型的训练进入死循环。
[0172]
需要说明的是,采用损失函数值和训练次数一起来判断所述已训练模型是否满足预设条件时,若所述损失函数值不满足预设要求,且所述已训练模型的训练次数未达到预测次数,则所述已训练模型不满足预设条件。也就是说,采用多种判断方式一起判断所述已训练模型是否满足预设条件时,多种判断方式均不满足时,所述已训练模型不满足预设条件,则继续训练。只要有一种判断方式满足时,则所述已训练模型满足预设条件,例如,采用损失函数值和训练次数一起来判断所述已训练模型是否满足预设条件时,若损失函数值满足预设要求,或者所述已训练模型的训练次数达到预测次数,则所述已训练模型满足预设条件,并结束训练。
[0173]
本发明实施例中,在训练过程中,无论训练到的更新的训练模型如何,优化都需要针对每个迭代通过每个所述神经网络层进行计算。随着训练模型的融合,选择性能较低的神经网络层的可能性降低,为提升训练效率,选择的神经网络层的样本概率小于或等于预设概率时,将其从训练模型中删除。这种策略可以将搜索时间缩短一半。
[0174]
具体的,从已训练模型中,抽取最优结构得到目标神经网络。这里最优结构是指各个所述神经网络模块中抽取样本概率最高的神经网络层。如图9所示,为最后得到的目标神经网络。
[0175]
基于上述训练模型训练方法,本发明实施例中还提供了一种场景识别方法,所述
场景识别方法包括以下步骤:
[0176]
a1、获取待识别图像,根据所述待识别图像的任务类型确定已训练模型;其中,所述已训练模型为上述任意一实施例所述的训练模型,所述已训练模型为基于训练图片集训练得到的;其中,所述训练图片集包括:多组样本图片,每组样本图片均包括一训练图片和所述训练图片对应的期望场景识别标签。
[0177]
具体地,待识别图像的任务类型为场景识别,那么已训练模型的目标任务也是场景识别,也就是说,已训练模型所基于的训练图片集中,是采用训练图片和该训练图片对应的期望场景识别标签,那么得到的是以场景识别为目标任务的已训练模型,因此可以用来执行场景识别任务,以对待识别图像中的场景进行识别。
[0178]
所述待识别图像可以为通过摄像头拍摄得到的图像,也可以为预先设置的图像,还可以为根据接收到的选取操作而确定的图像。在本实施例中,所述待识别图像优选为通过摄像头拍摄得到的图像,例如,所述待识别图像为通过配置有摄像头的手机拍摄得到的人物图像。
[0179]
a2、根据所述已训练模型确定目标神经网络。
[0180]
已训练模型中各神经网络模块的神经网络层的数量并不唯一,也就是说,这样的已训练模型可能仍然是一个大网络,在神经网络模块中选择不同的神经网络层进行连接则会得到不同的神经网络,那么已训练模型中仍然存在多种神经网络,需要从已训练模型中确定目标神经网络后进行应用,也就是说,从多个神经网络中确定一个目标神经网络再进行应用。在已训练模型的每个神经网络模块中确定一个目标神经网络层,这些神经网络层连接形成目标神经网络。
[0181]
步骤a2包括:
[0182]
a21、确定所述已训练模型中各个神经网络层各自分别对应的样本概率。
[0183]
具体地,根据各所述神经网络层的样本概率得到目标神经网络就是从已训练模型中,抽取最优结构得到目标神经网络。针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中每一个神经网络层对应的样本权重参数,确定该神经网络模块中该神经网络层对应的样本值。根据该神经网络模块中所有神经网络层各自分别对应的样本值之和,以及该神经网络模块中每一个神经网络层对应的样本值,确定该神经网络模块中该神经网络层对应的样本概率,以确定该神经网络模块中各个神经网络层各自分别对应的样本概率。
[0184]
具体地,就第i个神经网络模块而言,该神经网络模块中各神经网络层对应的样本权重参数为θ
i,j
=(θ
i,1
,θ
i,2
,θ
i,3

···
,θ
i,j-1
,θ
i,j
),就第i个神经网络模块中第j个神经网络层而言,该神经网络模块中该神经网络层对应的样本值为该第i个神经网络模块中所有神经网络层各自分别对应的样本值之和为其中,m为第i个神经网络模块中神经网络层的数量。就第i个神经网络模块中第j个神经网络层而言,第i个神经网络模块中第j个神经网络层对应的样本值为那么第i个神经网络模块中第j个神经网络层的样本概率为
[0185]
a22、针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层各自分别对应的样本概率,确定目标神经网络层。
[0186]
具体地,针对每一个神经网络模块来说,将该神经网络模块中样本概率最大的神经网络层确定为目标神经网络层。也就是说,神经网络层的样本概率越大,表明该神经网络层的性能越高,因此,确定为目标神经网络层。
[0187]
a23、根据已训练模型中各个目标神经网络层,确定目标神经网络。
[0188]
具体地,将各个目标神经网络层依次连接得到目标神经网络,连接次序与该目标神经网络层所在的神经网络模块的次序一致。在每个神经网络模块中,选定样本概率最大的神经网络层为目标神经网络层,那么最后得到的目标神经网络的性能是最好的。
[0189]
a3、将所述待识别图像输入至所述目标神经网络,通过所述目神经网络对所述待识别图像进行识别得到所述待识别图像对应的场景识别标签。
[0190]
将所述待识别图像输入至目标神经网络后,通过目标神经网络中目标神经网络层对待识别图像进行识别,并输出待识别图像对应的场景识别标签。
[0191]
在一个实施例中,本发明提供了一种计算机设备,该设备可以是终端,内部结构如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现训练模型的训练方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0192]
本领域技术人员可以理解,图10所示的仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0193]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0194]
获取训练模型和训练图片集;其中,所述训练模型包括依次连接的若干个神经网络模块,其中,每个神经网络模块均包括若干个神经网络层;
[0195]
基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数,其中,所述模型参数包括所述已训练模型中各个神经网络层各自分别对应的样本权重参数;
[0196]
若所述已训练模型不满足预设条件,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层的样本权重参数,确定该神经网络模块中的目标神经网络层,并根据所述目标神经网络层,确定该神经网络模块对应的更新神经网络模块,其中,所述更新神经网络模块中包括所述目标神经网络层;
[0197]
根据所述已训练模型中各个神经网络模块各自分别对应的更新神经网络模块,确定所述已训练模型对应的更新模型,并将所述更新模型作为训练模型,继续执行所述基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数的步骤,直至所述已训练模型满足预设条件。
[0198]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0199]
获取训练模型和训练图片集;其中,所述训练模型包括依次连接的若干个神经网络模块,其中,每个神经网络模块均包括若干个神经网络层;
[0200]
基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数,其中,所述模型参数包括所述已训练模型中各个神经网络层各自分别对应的样本权重参数;
[0201]
若所述已训练模型不满足预设条件,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层的样本权重参数,确定该神经网络模块中的目标神经网络层,并根据所述目标神经网络层,确定该神经网络模块对应的更新神经网络模块,其中,所述更新神经网络模块中包括所述目标神经网络层;
[0202]
根据所述已训练模型中各个神经网络模块各自分别对应的更新神经网络模块,确定所述已训练模型对应的更新模型,并将所述更新模型作为训练模型,继续执行所述基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数的步骤,直至所述已训练模型满足预设条件。
[0203]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0204]
上述一种训练模型的训练方法、场景识别方法、计算机设备,所述训练方法包括:获取训练模型和训练图片集;其中,所述训练模型包括依次连接的若干个神经网络模块,其中,每个神经网络模块均包括若干个神经网络层;基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数,其中,所述模型参数包括所述已训练模型中各个神经网络层各自分别对应的样本权重参数;若所述已训练模型不满足预设条件,针对所述已训练模型中每一个神经网络模块,根据该神经网络模块中各个神经网络层的样本权重参数,确定该神经网络模块中的目标神经网络层,并根据所述目标神经网络层,确定该神经网络模块对应的更新神经网络模块,其中,所述更新神经网络模块中包括所述目标神经网络层;根据所述已训练模型中各个神经网络模块各自分别对应的更新神经网络模块,确定所述已训练模型对应的更新模型,并将所述更新模型作为训练模型,继续执行所述基于所述训练图片集对所述训练模型进行训练,得到已训练模型的模型参数的步骤,直至所述已训练模型满足预设条件。为了得到高效神经网络,采用训练模型表示搜索空间,并通过对所述训练模型进行训练得到所述已训练模型的模型参数,由于所述训练模型包括若干个神经网络模块,所述神经网络模块包括若干个神经网络层,本发明通过在训练过程中对神经网络模块进行更新得到更新模型,减少神经网络层是数量,来大幅度降低搜索开销。
再多了解一些

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

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

相关文献