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

模型训练方法、装置、存储介质及电子设备与流程

2021-10-20 00:04:00 来源:中国专利 TAG:人工智能 电子设备 装置 模型 训练


1.本公开涉及人工智能技术领域,特别是涉及一种模型训练方法、装置、存储介质及电子设备。


背景技术:

2.深度学习在图像识别,语音识别,自然语言处理等相关领域都取得很多成果,但是由于深度学习模型计算复杂,效率低,如果对于一些相近的任务,往往都各自使用一个模型,无疑增加了计算量和资源占用。


技术实现要素:

3.根据本公开的一个方面,提供以下技术方案:
4.一种模型训练方法,包括:
5.获取多个数据集;
6.将多个数据集逐个输入初始多任务模型;其中,所述初始多任务模型包含模型参数,所述模型参数包含共享参数和任务参数;其中,所述共享参数为所述初始多任务模型中多个任务共有的模型参数,所述任务参数为所述初始多任务模型中多个任务中每个任务独有的模型参数;
7.基于所述初始多任务模型的输出结果调整所述模型参数,得到训练后的多任务模型。
8.进一步地,根据所述初始多任务模型的输出结果计算损失函数的总损失值,并根据所述损失值对所述多任务模型的模型参数进行调整。
9.进一步地,若每个数据集的任务标签数量为一个,则将该任务标签对应的任务的损失值作为该数据集的损失值,其中,根据每个数据集的损失值计算得到损失函数的总损失值。
10.进一步地,每个数据集包含一个或多个任务标签,若所述数据集的任务标签数量为多个,则将多个任务标签对应的多个任务的损失值之和作为该数据集的损失值,其中,根据每个数据集的损失值计算得到损失函数的总损失值。
11.进一步地,所述总损失值为多个数据集对应的所有任务的损失值之和。
12.进一步地,多个数据集中的每个数据集对应的损失函数乘以c,其中,c为每个数据集占所有数据集的比重。进一步地,所述损失函数中还包含动态系数,其中,所述动态系数可根据当前模型训练自适应调整。
13.进一步地,将所述多个数据集按照第一顺序加载入数据加载器,并将加载入数据加载器中的数据集按照预设批数量进行划分。
14.进一步地,判断是否还存在下一批数据,其中,所述下一批数据为需要从数据加载器输出的数据;若有,则继续输出下一批数据。
15.进一步地,若没有,则所述多个数据集按照第二顺序加载入数据加载器,其中,所
述第一顺序和所述第二顺序不同。
16.进一步地,将所述多个数据集中的部分数据集进行合并,得到多个合并后的数据集;将所述多个合并后的数据集逐个输入初始多任务模型。
17.进一步地,将带有相同任务标签的数据集进行合并。
18.进一步地,将带有相同任务标签比例大于合并阈值的数据集进行合并。
19.进一步地,将所述多个数据集中的部分数据集进行拆分,得到多个拆分后的数据集;将所述多个拆分后的数据集逐个输入初始多任务模型。
20.进一步地,将部分数据集按照任务标签随机拆分得到拆分后的数据集。根据本公开的另一个方面,还提供以下技术方案:
21.进一步地,包括:
22.获取待处理数据,其中,所述待处理数据包含多个数据集,每个数据集包含一个或多个任务标签;
23.利用前述的方法训练得到训练后的多任务模型对所述待处理数据进行处理,得到处理结果。
24.根据本公开的另一个方面,还提供以下技术方案:
25.第一获取模块,用于获取多个数据集;
26.输入装置,用于将所述多个数据集逐个输入初始多任务模型;其中,所述初始多任务模型包括共享参数和任务参数,所述共享参数为多个任务共有的模型参数,所述任务参数为多个任务中每个任务各自独有的模型参数;
27.训练模块,用于基于所述初始多任务模型的输出结果训练所述初始多任务模型,得到训练后的多任务模型。
28.根据本公开的另一个方面,还提供以下技术方案:
29.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述的模型训练方法。
30.根据本公开的另一个方面,还提供以下技术方案:
31.一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,使得所述计算机执行上述任一方法中所述的步骤。
32.本公开实施例提供了模型训练方法、装置、存储介质及电子设备。其中,该模型训练方法包括:获取多个数据集;将多个数据集逐个输入初始多任务模型;其中,初始多任务模型包含模型参数,模型参数包含共享参数和任务参数;其中,共享参数为初始多任务模型中多个任务共有的模型参数,任务参数为初始多任务模型中多个任务中每个任务独有的模型参数;基于初始多任务模型的输出结果调整模型参数,得到训练后的多任务模型。该模型训练方法通过对数据集的逐个学习,每次只利用来自一组数据集的标签,只计算这组数据集所对应任务的学习损失值的方法,实现了同一多任务模型中,不同的数据依次训练不同的任务分支,解决了通常情况下,只能利用同时包含所有任务标签的数据集训练多任务学习模型的情况,极大地提升了可用数据的数量,也解决了逐任务训练的方法中,大量重复输入同一个或者数据集,比如一张图片,解决了模型训练效率低的问题。
附图说明
33.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为根据本公开一个实施例的多任务处理模型的训练方法的流程示意图;
35.图2为根据本公开另一个实施例的多任务处理模型的训练方法的流程示意图;
36.图3为根据本公开一个实施例的多任务处理模型的数据输入流程示意图;
37.图4为根据本公开一个实施例的多任务处理装置的结构示意图;
38.图5为根据本公开一个实施例的多任务处理模型训练的硬件装置的结构示意图。
具体实施方式
39.以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
40.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
41.还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
42.另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
43.由于现有技术中利用人工智能模型进行任务处理时,对于每个单独的任务需要单独训练一个模型。当有多个任务时,需要单独训练一个应用于该任务的模型,而在这多个任务的训练为同一个训练样本时,需要将同一个训练样本分别输入至多个任务对应的多个模型,进行多次计算。因此,如何在训练多个任务处理模型时避免人工智能模型的大量重复计算成为了一些应用领域亟待解决的难题。
44.请参阅图1,图1为本技术实施例提供的模型训练方法的流程示意图。本技术实施例提供的模型训练方法的具体流程可以如下:
45.s102:获取多个数据集。
46.其中,数据集被分为m个,di为其中的一个数据集,其中,0<i≤m,i为正整数。di包含一个或多个任务标签,例如,d2包含了识别人像、动物、风景三个不同的任务。所有数据集所包含的任务大于或者等于人像、动物、风景三个不同的任务,还可以包括其他任务,例如,识别建筑物、植物等。这些数据集是用来训练多任务模型的,并且,样本数据可以是人工标注的,也可以是通过其他方式获得的,比如通过其他神经网络模型来标注的,在此不做限定。
47.其中,di还可以被划为数据量m1,m2,

