基于知识蒸馏的模型训练方法、装置、电子设备制造方法及图纸

技术编号:31584262 阅读:63 留言:0更新日期:2021-12-25 11:28
本公开提供了一种基于知识蒸馏的模型训练方法、装置、电子设备及存储介质,涉及计算机领域,尤其涉及计算机视觉、NLP等人工智能技术领域。具体实现方案为:将基于训练样本得到的特征向量分别输入第一编码层和第二编码层,其中,该第一编码层属于第一模型,该第二编码层属于第二模型;对该第一编码层输出的结果进行汇聚处理,得到第一特征向量;根据该第二编码层的输出确定第二特征向量;对该第一特征向量和该第二特征向量做蒸馏处理,得到更新后的第一特征向量。该方案用于模型压缩蒸馏训练,可以灵活地用于模型的任一层中,压缩效果好。压缩后的模型可用于图像识别,且可以被部署到各种计算能力有限的设备上。种计算能力有限的设备上。种计算能力有限的设备上。

【技术实现步骤摘要】
基于知识蒸馏的模型训练方法、装置、电子设备


[0001]本公开涉及计算机
,尤其涉及计算机视觉、NLP(Natural Language Processing,自然语言处理)等人工智能
,具体涉及一种基于知识蒸馏的模型训练方法、装置、电子设备及存储介质。

技术介绍

[0002]随着信息技术的发展,神经网络模型被广泛用于注入计算机视觉、信息检索、信息识别等机器学习任务中。但是,为了更好的学习效果,神经网络模型往往具有海量的参数,一般需要耗费巨大的算例进行推断和部署,即,在训练和推断阶段会占用大量的计算资源,因此在一些资源受限的设备上无法对此类大型神经网络模型进行相应的部署。即在保证性能优异的同时,由于模型规模大、数据量大,大型神经网络模型往往对部署环境有着较高的要求,极大地限制了该类模型的使用。

技术实现思路

