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

迁移学习方法、装置、设备及存储介质与流程

2022-08-17 20:29:36 来源:中国专利 TAG:


1.本技术涉及但不限于计算机视觉技术领域,尤其涉及一种迁移学习方法、装置、设备及存储介质。


背景技术:

2.大量实验证明,在大规模数据集上进行预训练的模型有很好的泛化能力。研究者尝试将具有强大表示能力的预训练模型迁移到下游任务上,从而提升下游任务指标。但实际在某些业务场景下,如下游数据量比较少的情况下,直接基于预训练模型微调会导致最终模型在某些类型的下游任务上表现比较差;或者在云端服务下,由于资源限制等原因,常常要求将预训练模型的骨干网络(backbone)层冻结,而只微调基于特定下游任务的头部网络(head),以降低内存和计算量,但这亦会导致最终模型的表现下降。


技术实现要素:

3.有鉴于此,本技术实施例至少提供一种迁移学习方法、装置、设备及存储介质。
4.本技术实施例的技术方案是这样实现的:
5.一方面,本技术实施例提供一种迁移学习方法,所述方法包括:
6.获取原始数据集和任务数据集;确定所述原始数据集在所述任务数据集所涉及的域上划分的目标子集;获取利用所述目标子集训练得到的第一网络模型;其中,所述第一网络模型为基于预训练模型和第一头部网络搭建的;所述预训练模型为利用所述原始数据集训练得到的;利用所述任务数据集,训练搭建的第二网络模型,得到完成训练的第二网络模型;其中,所述第二网络模型为基于所述第一网络模型和第二头部网络搭建的。
7.上述实施例中,首先获取源域的原始数据集和目标域的任务数据集,然后判定任务数据集属于原始数据集划分的哪个域,并确定在该相应域上对原始数据集划分的目标子集,再获取预先利用目标子集训练得到的第一网络模型,最后基于第一网络模型和第二头部网络搭建第二网络模型,对任务数据集进行迁移学习。从而能够复用预训练模型参数,实现基于参数知识的迁移学习。同时,在传统预训练结束之后先基于第一网络模型中的第一头部网络分别学习源域中各子数据集的基于域的参数,这些基于域的参数能够在下游迁移时达到一个特征选择的作用,从而减缓上下游数据集域差异较大所造成的模型直接迁移困难的情况。
8.在一些可能的实施例中,所述确定所述原始数据集在所述任务数据集所涉及的域上划分的目标子集,包括:对所述原始数据集进行聚类,得到n个域对应的子数据集;n为大于或等于2的整数;从所述n个子数据集中确定出与所述任务数据集属于同一个域的目标子集。
9.上述实施例中,首先通过聚类对原始数据集进行细化,划分为属于各个域的子数据集,再将任务数据集判定为原始数据集中某一个域的数据子集,从而在迁移时可以利用该域对应的已训练第一网络模型进行特征选择,减小原始数据集与任务数据集之间域差异
太大导致的迁移效果下降的问题。
10.在一些可能的实施例中,所述从所述n个子数据集中确定与所述任务数据集属于同一个域的目标子集,包括:从所述n个子数据集对应的n个域中,确定所述任务数据集中每帧图像所属的域;按照所述任务数据集中各帧图像所属的域在所述n个域中的占比,确定所述任务数据集对应的目标域;将所述n个子数据集中所述目标域对应的子数据集作为所述目标子集。
11.上述实施例中,首先确定任务数据集中每帧图像属于n个域中的某一个特定域,然后通过统计任务数据集中所有图像占比最多的域为目标域,从而确定出目标域对应的子数据集为与所述任务数据集属于同一个域的目标子集。这样,能够准确判定任务数据集所在域对应于原始数据集中划分的目标域以及对应目标子集。
12.在一些可能的实施例中,所述从所述n个子数据集对应的n个域中,确定所述任务数据集中每帧图像所属的域,包括:确定所述任务数据集中每帧图像与所述n个子数据集的类中心之间的第一距离;其中,所述类中心的取值为所述子数据集中所有数据在各维度上的平均值;在存在所述第一距离满足预设阈值的目标类中心的情况下,确定所述每帧图像属于所述目标类中心对应的域。
13.上述实施例中,通过计算任务数据集中每帧图像与n个子数据集的类中心之间的第一距离,确定每帧图像属于哪一个域,从而便于后续进一步判定整个任务数据集对应于原始数据集中划分的某个域,以实现迁移时准确选择该域已训练的第一网络模型。
14.在一些可能的实施例中,所述第一网络模型是通过以下步骤训练得到的:利用所述原始数据集对骨干网络进行预训练,得到所述预训练模型;针对所述每一个域对应的子数据集,在所述预训练模型的网络结构的基础上添加所述第一头部网络,得到搭建的相应域的第一网络模型;利用所述每一个域对应的子数据集训练所述第一头部网络,得到已训练的所述第一网络模型。
15.上述实施例中,在利用原始数据集训练得到预训练模型之后添加第一头部网络,并分别利用每个域对应的子数据集训练该第一头部网络,从而实现对原始数据集中各个域的子数据集进行基于域的参数学习,这样训练完成的第一网络模型中基于域的参数能够在下游迁移时起到特征选择的作用。
16.在一些可能的实施例中,所述利用所述每一个域对应的子数据集训练所述第一头部网络,得到相应域对应的所述第一网络模型,包括:通过所述第一网络模型对所述子数据集进行处理,输出所述子数据集的预测结果;基于所述子数据集的预测结果和所述子数据集携带的标签,确定所述子数据集通过所述第一网络模型的第一损失;基于所述第一损失,在固定所述第一网络模型中骨干网络的参数的情况下,更新所述第一网络模型中所述第一头部网络的参数,直至所述第一损失达到收敛条件,得到已训练的所述第一网络模型。
17.上述实施例中,在固定所述第一网络模型中骨干网络的参数的情况下,利用每一个域对应的子数据集对第一网络模型中的第一头部网络进行反向传播训练,在第一损失达到收敛条件时第一头部网络的基于域的参数达到最优,得到已训练的第一网络模型。从而通过对应域的子数据集学习基于域的参数,旨在后续迁移时通过已经学好的基于域的参数达到特征选择的作用。
18.在一些可能的实施例中,所述利用所述任务数据集,训练第二网络模型,得到完成
训练的第二网络模型,包括:通过所述第二网络模型对所述任务数据集进行处理,输出所述任务数据集的预测结果;基于所述任务数据集的预测结果和所述任务数据集携带的标签,确定所述任务数据集通过所述第二网络模型的第二损失;基于所述第二损失,在固定所述第二网络模型中骨干网络的参数和所述第一头部网络的参数的情况下,更新所述第二网络模型中所述第二头部网络的参数,直至所述第二损失达到收敛条件。
19.上述实施例中,在固定所述第二网络模型中骨干网络的参数和第一头部网络的参数的情况下,利用任务数据集对第二网络模型中的第二头部网络进行反向传播训练,在第二损失达到收敛条件时第二头部网络的基于任务的参数达到最优,得到已训练的第二网络模型。从而实现在下游迁移时快速学习到特定预任务的参数,得到完成训练的第二网络模型。
20.在一些可能的实施例中,所述第二头部网络包括全连接层,所述方法还包括:在所述第一网络模型的输出层之后,基于所述任务数据集中数据的类别数添加所述全连接层,得到搭建的所述第二网络模型;所述全连接层的神经元数目符合所述任务数据集中数据的类别数。
21.上述实施例中,通过在第一网络模型的输出层之后添加匹配任务数据集中数据类别数的全连接层,能够有效学习到基于任务的参数并提升整体迁移效率。
22.在一些可能的实施例中,所述任务数据集为对人脸样本集,所述方法还包括:获取对目标对象采集的人脸图像;获取利用人脸数据集训练得到的第二网络模型;通过所述第二网络模型对所述人脸图像进行人脸识别,得到所述目标对象的人脸识别结果。
23.上述实施例中,由于第二网络模型是利用人脸样本集即大量人脸样本数据训练得到的,减少了对象特征本身限制以及不同对象实际外观特征相似率高等因素导致的对象检索精度降低等问题,能够应用于各自人脸识别场景。
24.再一方面,本技术实施例提供一种迁移学习装置,所述装置包括:
25.第一获取模块,用于获取原始数据集和任务数据集;
26.确定模块,用于确定所述原始数据集在所述任务数据集所涉及的域上划分的目标子集;
27.第二获取模块,用于获取利用所述目标子集训练得到的第一网络模型;其中,所述第一网络模型为基于预训练模型和第一头部网络搭建的;所述预训练模型为利用所述原始数据集训练得到的;
28.迁移训练模块,用于利用所述任务数据集,训练搭建的第二网络模型,得到完成训练的第二网络模型;其中,所述第二网络模型为基于所述第一网络模型和第二头部网络搭建的。
29.再一方面,本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
30.又一方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
31.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
32.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本技术的实施例,并与说明书一起用于说明本技术的技术方案。
33.图1为本技术实施例提供的迁移学习方法的可选的流程示意图;
34.图2为本技术实施例提供的迁移学习方法的可选的流程示意图;
35.图3为本技术实施例提供的迁移学习方法的可选的流程示意图;
36.图4为本技术实施例提供的迁移学习方法的可选的流程示意图;
37.图5为本技术实施例提供的基于多适应头的迁移学习算法框架示意图;
38.图6为本技术实施例提供的一种迁移学习方法的逻辑流程图;
39.图7为本技术实施例提供的一种迁移学习装置的组成结构示意图;
40.图8为本技术实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
41.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图和实施例对本技术的技术方案进一步详细阐述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
42.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
43.所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
44.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术的目的,不是旨在限制本技术。
45.在对本技术实施例进行进一步详细说明之前,先对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
46.迁移学习(transfer learning):在计算机视觉领域中是一种很流行的方法,因为它可以建立精确的模型,耗时更短。利用迁移学习,指的是从之前解决各种问题时学到的模式开始,省略了从零学习的过程。把已学训练好的模型参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务是存在相关性的,所以通过迁移学习,可以将已经学到的模型参数通过某种方式来分享给新模型,从而加快并优化模型的学习效率。
47.在计算机视觉领域中,迁移学习通常是通过使用预训练模型来表示的。预训练模型通常是在大型基准数据集上训练的模型,用于解决相似的问题。迁移学习可应用于计算机视觉、图像分类、文本分类、行为识别、自然语言处理、视频监控、舆情分析、人机交互等。
48.迁移学习按学习方法分类,可以分为四个大类:基于样本的迁移学习方法、基于特征的迁移学习方法、基于模型的迁移学习方法、基于关系的迁移学习方法。其中基于模型的迁移学习就是构建参数共享的模型,考虑到神经网络的结构可以直接进行迁移,因此该技
术在神经网络上被广泛应用。比如神经网络最经典的微调就是模型参数迁移的很好的体现。
49.基于模型的迁移方法(model-based transfer learning):也称基于参数知识的迁移方法,是指从源域和目标域中找到它们之间共享的参数信息,以实现迁移的方法。能够复用已训练好的模型参数,从而达到加快模型训练和节约训练成本的目的。这种迁移方式要求的假设条件是源域中的数据与目标域中的数据可以共享一些模型的参数。
50.域(domain):是学习的主体,主要有两部分构成,即数据和生成这些数据的概率分布,可以表示为d={χ,p(x)},其中χ表示特征空间,p(x)表示边际概率分布。域可以理解为某个时刻的某个特定领域,比如书本评论和电视剧评论可以看作是两个不同的域。迁移学习包括源域(source domain)即已有知识的域和目标域(target domain)即要进行学习的域这两种。
51.任务(task):是学习的结果,包括目标函数和学习结果,可以表示为t={y,f(
·
)},其中y表示标签空间,f(
·
)表示目标预测函数。
52.传统的基于计算机视觉的迁移方法主要包括基于适应头(adaptor)的方法、微调(finetune)以及线性探头(linear probe)等方法。但这些方法都旨在学习一个基于特定任务的参数,而在源域和目标域之间的域差异(domain gap)较大的情况下,模型迁移往往会变得异常困难。
53.本技术实施例提供一种迁移学习方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备迁移学习能力的设备。
54.图1为本技术实施例提供的一种迁移学习方法的实现流程示意图,如图1所示,该方法包括如下步骤s101至步骤s104:
55.步骤s101,获取原始数据集和任务数据集。
56.所述原始数据集为大规模的基准数据集,也称上游数据集,通常在大型基准数据集上训练预训练模型以解决相似的问题。原始数据集可以包含多个领域如自然场景、视频分析场景、采集场景等。
57.任务数据集为迁移目的指向的数据集,就是下游执行某项具体任务过程中的业务场景数据,即特定任务特定领域的图像,例如检测任务中街道行人图像或采集任务中的实时人脸图像等。
58.步骤s102,确定所述原始数据集在所述任务数据集所涉及的域上划分的目标子集。
59.首先通过对原始数据集划分域的方式,将原始数据集分为多个相关性较高的、没有交集的子数据集,每个子数据集的内部数据较为相似称之为一个域;然后从多个子数据集中确定出任务数据集所涉及的域对应的目标子集。
60.在实施中,先通过聚类的方式判定任务数据集属于哪一个域,再从原始数据集划分的多个子数据集中选取与任务数据集属于同一个域的子数据集作为目标子集。示例性地,原始数据集划分为域a上的子数据集n1、域b上的子数据集n2和域c上的子数据集n3,假定任务数据集属于域c,则确定目标子集为子数据集n3。
61.步骤s103,获取利用所述目标子集训练得到的第一网络模型。
62.所述第一网络模型为基于预训练模型和第一头部网络搭建的;所述预训练模型为利用所述原始数据集训练得到的。
63.其中,所述第一头部网络为基于域的网络结构,通常包括一个多层感知机(multilayer perceptron,mlp),用来学习每个域的参数(domain-specific parameter)。
64.在实施中,先利用原始数据集在任一网络结构上进行训练得到预训练模型,或者直接获取已利用该原始数据集完成训练得到的预训练模型,然后在预训练模型的网络结构基础上添加基于域的第一头部网络,得到搭建的第一网络模型,并利用原始数据集划分到相应域的子数据集训练该第一头部网络。最后下游迁移时,在确定出任务数据集所在域对应的目标子集之后,直接获取利用该目标子集训练的第一网络模型,以用于后续进一步迁移学习。
65.需要说明的是,多层感知机是一种前馈人工神经网络模型,该模型将输入的多个数据集映射到单一的输出的数据集上。多层感知机即人工神经网络(artificial neural network,ann),多层感知机的层与层之间是全连接的。通常,多层感知机最底层是输入层,中间是隐藏层,最后是输出层。除了输入输出层,多层感知机中间可以有多个隐层,最简单的多层感知机只含一个隐层即三层的结构。
66.本技术实施例中第一头部网络的输入层x其实就是原始数据集中划分的某个域的数据子集提取的特征,“输入层到隐含层”就是一个全连接的层,“隐含层到输出层”就是一个分类器(softmax)回归,从而利用相应域的子数据集训练该第一头部网络可以学习到不同域的参数。
67.步骤s104,利用所述任务数据集,训练搭建的第二网络模型,得到完成训练的第二网络模型。
68.所述第二网络模型为基于所述第一网络模型和第二头部网络搭建的。例如在第一网络模型的输出层之后,添加符合任务数据集所包含的类别个数的全连接层作为第二头部网络。在训练时,其他第一网络模型中经过预训练的层的权值不动,仅随机初始化新增加层的权值,从而使用新的任务数据集来训练第二网络模型中的第二头部网络。
69.在实施中,先获取第一网络模型的模型参数,包括预训练模型参数和第一头部网络中基于域的参数,再基于迁移学习将第一网络模型的模型参数作用于第二网络模型的初始化,最后输入任务数据集并反向调节第二头部网络的参数,以进行针对任务的迁移学习。
70.本技术实施例中,首先获取源域的原始数据集和目标域的任务数据集,然后判定任务数据集所在域对应于原始数据集划分的某个域以及对应目标子集,再获取预先利用目标子集训练得到的第一网络模型,最后基于第一网络模型和第二头部网络搭建第二网络模型,对任务数据集进行迁移学习。从而能够复用预训练模型参数,实现基于参数知识的迁移学习。同时,在传统预训练结束之后先基于第一网络模型中的第一头部网络分别学习源域中各子数据集的基于域的参数,这些基于域的参数能够在下游迁移时达到一个特征选择的作用,从而减缓上下游数据集域差异较大所造成的模型直接迁移困难的情况。
71.在一些实施例中,上述步骤s104可以通过以下步骤1041至步骤1043实现:
72.步骤1041,通过所述第二网络模型对所述任务数据集进行处理,输出所述任务数据集的预测结果。
73.由于第二网络模型是在第一网络模型的输出层后添加新的基于任务的第二头部网络而形成的,因此,可以直接载入已训练的第一网络模型中各参数的权重对第二网络模型进行初始化,仅利用任务数据集训练第二网络模型中的第二头部网络。
74.在实施中,将任务数据集输入到初始化的第二网络模型中,依次进行特征提取、池化、归一化等操作,通过最后的第二头部网络输出任务数据集中每一数据的预测结果。例如任务数据集为实时采集的待识别对象的图像,通过第二网络模型分别检测每一对象的类别、位置等。其中,对象可以为行人、人脸、移动物体等,本技术实施例对此不作限定。
75.步骤1042,基于所述任务数据集的预测结果和所述任务数据集携带的标签,确定所述任务数据集通过所述第二网络模型的第二损失。
76.任务数据集在训练之前会标注实例级标签,并作为训练样本集,其中每一样本图像包含若干实例yi={(b,c)},每一实例包括候选框位置b=(b
cx
,b
cy
,bw,bh)和独热(one-hot)类别标签c∈{0,1}
|c|