,mn,所有数据量形成di的总数据量n。
48.本实施例中的多个任务可以是能够对于同一数据进行不同处理的任务,并且多个任务的处理结果之间可以互不影响。例如,本实施例中多个任务可以包括用于识别人像第一任务、用于识别动物的第二任务、用于识别风景的第三任务等。
49.s104:将多个数据集逐个输入初始多任务模型。
50.其中,初始多任务模型包括共享参数和任务参数,共享参数为多个任务共有的模型参数,任务参数为多个任务中每个任务各自独有的模型参数。
51.其中,将多个数据集逐个输入初始多任务模型中,每个数据集di分别对初始多任务模型进行训练;利用数据集di训练过程中,di的数据量m1,m2,

,mn会被输入到初始多任务模型中,总数据量为n。
52.本公开实施例中,将多个数据集按照第一顺序加载入数据加载器,并将加载入数据加载器中的数据集按照预设批数量进行划分。其中,图2示出了训练过程,将多个数据集进行编号,如i=1、2、

、n,在编号之后,按照第一顺序,如数据集d1、数据集d2、数据集d3、

、数据集dn,依照该顺序逐个将数据集输入到模型中。数据集d1对应图2中的数据集1,数据集d2对应图2中的数据集2,其他同理;此外,第一顺序不作具体限定,可以是多种排序方式。
53.多个数据集包含了所有的任务标签,即将所有的数据集输入初始模型之后,所有任务都进行了学习训练,并得到了所有的损失函数值。
54.请参见图3,将加载入数据加载器中的数据集按照预设批数量进行划分之后,判断是否还存在下一批数据,其中,下一批数据为需要从数据加载器输出的数据;如果有,则继续输出下一批数据。从而能够将所有的数据集都输入到初始多任务模型中去,保证所有的数据都能被利用到。
55.如果判断不存在下一批数据,则多个数据集按照第二顺序加载入数据加载器,其中,第一顺序和第二顺序不同。第二顺序可以是按照数据集d2、数据集d5、数据集d3、

