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

深度学习模型训练方法、系统及介质与流程

2022-05-27 02:39:11 来源:中国专利 TAG:


1.本发明涉及深度学习、自动机器学习、目标检测、图像处理领域,特别涉及一种深度学习模型训练方法、系统及介质。


背景技术:

2.海量的ai应用场景需要在不同算力平台上部署大量的ai模型,新的网络模型如transformer架构的网络也层出不穷。然而,现有高准确率的深度学习模型的参数量与计算量都在迅速上升,只能在高算力的平台上运行,无法满足在各种算力的硬件上部署的需求。模型压缩技术虽然可以让深度学习模型在低算力平台上运行,但不同型号的算力平台的部署要求均不相同,迁移到不同平台都需要重新对深度学习模型重新训练,无法满足大规模部署ai模型的需求。


技术实现要素:

3.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种深度学习模型训练方法,能够将深度学习网络进行改造,可以从基础网络中得到各种宽度与深度的新深度学习模型,并通过一种渐进训练方法实现一次训练即可满足不同算力平台部署的需求。
4.本发明还提出一种深度学习模型训练系统。
5.本发明还提出一种实施上述深度学习模型训练方法的计算机可读存储介质。
6.根据本发明的第一方面实施例的深度学习模型训练方法,包括以下步骤:对深度学习模型做可变维度变化处理并训练,得到多个满足不同算力平台部署需求的深度学习模型;其中,可变维度变化处理包括但不限于以下维度,也包括可变维度的组合变化:宽度变化处理、深度变化处理、卷积核大小变化处理、attention head的数量变化处理以及embedding维度变化处理。
7.根据本发明实施例的深度学习模型训练方法,至少具有如下有益效果:本发明实施例的方法通过将深度学习模型和训练流程进行改造,实现一次训练即可满足不同算力平台部署的需求。
8.根据本发明的一些实施例,所述宽度变化处理包括:根据采样策略对所述深度学习模型的n种变换中采样多次变换生成多个新层,将第i次变换生成的层各自串联,形成多个新的深度学习模型;其中n,i为正整数;其中,所述变换包括对所述深度学习模型的神经网络层的输入宽度和输出宽度做变换,保留第一比例的输入进入神经网络,保留第二比例的输出进入下一层网络。
9.根据本发明的一些实施例,所述深度变化处理包括:根据采样策略对所述深度学习模型采样不同深度,采样多次,根据采样结果丢弃某些层,保留层各自串联,得到多个新的深度学习模型。
10.根据本发明的一些实施例,所述深度学习模型做可变维度变化处理并训练包括:
训练可变维度变化的深度学习模型,对深度学习模型进行多种可变维度变化处理并训练,具体包括:选取k种可变维度变化处理并排序,其中,k是正整数且k≤5;对已训练的初始深度学习模型进行第1次可变维度变化处理,并训练得到的多个新的深度学习模型,直至总体迭代次数达到预设阈值,得到多个已训练的第1次变化深度学习模型;对第k次变化深度学习模型进行第k 1可变维度变化处理,并训练得到的多个新的深度学习模型,直至总体迭代次数达到预设阈值,得到多个已训练的第k 1次变化深度学习模型;其中,k代表可变维度变化处理次序。
11.根据本发明的一些实施例,所述对深度学习模型做可变维度变化处理并训练包括:可变维度变化处理步骤:对所述初始深度学习模型做多种可变维度变化处理,得到多个可变维度变化的深度学习模型;训练步骤:将训练图片输入所有可变维度变化的深度学习模型进行训练,计算loss和梯度,将所有得到的梯度信息做平均来更新深度学习模型的参数;返回所述可变维度变化处理步骤,直至深度学习模型的总体迭代次数达到预设阈值。
12.根据本发明的一些实施例,对深度学习模型做可变维度变化处理并训练包括:s1、对深度学习模型进行可变维度变化处理,得到m个新的深度学习模型;其中,m为正整数;s2、将训练图片输入得到的m个深度学习模型,输出m个模型预测值;s3、根据所述m个模型预测值与所述训练图片对应的标注计算损失函数并相加,并通过梯度下降算法更新所述m个深度学习模型的参数以及对应变换包含的参数;s4、返回步骤s1,直至各个所述深度学习模型的总体迭代次数达到预设阈值。
13.根据本发明的一些实施例,所述采样策略至少包括以下各项中的一项:固定采样、随机采样、按stage采样、依某种概率分布采样以及固定采样与随机采样混合。
14.根据本发明的第二方面实施例的深度学习模型训练系统,包括:可变维度变化处理模块,用于对深度学习模型做可变维度变化处理,训练模块,用于训练深度学习模型;其中,所述可变维度变化处理模块至少包括以下各单元中的两个或多个:宽度变化处理单元,用于对深度学习模型进行宽度变化处理;深度变化处理单元,用于对深度学习模型进行深度变化处理;卷积核大小变化处理单元,用于对深度学习模型进行卷积核大小变化处理;attention head数量变化处理单元,用于对深度学习模型进行attention head数量变化处理;以及embedding维度变化处理单元,用于对深度学习模型进行embedding维度变化处理。
15.根据本发明实施例的深度学习模型训练系统,至少具有如下有益效果:本发明实施例的系统通过将深度学习模型结构训练流程进行改造,实现一次训练即可满足不同算力平台部署的需求。
16.根据本发明的一些实施例,所述可变维度变化处理模块包括采样策略单元,用于选择采样策略,所述采样策略至少包括以下各项中的一项:固定采样、随机采样、按stage采样、依某种概率分布采样以及固定采样与随机采样混合。
17.根据本发明的第三方面实施例的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明的第一方面实施例中任一项的方法。
18.由于本发明实施例的计算机可读存储介质上存储有用于执行如本发明第一方面中任一项所述的深度学习模型训练方法的计算机可执行指令,因此具有本发明第一方面的所有有益效果。
19.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变
得明显,或通过本发明的实践了解到。
附图说明
20.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
21.图1为本发明实施例的基础transformer模型结构示意图;
22.图2为本发明实施例的变换操作的示意图;
23.图3为本发明一实施例的渐进式训练方法的流程示意图;
24.图4为本发明实施例的基于采样策略的宽度变化示意图;
25.图5为本发明实施例的系统的模块示意框图。
具体实施方式
26.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
27.在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个及两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
28.本发明的深度学习模型训练方法包括以下步骤:对深度学习模型做可变维度变化处理并训练,得到多个满足不同算力平台部署需求的深度学习模型。
29.其中,可变维度变化处理包括但不限于以下维度,也包括可变维度的组合变化:宽度变化处理、深度变化处理、卷积核大小变化处理、attention head的数量变化处理以及embedding维度变化处理。
30.在一些实施例中,宽度变化处理包括:根据采样策略对深度学习模型的n种变换中采样多次变换生成多个新层,将第i次变换生成的层各自串联,形成多个新的深度学习模型;其中n,i为正整数;其中,变换包括对深度学习模型的神经网络层的输入宽度和输出宽度做变换,保留第一比例的输入进入神经网络,保留第二比例的输出进入下一层网络。本实施例的神经网络层包括全连接层、卷积层等。
31.在一些实施例中,深度变化处理包括:根据采样策略对深度学习模型采样不同深度,采样多次,根据采样结果丢弃某些层,保留层各自串联,得到多个新的深度学习模型。
32.在一些实施例中,对深度学习模型做可变维度变化处理并训练包括:选取k种可变维度变化处理并排序,其中,k是正整数且k≤5;对深度学习模型进行第1次可变维度变化处理,并训练得到的多个新的深度学习模型,直至总体迭代次数达到预设阈值,得到多个已训练的第1次变化深度学习模型;对第k次变化深度学习模型进行第k 1可变维度变化处理,并训练得到的多个新的深度学习模型,直至总体迭代次数达到预设阈值,得到多个已训练的第k 1次变化深度学习模型;其中,k代表可变维度变化处理次序。
33.在一些实施例中,对深度学习模型做可变维度变化处理并训练包括:可变维度变化处理步骤:对深度学习模型做多种可变维度变化处理,得到多个可变维度变化的深度学
习模型;训练步骤:将训练图片输入所有可变维度变化的深度学习模型进行训练,计算loss和梯度,将所有得到的梯度信息做平均来更新深度学习模型的参数;返回可变维度变化处理步骤,直至深度学习模型的总体迭代次数达到预设阈值。
34.在一些实施例中,对深度学习模型做可变维度变化处理并训练包括:s1、对深度学习模型进行可变维度变化处理,得到m个新的深度学习模型;其中,m为正整数;s2、将训练图片输入得到的m个深度学习模型,输出m个模型预测值;s3、根据m个模型预测值与训练图片对应的标注计算损失函数并相加,并通过梯度下降算法更新m个深度学习模型的参数以及对应变换包含的参数;s4、返回步骤s1,直至各个深度学习模型的总体迭代次数达到预设阈值。
35.在一些实施例中,采样策略至少包括以下各项中的一项:固定采样、随机采样、按stage采样、依某种概率分布采样以及固定采样与随机采样混合。
36.下面本发明实施例以transformer模型为例说明本发明的深度学习模型训练方法。
37.本发明实施例将transformer的网络进行改造,可以从基础transformer中得到各种宽度与深度的新transformer;针对改进后的transformer提出一种渐进训练方法,实现一次训练即可满足不同算力平台部署的需求。
38.对transformer网络或基于transformer的变异网络做可变维度变化处理并训练,得到多个满足不同算力平台部署需求的transformer模型。
39.其中,可变维度变化处理至少包括以下各项中的两项或多项:transformer模型的宽度变化处理、transformer模型的深度变化处理、attention head的数量变化处理以及embedding维度变化处理。
40.宽度变化:基础transformer网络的每一层lold包含n种可能的变换(变换可以是线性变换、非线性变换或恒等变换等),每种变换都可以将对应的层转换成一个新层lnew,lnew的宽度可能与lold不同。
41.深度变化:将变换得到的新层随机丢弃,将保留的层按顺序串联,形成新的transformer结构。
42.attention head的数量变化:对transformer网络每一层采取采样策略对attention head的数量进行采样,保留一定数量的attention head。
43.embedding维度变化:每一个transformer网络的输入包含一层embedding层,为一个全连接神经网络,对其宽度进行变换,改变其维度。
44.本实施例的方法对transformer类型的结构均可生效,包括但不限于vision transformer、swin transformer、bert等结构。
45.参照图1,以最基础的vison transformer来阐述一个宽度变化、attention head的数量变化的例子。vision transformer的一层结构如图1所示。图1中,vision transformer包括全连接神经网络(mlp),层归一化(norm),和多头注意力层(multi-head attention)。其中全连接神经网络可以通过变换来更改输出层的宽度,多头注意力层可以通过变换改变attention head数量。
46.参照图2,假设想将mlp层的输入宽度和输出宽度做个变换,输入宽度为上一层输出的宽度,输出宽度为原宽度的75%,则一个宽度变换示例如图2所示。即在输入时,只保留
前50%的输入进入mlp,只保留前75%的输出进入下一层网络。
47.multi-head attention使用多个注意力头(如7个)来进行计算,而可变的multi-head attention可以通过减少注意力头的方式减少网络计算量,如只保留前6个注意力头的结果参与到下一步运算中。同样,保留的动作就是一个变换。
48.改造后的transformer可以直接生成不同宽度、不同深度、不同attention head数量及不同embedding维度的新transformer模型。由于不同宽深的transformer模型适配不同算力,因此生成的transformer模型可以直接满足不同算力平台部署的需求。
49.本发明实施例提供两种训练方法,第一种是可变维度的渐进式训练方式;第二种为所有可变维度一起训练。
50.下面实施例详细介绍第一种训练方法。
51.以下实施例选取两种可变维度:宽度变化和深度变化改造网络。
52.参照图3,本发明实施例的方法包括以下步骤:
53.a.正常训练基础transformer模型至收敛,具体训练步骤为:
54.1.将训练图片输入transformer,输出模型预测值。
55.2.模型预测值与训练图片对应的标注计算损失函数,并使用梯度下降算法更新transformer参数。
56.3.重复1和2至基础transformer模型收敛。
57.b.采样训练宽度变化的transformer模型进行训练,具体训练步骤为:
58.1.训练好的基础transformer模型的每一层包含n种变换,对于每一层的变换,使用某种采样策略从n种变换中随机采样m种变换生成m个新层(采样策略包含固定采样、随机采样、依某种分布采样、固定采样与随机采样混合等)。其中,m的大小根据需要部署的平台的算力估算得到,一般为4~8。
59.进一步参照图4,在一些实施例中,根据某一采样策略,在采样的m次中有x次(例如x=2或3)是采样到固定宽度的网络,如第一次总是采样到基础transformer,第二次总是采样到最小宽度的transformer,第三次总是采样到某个固定宽度的transformer,剩下的采样完全随机采样。将第i次变换生成的层各自串联,形成m个新的transformer模型。
60.2.将训练图片输入新的transformer,输出m个模型预测值。
61.3.m个模型预测值与训练图片对应的标注计算损失函数并相加,并使用梯度下降算法更新transformer参数与对应变换包含的参数。
62.4.重复1、2、3至总体迭代次数满足指定阈值。
63.c.采样训练深度变化的transformer模型:
64.1.对训好的宽度变化的transformer模型采用某种采样策略(包含固定采样、随机采样、依某种分布采样、固定采样与随机采样混合、空采样等)随机扔掉m个transformer模型的某些层。在一些实施例中,采用某一采样策略:第一次不丢弃,采样到基础transformer,第二次丢弃最多的层,采样到最小深度的transformer,第三次总是采样到某个固定深度的transformer,剩下的为随机丢弃。保留的层的宽度是按照b.1步采样得到的,注意这时保留层的采样宽度只采样一次。最后将保留层各自串联,形成m个新的transformer模型。
65.2.将训练图片输入新的transformer,输出m个模型预测值。
66.3.m个模型预测值与训练图片对应的标注计算损失函数并相加,并使用梯度下降算法更新transformer参数与对应变换包含的参数。
67.4.重复1、2、3至总体迭代次数满足指定阈值。
68.需要注意的是,本实施例的渐进式训练方法不仅仅局限于宽度变换和深度变化,在一些实施例中,获得宽度变化和深度变化的训练好的transformer模型后,可以对transformer模型采用上述的一种或多种采样策略,对transformer模型进行attention head的数量变化处理以及embedding维度变化处理,并参照上述的渐进式训练方式对变化处理后的transformer模型进行训练。
69.需要注意的是,本实施例的transformer网络改造包括多种可变维度,宽度、深度、attention head的数量以及embedding维度,这四种可变维度的变化顺序不定,例如上述实施例中,可以先进行深度变化再进行宽度变化。
70.由于transformer模型的训练时间长,本实施例的渐进式训练方法可以避免transformer模型的训练出错造成浪费时间,通过渐进式训练方法可以保留各阶段训练好的transformer模型。
71.本发明实施例的第二种训练方式是第二种为所有可变维度一起训练。下面以一个实施例为说明。
72.给定一个随机初始化的transformer模型,输入一张图片进入transformer模型,从最大的transformer模型中以某种采样策略采样出m个transformer,这m个transformer的宽、深、attention head的数量、embedding维度可能不相同。一个推荐的采样策略为第一次总是采样到最大的transformer,第二次总是采样到最小的transformer(宽、深、attention head数量、embedding维度均为最小),第三、四、
……
、k(k《m)次总是采样到某个固定的transformer,剩下则为随机采样transformer模型;其中不同的宽度、深度、attention head数量、embedding维度的变化过程和上述实施例阐述一致,即每一层中包含几种变换来控制宽度的变化和attention head数量的变化;embedding层包含几种变换来控制embedding维度的变化;对网络深度进行几种变换来控制深度的变化(如变换为随机扔掉transformer模型的某些层)。这些变换可以包含参数,也可以没有参数。
73.给定输入,将所有的transformer模型采样完成后,将输入输入到所有的模型中进行前向传播并计算loss和梯度,并将所有的梯度信息做平均来更新transformer的参数。该过程重复至达到固定迭代步数即可。
74.与前述实施例相对应,本发明还提供了系统的实施例。对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
75.参照图5,本发明实施例的系统包括:可变维度变化处理模块,用于对深度学习模型做可变维度变化处理;训练模块,用于训练深度学习模型。
76.其中,可变维度变化处理模块至少包括以下各单元中的两个或多个:宽度变化处理单元,用于对深度学习模型进行宽度变化处理;深度变化处理单元,用于对深度学习模型进行深度变化处理;卷积核大小变化处理单元,用于对深度学习模型进行卷积核大小变化处理;attention head数量变化处理单元,用于对深度学习模型进行attention head数量变化处理;以及embedding维度变化处理单元,用于对深度学习模型进行embedding维度变化处理。
77.在一些实施例中,可变维度变化处理模块包括采样策略单元,用于选择采样策略,采样策略至少包括以下各项中的一项:固定采样、随机采样、按stage采样、依某种概率分布采样以及固定采样与随机采样混合。
78.尽管本文描述了具体实施方案,但是本领域中的普通技术人员将认识到,许多其它修改或另选的实施方案同样处于本公开的范围内。例如,结合特定设备或组件描述的功能和/或处理能力中的任一项可以由任何其它设备或部件来执行。另外,虽然已根据本公开的实施方案描述了各种例示性具体实施和架构,但是本领域中的普通技术人员将认识到,对本文所述的例示性具体实施和架构的许多其它修改也处于本公开的范围内。
79.上文参考根据示例性实施方案所述的系统、方法、系统和/或计算机程序产品的框图和流程图描述了本公开的某些方面。应当理解,框图和流程图中的一个或多个块以及框图和流程图中的块的组合可分别通过执行计算机可执行程序指令来实现。同样,根据一些实施方案,框图和流程图中的一些块可能无需按示出的顺序执行,或者可以无需全部执行。另外,超出框图和流程图中的块所示的那些部件和/或操作以外的附加部件和/或操作可存在于某些实施方案中。
80.因此,框图和流程图中的块支持用于执行指定功能的装置的组合、用于执行指定功能的元件或步骤的组合以及用于执行指定功能的程序指令装置。还应当理解,框图和流程图中的每个块以及框图和流程图中的块的组合可以由执行特定功能、元件或步骤的专用硬件计算机系统或者专用硬件和计算机指令的组合来实现。
81.本文所述的程序模块、应用程序等可包括一个或多个软件组件,包括例如软件对象、方法、数据结构等。每个此类软件组件可包括计算机可执行指令,所述计算机可执行指令响应于执行而使本文所述的功能的至少一部分(例如,本文所述的例示性方法的一种或多种操作)被执行。
82.软件组件可以用各种编程语言中的任一种来编码。一种例示性编程语言可以为低级编程语言,诸如与特定硬件体系结构和/或操作系统平台相关联的汇编语言。包括汇编语言指令的软件组件可能需要在由硬件架构和/或平台执行之前由汇编程序转换为可执行的机器代码。另一种示例性编程语言可以为更高级的编程语言,其可以跨多种架构移植。包括更高级编程语言的软件组件在执行之前可能需要由解释器或编译器转换为中间表示。编程语言的其它示例包括但不限于宏语言、外壳或命令语言、作业控制语言、脚本语言、数据库查询或搜索语言、或报告编写语言。在一个或多个示例性实施方案中,包含上述编程语言示例中的一者的指令的软件组件可直接由操作系统或其它软件组件执行,而无需首先转换成另一种形式。
83.软件组件可存储为文件或其它数据存储构造。具有相似类型或相关功能的软件组件可一起存储在诸如特定的目录、文件夹或库中。软件组件可为静态的(例如,预设的或固定的)或动态的(例如,在执行时创建或修改的)。
84.上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
再多了解一些

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

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

相关文献