|c|
是所有类别的总数。
77.示例地,一张图像上包括猫、狗等不同动物的情况下,实例级标注的结果是猫所在位置的候选框1和类别“cat”,以及狗所在位置的候选框2和类别“dog”。一张图像上包括多只猫的情况下,每一只猫为一个实例,实例级标注的结果是每只猫所在位置的候选框和类别“cat”。
78.针对不同的具体任务,第二损失可以为交叉熵损失、聚焦损失、均方误差损失等分类损失,也可以为点回归损失、边框回归损失等回归损失。
79.步骤1043,基于所述第二损失,在固定所述第二网络模型中骨干网络的参数和所述第一头部网络的参数的情况下,更新所述第二网络模型中所述第二头部网络的参数,直至所述第二损失达到收敛条件。
80.需要说明的是,一方面,考虑到任务数据集包含的图像数量少,首要考虑的一点就是防止过拟合,所以就保持第一网络模型中网络层的权值不动。另一方面,由于任务数据集和目标子集之间是相似的,那么也就可以认为第一网络模型之前在目标子集上学得的高级特征(权重)也适用于任务数据集。
81.由于在网络低层次提取到的特征为例如图像中的边缘、线条和角等层级特征,与目标任务的数据集关系不大,而在高层次提取到的特征与目标任务紧密相关,所以第一网络模型和第二网络模型可以共享低层次参数,仅需重新训练高层权重。因此,在进行模型迁移时仅需要第二网络模型中的第二头部网络学习基于任务的参数,利用第二损失对第二头部网络进行反向传播训练,在预测结果接近任务数据集的标签的情况下第二损失收敛,得到训练好的第二网络模型。
82.上述实施例中,在固定所述第二网络模型中骨干网络的参数和第一头部网络的参数的情况下,利用任务数据集对第二网络模型中的第二头部网络进行反向传播训练,在第二损失达到收敛条件时第二头部网络中基于任务的参数达到最优,得到已训练的第二网络模型。从而实现在下游迁移时快速学习到基于任务的参数(task-specific parameter),得到完成训练的第二网络模型。
83.在一些实施例中,上述步骤s104之后还可以包括如下步骤s105至步骤s106:
84.步骤s105,获取对目标对象采集的人脸图像。
85.目标对象可以理解为商场或景区中需要识别身份的行人、游客、访客或者用户等,
还可以理解为登录网站或论坛等需要验证身份的电子用户。
86.在一些实现方式中,该人脸图像可以为电子设备上设置的图像采集装置,如摄像头模组实时采集的图像;在一些实现方式中,该人脸图像可以为其他设备通过即时通信的方式传输给电子设备进行人脸识别的图像;在一些实现方式中,该人脸图像也可以是电子设备响应于任务处理指令,调用本地相册并从中获取的待处理图像;在一些实现方式中,上述人脸图像可以是视频流中的一个图像帧。对此本技术实施例不做限制。
87.步骤s106,通过所述第二网络模型对所述人脸图像进行人脸识别,得到所述目标对象的人脸识别结果。
88.所述第二网络模型为基于本技术实施例提供的迁移学习方法进行迁移训练得到的。需要说明的是,第二网络模型通过在大量人脸样本数据上训练,可以达到相似图像的特征向量在空间中距离接近;而不相似的一对图像其对应的特征向量对在空间中距离远的特点,从而通过特征比对实现快速识别人脸具体属于哪一个对象,或者在人员库中找到目标对象。
89.所述人脸识别结果可以包括目标对象的身份标识、人脸特征等,还可以包括用于后端服务平台进行处理的标记信息,例如通过、不通过、待复核,其中,待复核指的是需人工审核或二次验证。
90.上述实施例中,由于第二网络模型是利用人脸样本集即大量人脸样本数据训练得到的,减少了对象特征本身限制以及不同对象实际外观特征相似率高等因素导致的对象检索精度降低等问题,能够应用于各自人脸识别场景。
91.在一些实施例中,所述第二头部网络包括全连接层。如图2所示,该方法包括如下步骤s201至步骤s204:
92.步骤s201,获取原始数据集和任务数据集。
93.步骤s202,对所述原始数据集进行聚类,得到n个域对应的子数据集。
94.这里,n为大于或等于2的整数;域的数量n可以根据经验设置,并根据模型迁移的效果而被调整。
95.在实施中,通过聚类对原始数据集进行细化,聚类结果可用于指示原始数据集中每一图像数据所属的类别,或者每一图像数据属于某个类别的概率或可能性,从而基于聚类结果将原始数据集划分为属于各个域的子数据集。
96.对原始数据集进行划分进行聚类的方式有很多,例如可以采用k-means聚类,也可以采用均值漂移聚类,本技术实施例对此不作限定。以k-means为例的一些聚类算法,在聚类前,要求预先设定聚类簇的数量,即预先设定原始数据集需要划分至多少个聚类簇,每一个子数据集对应一个聚类簇。
97.步骤s203,从n个子数据集中确定出与所述任务数据集属于同一个域的目标子集。
98.这里,可以通过计算任务数据集与n个子数据集之间的相似度,确定出与任务数据集最相似的一个子数据集,将该最相似的子数据集作为与所述任务数据集属于同一个域的目标子集。即将任务数据集判定为原始数据集中某一个域的数据子集,从而在迁移时获取利用属于同一个域的目标子集训练的第一网络模型,可以直接复用预训练模型参数和基于域的参数。
99.步骤s204,获取利用所述目标子集训练得到的第一网络模型。
100.这里,所述第一网络模型为基于预训练模型和第一头部网络搭建的;所述预训练模型为利用所述原始数据集训练得到的。
101.由于利用所述目标子集训练得到的第一网络模型中的基于域的参数已经学习好,从而减缓上下游数据集域差异较大所造成的模型直接迁移困难的情况。
102.步骤s205,在所述第一网络模型的输出层之后,基于所述任务数据集添加所述全连接层,得到搭建的第二网络模型。
103.所述全连接层的神经元数目符合所述任务数据集中数据的类别数。在实施中,首先基于任务数据集中数据的类别数,确定全连接层的神经元数目,并随机初始化各神经元的权重后添加在第一网络模型的输出层之后,以得到搭建的第二网络模型。
104.所谓全连接层,就是把所有局部特征结合变成全局特征,用来计算最后每一类的得分。全连接层前面的卷积和池化相当于做特征提取,后面的全连接层相当于做特征加权。本技术实施例添加的全连接层在整个第一网络模型中起到“分类器”的作用,用于学习基于任务的参数。
105.这样,通过在第一网络模型的输出层之后添加匹配任务数据集中数据类别数的全连接层,能够有效学习到基于任务的参数并提升整体迁移效率。
106.步骤s206,利用所述任务数据集,训练搭建的第二网络模型,以得到完成训练的第二网络模型。
107.这里,所述第二网络模型为基于所述第一网络模型和第二头部网络搭建的。
108.上述步骤s206对应于实施例前述的步骤s104,在实施时可以参照前述步骤s104的具体实施方式。
109.本技术实施例中,首先通过聚类对原始数据集进行细化,划分为属于各个域的子数据集,再将任务数据集判定为原始数据集中某一个域的数据子集,从而在迁移时可以利用该域对应的已训练第一网络模型进行特征选择,缓解由于原始数据集与任务数据集之间域差异太大而导致的迁移效果下降的问题。
110.基于图2,图3为本技术实施例提供的迁移学习方法的可选的流程示意图,如图3所示,上述步骤s203“从所述n个子数据集中确定与所述任务数据集属于同一个域的目标子集”可以通过以下步骤s301至步骤s303实现:
111.步骤s301,从n个子数据集对应的n个域中,确定所述任务数据集中每帧图像所属的域。
112.通过分别计算任务数据集中每帧图像与n个域各自的类中心之间的第一距离,从而确定每帧图像所属的域。
113.在一些实施方式中,确定所述任务数据集中每帧图像与所述n个子数据集的类中心之间的第一距离;其中,所述类中心的取值为所述子数据集中所有数据在各维度上的平均值;在存在所述第一距离满足预设阈值的目标类中心的情况下,确定所述每帧图像属于所述目标类中心对应的域。
114.或者,在一些实施方式中,确定所述任务数据集中每帧图像与所述n个子数据集的类中心之间的第一距离;将所述第一距离最小的类中心对应的域作为相应帧图像所属的域。
115.这样,通过计算任务数据集中每帧图像与n个子数据集的类中心之间的第一距离,
确定每帧图像属于哪一个域,从而便于后续进一步判定整个任务数据集对应于原始数据集中划分的某个域,以实现迁移时准确选择该域已训练的第一网络模型。
116.步骤s302,按照所述任务数据集中各帧图像所属的域在所述n个域中的占比,确定所述任务数据集对应的目标域;
117.示例地,原始数据集划分的n个域分别为{d1,d2,d3,

,dn},任务数据集中落入域d1的图像数量为s1个,落入域d2的图像数量为s2个,落入域d3的图像数量为s3个,在数值s2大于s1且大于s3的情况下,确定任务数据集对应的目标域为s2。
118.步骤s303,将所述n个子数据集中所述目标域对应的子数据集作为所述目标子集。
119.本技术实施例中,首先确定任务数据集中每帧图像属于n个域中的某一个特定域,然后通过统计任务数据集中所有图像占比最多的域为目标域,从而确定出目标域对应的子数据集为与所述任务数据集属于同一个域的目标子集。这样,能够准确判定任务数据集所在域对应于原始数据集中划分的目标域以及对应目标子集。
120.图4为本技术实施例提供的迁移学习方法的可选的流程示意图,如图4所示,所述方法至少包括以下步骤s401至步骤s403:
121.步骤s401,利用所述原始数据集对骨干网络进行预训练,得到所述预训练模型。
122.最终的预训练模型能够提取泛化性强的通用特征,即对于任一图像数据,骨干网络部分可以输出通用的图像特征,从而使用该预训练模型可以解决相似的问题,因此以预训练模型作为基础模型进行模型迁移。
123.步骤s402,针对所述每一个域对应的子数据集,在所述预训练模型的网络结构的基础上添加所述第一头部网络,得到搭建的相应域的第一网络模型。
124.所述第一头部网络为基于域的网络结构,通常由一个多层感知机构成,用来学习每个域的参数。多层感知机的结构包括批归一化,全连接层,relu激活函数等。
125.假定第一头部网络即多层感知机的输入层用向量x表示,则与输入层连接的隐藏层的输出为f(w1*x b1),其中,w1是权重,也可称为连接系数,b1是偏置,函数f可以是常用的激活函数如sigmoid函数或者tanh函数。
126.因此,第一头部网络的每一层每个神经元上面都有对于一个输入的权值、一个偏置,以及一个激活函数。迁移学习的任务就是找到权值和偏置这些参数的值,使得输出的结果达到下游具体任务的要求。
127.步骤s403,利用所述每一个域对应的子数据集训练所述第一头部网络,得到已训练的所述第一网络模型。
128.这里,对原始数据集划分的n个域中每一个域对应的子数据集均进行步骤s403的操作,可以得到n个基于域的第一网络模型。
129.本技术实施例中,在利用原始数据集训练得到预训练模型之后添加第一头部网络,并分别利用每个域对应的子数据集训练该第一头部网络,从而实现对原始数据集中各个域的子数据集进行基于域的参数学习,这样训练完成的第一网络模型中基于域的参数能够在下游迁移时起到特征选择的作用。
130.在一些实施例中,上述步骤s403可以包括以下步骤4031至步骤4033:
131.步骤4031,通过所述第一网络模型对所述子数据集进行处理,输出所述子数据集的预测结果。
132.首先第一网络模型中的骨干网络对子数据集进行特征提取,然后将子数据集对应的数据特征输入到第一头部网络中。在第一头部网络内部一个前向过程的流程就是:将数据特征经过第一层神经元运算,即乘上权值,加上偏置,激活函数运算一次,得到输出;再将第一层的输出作为第二层的输入,经过第二层神经元的运算,得到第二层的输出,直到输出层运算,然后得到预测结果。
133.步骤4032,基于所述子数据集的预测结果和所述子数据集携带的标签,确定所述子数据集通过所述第一网络模型的第一损失。
134.子数据集在训练之前会标注实例级标签,并作为训练样本集,其中每一样本图像包含若干实例,每一实例包括候选框位置和独热类别标签。针对不同的具体任务,第一损失可以为分类损失、回归损失等。
135.步骤4033,基于所述第一损失,在固定所述第一网络模型中骨干网络的参数的情况下,更新所述第一网络模型中所述第一头部网络的参数,直至所述第一损失达到收敛条件,得到已训练的所述第一网络模型。
136.针对每一个域对应的子数据集,在迁移时只需冻结第一网络模型中预训练部分的相关层,修改第一头部网络的参数,以使预测结果更接近真实标签。
137.上述实施例中,在固定所述第一网络模型中骨干网络的参数的情况下,利用每一个域对应的子数据集对第一网络模型中的第一头部网络进行反向传播训练,在第一损失达到收敛条件时第一头部网络的基于域的参数达到最优,得到已训练的第一网络模型。从而通过对应域的子数据集学习基于域的参数,旨在后续迁移时通过已经学好的基于域的参数达到特征选择的作用。
138.下面结合一个具体实施例对上述迁移学习方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本技术,并不构成对本技术的不当限定。
139.通常在下游迁移时,相关技术中只学习基于任务的参数,而由于有时候上下游数据差异较大,导致基于特定任务的参数难以学习。同时,大规模预训练模型能够提取泛化性强的通用特征,但有时由于下游任务数据量过小或者数据分布与上游数据分布不一致,导致简单微调模型的权重很难得到合适的针对下游任务的特征映射,无法将模型迁移到下游任务。
140.本技术实施例提供一种新的迁移学习方法,如图5所示,本技术实施例提出了基于多适应头的迁移学习算法框架,整体算法框架包括预训练部分、域参数学习部分和任务数据集微调部分三个阶段,在传统的上游预训练与下游迁移两个阶段之间引入基于域的参数的学习,从而使得预训练模型从原域迁移到目标域的过程更加平缓,防止域差异较大造成模型迁移困难的情况。
141.第一阶段为预训练部分,利用原始数据集51训练骨干网络52得到预训练模型。
142.第二阶段为域参数学习部分,对原始数据集51进行域的划分,得到每个域对应的子数据集,针对每一个域对应的子数据集,在第一阶段得到的预训练模型的骨干网络之后添加第一头部网络,得到每个域对应的第一网络模型501,并利用相应域的子数据集训练该域对应的第一头部网络。这一阶段旨在减小上游原始数据集与下游任务数据集之间域差异太大导致的迁移效果下降的问题。
143.本技术实施例以3个域为例,将原始数据集细化为子数据集511、子数据集512、子
数据集513,依次对应第一头部网络531、第一头部网络532、第一头部网络533。应注意,在固定骨干网络52的参数的基础上进行训练,即骨干网络52部分为不可训练的,仅第一头部网络部分为可训练的;且针对具体的子数据集,每次仅选择第一头部网络531、第一头部网络532、第一头部网络533中之一进行训练。
144.第三阶段为基于任务数据集的迁移学习部分,以任务数据集54为例,将任务数据集54判定为第一阶段划分的某个域的数据集,并在基于该域的第一网络模型501的基础上添加第二头部网络55,得到第二网络模型502。利用任务数据集54微调第二网络模型502中的第二头部网络55部分的参数,完成迁移。
145.本技术实施例假定原始数据集在任务数据集54所涉及的域上划分的目标子集为子数据集512,因此在上一阶段得到的利用子数据集512训练得到的第一网络模型基础上添加第二头部网络55,即在第一头部网络532之后添加第二头部网络55。应注意,在固定骨干网络52的参数和第一头部网络532的参数的基础上进行训练,即骨干网络52部分和第一头部网络532部分为不可训练的,仅第二头部网络55部分为可训练的。
146.图6为本技术实施例提供的迁移学习方法的逻辑流程图,如图6所示,该方法包括以下步骤:
147.步骤s601,获取原始数据集和任务数据集。
148.所述原始数据集为大规模的上游数据集,可以包含多个领域自然场景、监测场景、采集场景等。任务数据集为最终希望迁移到的数据集,一般指在特定任务特定领域的图片,比如检测任务中街道行人图片。
149.步骤s602,基于原始数据集训练得到预训练模型。
150.在任一网络结构中使用大规模上游数据进行训练,得到预训练模型;该预训练模型对于任一帧图像数据,骨干网络部分可以输出一个通用表征。
151.步骤s603,对原始数据集划分域,得到属于各个域的子数据集。
152.将上游的大规模原始数据集进行细化,分为多个相关性较高的、没有交集的小数据集。在实施中,通过已有的聚类方法,将大规模的原始数据集划分为n个子数据集,每个子数据集由于其内部数据较为相似,称之为同一个域内的数据集。
153.上述步骤s602和步骤s603的执行顺序无先后顺序,也可以同时进行,本技术实施例对此不作限定。
154.步骤s604,利用子数据集对预训练模型进行域参数训练,得到基于域的第一网络模型。
155.这里,针对中每一个域的子数据集,在步骤s602中得到预训练模型的输出层后面添加上新的基于域的网络结构即第一头部网络。并用该子数据集对该第一头部网络进行训练。对步骤s603中每个域对应的子数据集均进行此操作,因此可以得到n个基于特定域的第一网络模型,n为域数量。
156.本技术实施例在传统的迁移学习基础之上,增加了基于域的参数学习部分,即在传统的预训练环节结束之后,在预训练模型的骨干网络之后添加新的基于域的网络结构,并通过对应域的数据集学习这些参数。旨在在下游迁移,学习基于任务的参数时,通过已经学好的域参数达到特征选择的作用,减小由于上下游数据差距太大,造成基于任务的参数难以学习的现象。
157.步骤s605,利用所述任务数据集对应域的第一网络模型进行微调,得到完成训练的第二网络模型。
158.这里,首先,针对任务数据集,通过步骤s603中的聚类过程将任务数据集判定为某一个域的数据集。由于每个域都可以视为一个类中心,对任务数据集的每帧图像计算其与各个域(类中心)之间的距离,从而确定每帧图像属于哪个域。取各帧图像中占比最多的域作为整个任务数据集的域。
159.然后,获取上一步骤s604中得到的基于任务数据集所在域的第一网络模型,在该第一网络模型的输出层后添加新的基于特定任务的网络结构即第二头部网络,并使用任务数据集训练该第二头部网络,完成迁移。
160.本技术实施例通过将上游的原始数据集划分为隶属于多个域的子数据集,并在预训练模型之后添加基于域的网络结构,以学习基于域的参数从而在下游迁移过程中达到特征选择的作用。这样可以在任务数据量较少且任务数据集只与原始数据集中部分子数据集相似的情况下提升下游任务指标。
161.本技术实施例在基于原始数据集训练得到预训练模型之后,通过用各个域的子数据集使模型学习基于域的参数,使这些基于域的参数能够在下游迁移时起到一个特征选择的作用,从而减缓上下游数据集域差异较大所造成的模型直接迁移困难的情况,同时解决在云端服务场景下,固定骨干网络参数导致的模型迁移效果较差的问题。
162.基于前述的实施例,本技术实施例提供一种迁移学习装置,该装置包括所包括的各模块以及各模块包括的子模块、单元等,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(central processing unit,cpu)、微处理器(microprocessor unit,mpu)、数字信号处理器(digital signal processor,dsp)或现场可编程门阵列(field programmable gate array,fpga)等。
163.图7为本技术实施例提供的一种迁移学习装置的组成结构示意图,如图7所示,迁移学习装置700包括:第一获取模块701、确定模块702、第二获取模块703、迁移训练模块704,其中:
164.所述第一获取模块701,用于获取原始数据集和任务数据集;
165.所述确定模块702,用于确定所述原始数据集在所述任务数据集所涉及的域上划分的目标子集;
166.所述第二获取模块703,用于获取利用所述目标子集训练得到的第一网络模型;其中,所述第一网络模型为基于预训练模型和第一头部网络搭建的;所述预训练模型为利用所述原始数据集训练得到的;
167.所述迁移训练模块704,用于利用所述任务数据集,训练搭建的第二网络模型,得到完成训练的第二网络模型;其中,所述第二网络模型为基于所述第一网络模型和第二头部网络搭建的。
168.在一些可能的实施例中,所述确定模块702包括聚类子模块和第一确定子模块,其中:所述聚类子模块,用于对所述原始数据集进行聚类,得到n个域对应的子数据集;n为大于或等于2的整数;所述第一确定子模块,用于从所述n个子数据集中确定出与所述任务数据集属于同一个域的目标子集。
169.在一些可能的实施例中,所述第一确定子模块包括第一确定单元、第二确定单元和第三确定单元,其中:所述第一确定单元,用于从所述n个子数据集对应的n个域中,确定所述任务数据集中每帧图像所属的域;所述第二确定单元,用于按照所述任务数据集中各帧图像所属的域在所述n个域中的占比,确定所述任务数据集对应的目标域;所述第三确定单元,用于将所述n个子数据集中所述目标域对应的子数据集作为所述目标子集。
170.在一些可能的实施例中,所述第一确定单元包括第一确定子单元和第二确定子单元,其中:所述第一确定子单元,用于确定所述任务数据集中每帧图像与所述n个子数据集的类中心之间的第一距离;其中,所述类中心的取值为所述子数据集中所有数据在各维度上的平均值;所述第二确定子单元,用于在存在所述第一距离满足预设阈值的目标类中心的情况下,确定所述每帧图像属于所述目标类中心对应的域。
171.在一些可能的实施例中,所述装置600还包括预训练模块、第一搭建模块、域参数训练模块,其中:所述预训练模块,用于利用所述原始数据集对骨干网络进行预训练,得到所述预训练模型;所述第一搭建模块,用于针对所述每一个域对应的子数据集,在所述预训练模型的网络结构的基础上添加所述第一头部网络,得到搭建的相应域的第一网络模型;所述域参数训练模块,用于利用所述每一个域对应的子数据集训练所述第一头部网络,得到已训练的所述第一网络模型。
172.在一些可能的实施例中,所述域参数训练模块包括第一预测子模块、第二确定子模块和第一更新子模块,其中:所述第一预测子模块,用于通过所述第一网络模型对所述子数据集进行处理,输出所述子数据集的预测结果;所述第二确定子模块,用于基于所述子数据集的预测结果和所述子数据集携带的标签,确定所述子数据集通过所述第一网络模型的第一损失;所述第一更新子模块,用于基于所述第一损失,在固定所述第一网络模型中骨干网络的参数的情况下,更新所述第一网络模型中所述第一头部网络的参数,直至所述第一损失达到收敛条件,得到已训练的所述第一网络模型。
173.在一些可能的实施例中,所述迁移训练模块704包括第二预测子模块、第三确定子模块和第二更新子模块,其中:所述第二预测子模块,用于通过所述第二网络模型对所述任务数据集进行处理,输出所述任务数据集的预测结果;所述第三确定子模块,用于基于所述任务数据集的预测结果和所述任务数据集携带的标签,确定所述任务数据集通过所述第二网络模型的第二损失;所述第二更新子模块,用于基于所述第二损失,在固定所述第二网络模型中骨干网络的参数和所述第一头部网络的参数的情况下,更新所述第二网络模型中所述第二头部网络的参数,直至所述第二损失达到收敛条件。
174.在一些可能的实施例中,所述第二头部网络包括全连接层,所述装置700还包括第二搭建模块,用于在所述第一网络模型的输出层之后,基于所述任务数据集添加所述全连接层,得到搭建的所述第二网络模型;所述全连接层的神经元数目符合所述任务数据集中数据的类别数。
175.在一些可能的实施例中,所述任务数据集为对人脸样本集,所述装置还包括第三获取模块和识别模块,其中:所述第三获取模块,用于获取对目标对象采集的人脸图像;获取利用人脸数据集训练得到的第二网络模型;所述识别模块,用于通过所述第二网络模型对所述人脸图像进行人脸识别,得到所述目标对象的人脸识别结果。
176.以上装置实施例的描述,与上述迁移学习方法实施例的描述是类似的,具有同迁
移学习方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
177.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的迁移学习方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
178.本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
179.本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
180.本技术实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
181.本技术实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
182.这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
183.需要说明的是,图8为本技术实施例中计算机设备的一种硬件实体示意图,如图8所示,该计算机设备800的硬件实体包括:处理器801、通信接口802和存储器803,其中:
184.处理器801通常控制计算机设备800的总体操作。
185.通信接口802可以使计算机设备通过网络与其他终端或服务器通信。
186.存储器803配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及计算机设备800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。处理器801、通信接口802和存储器803之间可以通过总线804进行数据传
输。
187.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
188.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
189.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
190.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
191.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
192.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
193.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
194.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
再多了解一些

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

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

相关文献