、数据集dn,或者第二顺序是随机产生的,不对其顺序做限定。
56.在按照第二顺序将所有的数据集都输入到初始多任务模型之后,可以再按照第三顺序将所有的数据集再输入到初始多任务模型中去,第三顺序和第一顺序以及第二顺序都不相同,第三顺序可以是随机产生的,也可以是按照某种特定的顺序。
57.本公开实施例中,还可以将多个数据集中的部分数据集进行合并,得到多个合并后的数据集;
58.将多个合并后的数据集逐个输入初始多任务模型。其中合并后的数据集是按照任务标签进行合并的,合并之后的数据集包含一个或多个任务标签。
59.其中,合并方式可以是将带有相同任务标签比例大于合并阈值的数据集进行合并。比如,数据集d1包含10个任务标签,数据集d2包含8个任务标签,这两个数据集之间相同的任务标签数量为6个,相同任务标签占d1总任务标签数量的60%,相同任务标签占d2总任务标签数量的75%,取最小的相同任务标签占数据集任务标签数量的占比60%,且如果合并阈值此处设置为50%,则由于带有相同任务标签比例大于合并阈值,所以讲数据集d1和d2进行合并。
60.通过合并之后,原本的多个数据集的个数会减小,从而训练的次数可以减小,但每个任务仍然会被训练,并得到了每个任务对应的损失函数值。
61.s106:基于初始多任务模型的输出结果训练初始多任务模型,得到训练后的多任务模型。
62.本公开实施例中,根据初始多任务模型的输出结果计算损失函数的损失值,并根据损失值对多任务模型的模型参数进行调整。模型训练过程中,将所有的数据集都输入到初始都任务模型之后,会得到每个数据集对应的任务的输出结果,根据所有的这些结果训练初始多任务模型,更新共享参数和任务参数,当模型收敛之后,从而得到训练后的多任务模型。
63.本公开实施例中,根据初始多任务模型的输出结果计算损失函数的总损失值,并根据损失值对多任务模型的模型参数进行调整。
64.每个数据集包含一个或多个任务标签,在每个数据集的任务标签数量为一个时,根据损失函数的损失值更新共享参数和多个任务对应的任务参数。
65.如果数据集任务标签数据为一个,则该种情况下计算损失函数的损失值比较简单,在计算某个数据集对应的损失值时,只需要计算对应的某个任务标签的损失值。例如,数据集d2包含的任务标签只有人像识别任务,则只需要将数据集d2输入到数据加载器中,然后所有的d2中的数据会流向人像识别任务,在计算该任务的损失函数时,只需要计算人脸识别任务的损失值即可。
66.本公开实施例中,在数据集的任务标签数量为多个时,根据多个任务标签分别得到的累积损失值更新共享参数和多个任务对应的任务参数。
67.如果数据集任务标签数据为多个,则该种情况下计算损失函数的损失值过程稍微多一些,在计算某个数据集对应的损失值时,需要计算所有的任务标签的损失值。例如,数据集d2包含的任务标签有人像识别任务、动物识别任务、风景识别任务三个任务,则需要将数据集d2输入到数据加载器中,然后所有的d2中的数据会流向人像识别任务、动物识别任务、风景识别任务三个任务,在计算这三个任务的损失函数时,需要计算这三个任务标签分别得到的累积损失值。在计算完成之后,更新共享参数和多个任务对应的任务参数。
68.本公开实施例中,总损失值为多个数据集对应的所有任务的损失值之和。损失函数表示为:
[0069][0070]
其中,l
mtl
代表多任务模型的联合损失,li,j代表数据集di中任务j的损失值,c
i
代表数据集di在所有数据集中所占的比重。
[0071]
其中,m
i
为数据集的数据量,可以分为m1,m2,

,mn,数据集的总数据量为n。
[0072]
例如,当数据集d2含有三个任务标签,即人像识别任务、动物识别任务、风景识别任务三个任务标签,则l
mtl
为d2中人像识别任务、动物识别任务、风景识别任务的损失函数之和,即l
mtl
=c1l2j1 c1l2j2 c1l2j3。
[0073]
本公开实施例中,损失函数中还包含动态系数,其中,动态系数可根据当前模型训练自适应调整。例如,可以根据上一循环中对应任务在验证集上的损失值大小对当前循环中的损失值的大小进行动态调整。
[0074]
本技术实施例提供的模型训练方法的具体流程可以如下:
[0075]
获取待处理数据;
[0076]
利用前述的方法训练得到的训练后的多任务模型对待处理数据进行处理,得到多个任务处理结果。
[0077]
其中,待处理数据并不是用来训练初始多任务模型的,此时模型已经训练完毕,共享参数和任务都已经设置完毕;将需要处理的待处理数据输入到模型中,即可根据训练后的多任务模型进行数据处理,得到多个任务处理结果。
[0078]
下面将结合附图4,对本技术实施例提供的模型训练装置进行详细介绍。本技术实施例提供的模型训练装置可以如下:
[0079]
一种模型训练装置,包括:
[0080]
第一获取模块301,用于获取多个数据集;
[0081]
在可选的实现方式中,数据集被分为m个,di为其中的一个数据集,其中,0<i≤m,i为正整数。di包含一个或多个任务标签,例如,d2包含了识别人像、动物、风景三个不同的任务。所有数据集所包含的任务大于或者等于人像、动物、风景三个不同的任务,还可以包括其他任务,例如,识别建筑物、植物等。这些数据集是用来训练多任务模型的,并且,样本数据可以是人工标注的,也可以是通过其他方式获得的,比如通过其他神经网络模型来标注的,在此不做限定。
[0082]
其中,di被划为数据量m1,m2,