[0003]本公开提供了一种基于知识蒸馏的模型训练方法、装置、电子设备以及存储介质。
[0004]根据本公开的一方面,提供了一种基于知识蒸馏的模型训练方法,包括:
[0005]将基于训练的图像样本得到的特征向量分别输入第一编码层和第二编码层,其中,该第一编码层属于第一模型,该第二编码层属于第二模型;对该第一编码层输出的结果进行汇聚处理,得到第一特征向量;根据该第二编码层的输出确定第二特征向量;对该第一特征向量和该第二特征向量做蒸馏处理,更新所述第一特征向量;基于更新后的该第一特征向量进行分类,完成所述第一模型的训练。
[0006]根据本公开的另一方面,提供了一种图像识别的方法,包括:将待识别图像输入训练后的识别模型,该训练后的识别模型是利用基于知识蒸馏的模型训练方法训练获得;根据该训练后的识别模型,对该待识别图像进行识别处理。
[0007]根据本公开的另一方面,提供了一种基于知识蒸馏的模型训练装置,包括:输入模块,用于将基于训练的图像样本得到的特征向量分别输入第一编码层和第二编码层,其中,该第一编码层属于第一模型,该第二编码层属于第二模型;汇聚模块,用于对该第一编码层输出的结果进行汇聚处理,得到第一特征向量;确定模块,用于根据该第二编码层的输出确定第二特征向量;蒸馏模块,用于对该第一特征向量和该第二特征向量做蒸馏处理,更新该第一特征向量;分类模块,用于基于更新后的该第一特征向量进行分类,完成该第一模型的训练。
[0008]根据本公开的另一方面,提供了一种图像识别的装置,包括:模型输入模块,用于将待识别图像输入训练后的识别模型,该训练后的识别模型根据基于知识蒸馏的模型训练装置得到的;识别模块,用于根据该训练后的识别模型,对该待识别图像进行识别处理。
[0009]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与该至少一个处理器通信连接的存储器;其中,该存储器存储有可被该至少一个处理器执行的
指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
[0010]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
[0011]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现本公开任一实施例中的方法。
[0012]本公开的技术,可以用于模型压缩蒸馏训练,汇聚后再进行蒸馏,可以灵活用于模型的任一层中,训练好模型的计算量大幅减小,压缩效果好,从而可以将训练好的模型部署到各种计算能力有限的设备上。
[0013]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0014]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0015]图1是根据本公开一实施例的基于知识蒸馏的模型训练方法的流程示意图;
[0016]图2是根据本公开另一实施例的基于知识蒸馏的模型训练方法的流程示意图;
[0017]图3是根据本公开一实施例的计算机视觉领域的Transformer模型结构示意图;
[0018]图4是根据本公开一实施例的模型蒸馏示意图;
[0019]图5是根据本公开另一实施例的模型蒸馏示意图;
[0020]图6是根据本公开一实施例的一种图像识别方法的流程示意图;
[0021]图7是根据本公开一实施例的基于知识蒸馏的模型训练装置的结构示意图;
[0022]图8是根据本公开一实施例分类模块的结构示意图;
[0023]图9是根据本公开一实施例的一种图像识别装置的结构示意图;
[0024]图10是用来实现本公开实施例的知识蒸馏的训练方法或图像识别方法的电子设备的框图。
具体实施方式
[0025]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0026]现有技术中,Transformer模型是由某著名互联网公司开发的一种新型人工智能模型,近期,该模型被频频用于计算机视觉领域(CV领域),已被证实可以取得极佳的效果。但是,相比较于其余模型(如卷积神经网络模型),Transformer具有海量的参数,一般需要耗费巨大的算例进行推断和部署,即,在训练和推断阶段会占用大量的计算资源,因此在一些资源受限的设备上无法对Transformer进行相应的部署。
[0027]根据本公开的实施例,提供了一种基于知识蒸馏的模型训练方法,图1是根据本公开一实施例的基于知识蒸馏的模型训练方法的流程示意图,具体包括:
[0028]S101:将基于训练的图像样本得到的特征向量分别输入第一编码层和第二编码
层,其中,该第一编码层属于第一模型,该第二编码层属于第二模型;
[0029]一示例中,第二编码层属于的第二模型是原始模型或训练好的模型,第一编码层属于的第一模型是新建模型或基于训练好的模型要生成的新模型。第一模型具体可以是学生模型,第二模型可以是教师模型。
[0030]一示例中,第一编码层和第二编码层是不同模型中相互对应的层,比如第一编码层是所属模型中的第三层,第二编码层是所属模型中与第一编码层对应的层,比如也可以是第三层。
[0031]一示例中,虽然理论上可以选取第一模型中的任意一层作为第一编码层,但是因为对模型的最后一层做蒸馏处理后实质没有降低计算量,因此不建议将最后一层作为第一编码层。一般选取模型中非最后一层的任一编码层作为第一编码层。
[0032]一示例中,该图像样本可以是图形图像。具体地,可以将多张大小相等的图片经过转换处理,生成维度相同的多个特征向量,其中,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于知识蒸馏的模型训练方法,包括:将基于训练的图像样本得到的特征向量分别输入第一编码层和第二编码层,其中,所述第一编码层属于第一模型,所述第二编码层属于第二模型;对所述第一编码层输出的结果进行汇聚处理,得到第一特征向量;根据所述第二编码层的输出确定第二特征向量;对所述第一特征向量和所述第二特征向量做蒸馏处理,更新所述第一特征向量;基于更新后的所述第一特征向量进行分类,完成所述第一模型的训练。2.根据权利要求1所述的方法,其中,所述基于更新后的所述第一特征向量进行分类,完成所述第一模型的训练,包括:将更新后的所述第一特征向量输入第三编码层,所述第三编码层属于所述第一模型;将所述蒸馏处理后得到的更新后的第二特征向量输入第四编码层,所述第四编码层属于所述第二模型;对所述第三编码层与所述第四编码层的输出结果做再次蒸馏处理,得到优化结果;基于所述优化结果进行分类,完成所述第一模型的训练。3.根据权利要求1所述的方法,其中,所述对所述第一特征向量和所述第二特征向量做蒸馏处理,包括:对所述第一特征向量和所述第二特征向量中排序靠前的特征向量做蒸馏处理,其中,所述第一特征向量的大小和所述第二特征向量中排序靠前的特征向量的大小相等。4.根据权利要求1所述的方法,还包括:在所述蒸馏处理中的蒸馏损失值小于固定阈值的情况下,根据所述分类的结果得到分类正确率。5.根据权利要求4所述的方法,还包括:在所述第一模型有多个编码层且所述分类正确率不符合预设目标的情况下,在所述多个编码层中选择除第一编码层以外的任一编码层的输出作为汇聚处理的输入,继续训练所述第一模型。6.根据权利要求1所述的方法,其中,所述对所述第一编码层输出的结果进行汇聚处理,包括:对所述第一编码层输出的结果进行卷积处理。7.根据权利要求1所述的方法,所述将基于训练的图像样本得到的特征向量分别输入第一编码层和第二编码层,包括:将多张大小相等的图片经过转换处理,生成维度相同的多个特征向量,其中,所述图片的张数等于生成特征向量的个数;将所述多个特征向量并行输入所述第一编码层和所述第二编码层。8.一种图像识别的方法,包括:将待识别图像输入训练后的识别模型,所述训练后的识别模型根据权利要求1

7中任一项所述的基于知识蒸馏的模型训练方法训练获得;根据所述训练后的识别模型,对所述待识别图像进行识别处理。9.一种基于知识蒸馏的模型训练装置,包括:输入模块,用于将基于训练的图像样本得到的特征向量分别输入第一编码层和第二编
码层,其中,所述第一编码层属于第一模型,所述第二编码层属于第二模型;汇聚模块,用于对所述第一编码层输出的结果进行汇聚处理,得到第一特征向量;确定模块,用于根据所述第二编码层的输出确定第二特征向量;蒸馏模块,用于对所述第一特征向量和所述第二特征向量做蒸馏...

【专利技术属性】
技术研发人员:李建伟
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1