,mn和总数据量n。
[0083]
在可选的实现方式中,多个任务可以是能够对于同一数据进行不同处理的任务,并且多个任务的处理结果之间可以互不影响。例如,本实施例中多个任务可以包括用于识别人像第一任务、用于识别动物的第二任务、用于风景的第三任务等。
[0084]
输入模块302,用于将多个数据集逐个输入初始多任务模型;其中,初始多任务模型包括共享参数和任务参数,共享参数为多个任务共有的模型参数,任务参数为多个任务中每个任务各自独有的模型参数;
[0085]
其中,将多个数据集逐个输入初始多任务模型中,每个数据集di分别对初始多任务模型进行训练;利用数据集di训练过程中,di的数据量m1,m2,

,mn会被输入到初始多任务模型中,总数据量为n。
[0086]
在可选的实现方式中,将所述多个数据集按照第一顺序加载入数据加载器,并将加载入数据加载器中的数据集按照预设批数量进行划分。其中,图2示出了训练过程图,将多个数据集进行编号,如数据集di=1、2、

、n,在编号之后,按照第一顺序,如数据集d1、数
据集d2、数据集d3、

、数据集dn,依照该顺序逐个将数据集输入到模型中。
[0087]
多个数据集包含了所有的任务标签,即将所有的数据集输入初始模型之后,所有任务都进行了学习训练,并得到了所有的损失函数值。
[0088]
在可选的实现方式中,将加载入数据加载器中的数据集按照预设批数量进行划分之后,判断是否还存在下一批数据,其中,所述下一批数据为需要从数据加载器输出的数据;如果有,则继续输出下一批数据。从而能够将所有的数据集都输入到初始多任务模型中去,保证所有的数据都能被利用到。
[0089]
在可选的实现方式中,如果判断不存在下一批数据,则多个数据集按照第二顺序加载入数据加载器,其中,第一顺序和第二顺序不同。第二顺序可以是按照数据集d2、数据集d5、数据集d3、

、数据集dn,或者第二顺序是随机产生的,不对其顺序做限定。
[0090]
在按照第二顺序将所有的数据集都输入到初始多任务模型之后,可以再按照第三顺序将所有的数据集再输入到初始多任务模型中去,第三顺序和第一顺序以及第二顺序都不相同,第三顺序可以是随机产生的。
[0091]
训练模块303,用于基于初始多任务模型的输出结果训练初始多任务模型,得到训练后的多任务模型。
[0092]
在可选的实现方式中,根据初始多任务模型的输出结果计算损失函数的损失值,并根据损失值对多任务模型的模型参数进行调整调整。模型训练过程中,将所有的数据集都输入到初始都任务模型之后,会得到每个数据集对应的任务的输出结果,根据所有的这些结果训练初始多任务模型,更新共享参数和任务参数,当模型收敛之后,从而得到训练后的多任务模型。
[0093]
在可选的实现方式中,数据集包含一个或多个任务标签,在每个数据集的任务标签数量为一个时,根据损失函数的损失值更新共享参数和多个任务对应的任务参数。
[0094]
如果数据集任务标签数据为一个,则该种情况下计算损失函数的损失值比较简单,在计算某个数据集对应的损失值时,只需要计算对应的某个任务标签的损失值。例如,数据集d2包含的任务标签只有人像识别任务,则只需要将数据集d2输入到数据加载器中,然后所有的d2中的数据会流向人像识别任务,在计算该任务的损失函数时,只需要计算人脸识别任务的损失值即可。
[0095]
在可选的实现方式中,还包括,第二获取模块,用于获取待处理数据;
[0096]
在可选的实现方式中,待处理数据并不是用来训练初始多任务模型的,此时模型已经训练完毕,共享参数和任务都已经设置完毕;将需要处理的待处理数据输入到模型中,即可根据训练后的多任务模型进行数据处理。
[0097]
处理模块,用于利用前述的方法训练得到训练后的多任务模型对待处理数据进行处理,得到处理结果。
[0098]
本技术实施例提供的电子设备40可以如下:
[0099]
一种电子设备,如图5,包括处理器41和存储器42,存储器42存储有计算机程序,处理器41通过调用计算机程序,用于执行前述的模型训练方法。
[0100]
本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、dvd、cd

rom、微型驱动器以及磁光盘、rom、ram、eprom、eeprom、dram、
memory,ram)、磁盘或光盘等。
[0110]
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