CN117273058A - 一种知识蒸馏的方法、装置、电子设备及存储介质 - Google Patents
一种知识蒸馏的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117273058A CN117273058A CN202210658332.3A CN202210658332A CN117273058A CN 117273058 A CN117273058 A CN 117273058A CN 202210658332 A CN202210658332 A CN 202210658332A CN 117273058 A CN117273058 A CN 117273058A
- Authority
- CN
- China
- Prior art keywords
- network
- sub
- neural network
- block
- neural
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 124
- 238000013140 knowledge distillation Methods 0.000 title claims abstract description 77
- 238000013528 artificial neural network Methods 0.000 claims abstract description 276
- 238000012549 training Methods 0.000 claims abstract description 77
- 238000012545 processing Methods 0.000 claims description 41
- 238000013139 quantization Methods 0.000 claims description 28
- 230000003044 adaptive effect Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004821 distillation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Acoustics & Sound (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及一种知识蒸馏的方法、装置、电子设备及存储介质,其中,所述方法包括:获取已训练的第一神经网络;在第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络;其中,第三神经网络为已训练好的第二神经网络。采用本申请,实现了自适应的知识蒸馏。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及知识蒸馏的方法、装置、电子设备及存储介质。
背景技术
知识蒸馏是模型压缩的一种常用的方法,通过构建一个轻量化的小模型,利用性能更好的大模型的监督信息,来训练这个小模型,以期达到更好的性能和精度。采用目前的知识蒸馏方法,无法精确的训练好这个小模型,使其达到更好的性能和精度。
发明内容
本申请提供了一种知识蒸馏的方法、图像识别方法、语音识别方法、装置、电子设备以及存储介质。
根据本申请的一方面,提供了一种知识蒸馏的方法,包括:
获取已训练的第一神经网络;
在第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对所述第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络;
其中,所述第三神经网络为已训练好的第二神经网络。
根据本申请的另一方面,提供了一种图像识别方法,包括:
将图像数据输入本申请任意一实施例得到的第三神经网络;
根据所述第三神经网络对所述图像数据进行识别,得到目标图像数据。
根据本申请的另一方面,提供了一种语音识别方法,包括:
将语音数据输入本申请任意一实施例得到的第三神经网络;
根据所述第三神经网络对所述语音数据进行识别,得到目标语音数据。
根据本申请的另一方面,提供了一种知识蒸馏的装置,包括:
第一获取单元,用于获取已训练的第一神经网络;
第一处理单元,用于在第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对所述第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络;
其中,所述第三神经网络为已训练好的第二神经网络。
根据本申请的另一方面,提供了一种图像识别装置,包括:
第六处理单元,用于将图像数据输入本申请任意一实施例得到的第三神经网络;
第七处理单元,用于根据所述第三神经网络对所述图像数据进行识别,得到目标图像数据。
根据本申请的另一方面,提供了一种语音识别装置,包括:
第八处理单元,用于将语音数据输入本申请任意一实施例得到的第三神经网络;
第九处理单元,用于根据所述第三神经网络对所述语音数据进行识别,得到目标语音数据。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本申请任意一实施例所提供的方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使该计算机执行本申请任意一项实施例所提供的方法。
根据本申请的另一方面,提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现本申请任意一项实施例所提供的方法。
采用本申请,可以获取已训练的第一神经网络,在第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络;其中,第三神经网络为已训练好的第二神经网络,通过梯度自适应参数对第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,实现了自适应的知识蒸馏。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例的一分布式集群处理场景的示意图;
图2是根据本申请实施例的知识蒸馏方法的流程示意图;
图3是相关技术的搜索方法的流程示意图;
图4是相关技术的搜索方法的流程示意图;
图5是根据本申请实施例的图像识别方法的流程示意图;
图6是根据本申请实施例的语音识别方法的流程示意图;
图7是根据本申请实施例的应用示例中搜索场景中进行联合训练的框架示意图;
图8是根据本申请实施例的知识蒸馏的装置的组成结构示意图;
图9是根据本申请实施例的图像识别装置的组成结构示意图;
图10是根据本申请实施例的语音识别装置的组成结构示意图;
图11是用来实现本申请实施例的知识蒸馏方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。本文中术语“第一”、“第二”表示指代多个类似的技术用语并对其进行区分,并不是限定顺序的意思,或者限定只有两个的意思,例如,第一特征和第二特征,是指代有两类/两个特征,第一特征可以为一个或多个,第二特征也可以为一个或多个。
为便于理解本申请实施例的技术方案,以下对本申请实施例所涉及到的技术用语以及基本概念进行简单说明。
1、知识蒸馏:是模型压缩的一种常用的方法,不同于模型压缩中的剪枝和量化,知识蒸馏是通过构建一个轻量化的小模型(即学生模型),利用性能更好的大模型(即教师模型)的监督信息,来训练这个小模型,以期达到更好的性能和精度。其中,小模型也可以称之为小网络,相应的,学生模型也可以称之为学生网络;大模型也可以称之为大网络,相应的,教师模型也可以称之为教师网络。来自教师模型输出的监督信息可以称之为知识,学生模型可以学习并继承来自教师模型的监督信息的过程则称之为知识蒸馏。
2、超级网络(或简称超网):在神经网络结构的搜索技术中,可以利用超级网络来表示搜索空间,超级网络中包括多个块(Block),且多个块之间可以采用顺序单连接方式,即:其中一个块可以与一个上游的块和一个下游的块分别连接。一个块中还可以包括多个层。通过在超级网络中进行搜索可以获得目标神经网络可能包括的至少一个层,从而得到最优的目标神经网络。
3、损失函数:是用来度量预测错误程度的函数,对于模型(或称神经网络模型)训练的过程中,如何评价模型训练的效果,需要提前定义一个损失函数,从而据此判断模型训练的效果是否为最优的,在损失函数的反向传播中进行求导,以不断的优化梯度并进行梯度更新,目的也是为了使得损失函数达到最小,从而让模型训练的效果达到最优。
4、伪量化节点:是指在量化感知训练中插入的节点,用以寻找网络数据分布,并反馈损失精度,可以在在权重、激活、模型输入输出等地方插入伪量化节点。考虑到模型采用浮点格式,变换到定点格式,会有精度损失,因此,为了确保精度,在模型训练时需要预先模拟这种精度损失,插入伪量化节点,执行伪量化的过程,通过在可识别的操作内嵌入该伪量化节点,可以统计模型训练时流经该伪量化节点的数据最大或最小值,便于在后续浮点格式到定点格式的格式转换时带来精度损失。
根据本申请的实施例,图1是根据本申请实施例的一分布式集群处理场景的示意图,该分布式集群系统为集群系统的一个示例,示例性的描述了可以利用该分布式集群系统进行自适应知识蒸馏,本申请不限于单机或多机上的知识蒸馏,采用分布式的处理可以进一步提高自适应知识蒸馏的精度。如图1所示,在该分布式集群系统100中包括多个节点(如服务器集群101、服务器102、服务器集群103、服务器104、服务器105,服务器105还可以连接电子设备,如手机1051及台式机1052),多个节点间,以及多个节点与连接的电子设备间可以共同执行一个或多个自适应知识蒸馏任务。可选地,该分布式集群系统中的多个节点可以采用数据并行的关系来执行自适应知识蒸馏方式的网络模型训练,则多个节点可以基于相同的模型训练方式执行网络模型训练,若该分布式集群系统中的多个节点采用的是模型并行的模型训练方式,则多个节点可以基于不同的训练方式来执行自适应知识蒸馏方式的网络模型训练。可选地,在每一轮关系提取模型训练完成后,多个节点之间都可以进行数据交换(如数据同步)。
根据本申请的实施例,提供了一种知识蒸馏方法,图2是根据本申请实施例的知识蒸馏方法的流程示意图,该方法可以应用于知识蒸馏的装置,例如,该装置可以部署于单机、多机或集群系统中的电子设备(如终端或服务器)或其它处理设备,可以实现知识蒸馏等处理。其中,终端可以为用户设备(UE,User Equipment)、移动设备、个人数字处理(PDA,Personal Digital Assistant)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图2所示,该方法应用于图1所示的集群系统中的任一节点或电子设备,如手机或台式机等中,包括:
S201、获取已训练的第一神经网络。
一些示例中,第一神经网络可以为教师网络。
S202、在第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络,其中,第三神经网络为已训练好的第二神经网络。
一些示例中,第二神经网络可以为学生网络。
一些示例中,通过教师网络对学生网络中的多个子分块网络进行监督,可以以分块指导方式实现针对学生网络的学习监督,结合梯度自适应参数对学生网络中的多个子分块网络执行用于知识蒸馏的联合训练,相比对每一个子分块网络分别单独训练只能达到局部优化而言,结合梯度自适应参数实现的用于知识蒸馏的联合训练,是自适应的知识蒸馏方式,可以达到对学生网络全局优化的目的。
一些示例中,可以将上述自适应的知识蒸馏方式应用于神经网络结构的搜索中,由于自适应的知识蒸馏方式可以达到对学生网络全局优化的目的,从而在搜索中,一边搜索,一边执行自适应的知识蒸馏方式,可以更快的得到更为精确的最优目标神经网络,即通过上述第一神经网络和第二神经网络共同作用下训练得到的第三神经网络。
在一种可能的实现方式中,多个子分块网络,可以包括如下至少两个类型:
1)第一类子分块网络,包括第二神经网络中的第一子分块网络及第n-1子分块网络,n为大于2的正整数;
一些示例中,第二神经网络可以为学生网络,第一类子分块网络可以为学生网络中的第一子分块网络及中间的子分块网络。
2)第二类子分块网络,包括第二神经网络中的第n子分块网络。
一些示例中,第二神经网络可以为学生网络,第二类子分块网络可以为学生网络中的最后一个子分块网络,通过第二类子分块网络的反向传播,对第一类子分块网络进行干预,以实现联合训练,可以提高模型训练精度,得到更为精确的第三神经网络。
在一种可能的实现方式中,第一类子分块网络及第二类子分块网络可以是网络结构相同,不同的是二者的输入及输出,换言之,该第一类子分块网络与该第二类子分块网络在执行上述联合训练的过程中,该第一类子分块网络的输入及输出不同于该第二类子分块网络的输入及输出。其中,该第一类子分块网络与该第二类子分块网络的网络结构相同。
在一种可能的实现方式中,在第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络,包括:在第一神经网络的监督下,该第一类子分块网络与该第二类子分块网络执行上述联合训练的过程中,可以采用梯度自适应参数进行梯度更新,直至满足预设条件,得到第三神经网络。比如,第一神经网络可以为教师网络,第二神经网络可以为学生网络的情况下,在教师网络的监督下,包括不同网络类型(即该第一类子分块网络及该第二类子分块网络)的学生网络通过联合训练,采用自适应蒸馏的方式进行自适应的梯度更新,达到全局优化的目的。
在一种可能的实现方式中,还包括:根据第一神经网络中的第n子分块网络对应的第一梯度及第二类子分块网络对应的第二梯度,得到梯度自适应参数,n为大于2的正整数。
一些示例中,第一神经网络可以为教师网络,第二神经网络可以为学生网络。第一梯度及第二梯度,指教师网络和学生网络各自分别对应的梯度。
一些示例中,在联合训练的过程中,梯度自适应参数(如GAP)大于零的情况下,进行梯度更新。在梯度自适应参数大于零的情况下,说明教师网络和学生网络的梯度更新方向相同,则认为教师网络可以对学生网络进行“教学”,传递知识以便学生网络继承这些从教师网络得到的知识,对学生网络进行梯度更新。换言之,在联合训练过程中教师网络通过分块指导的方式,最终将教师网络的结构知识传递给学生网络,在联合训练过程中设置梯度自适应参数大于零的情况,是为了避免训练过程中教师网络对学生的错误指导,从而确保学生网络在教师网络的监督下学习,可以得到教师网络的正确指导,并继承这些从教师网络得到的知识。
一些示例中,通过联合训练得到第三神经网络后,不限于梯度自适应参数大于零的情况下进行该梯度更新。对第三神经网络继续迭代优化的过程中,在梯度自适应参数小于零的情况下,也可以进行该梯度更新。
一些示例中,对第一神经网络(如教师网络)的输入和输出进行具体描述如下:
第一神经网络及第二神经网络分别包括:第一子分块网络、第k-1子分块网络、第k子分块网络、第k+1子分块网络、第n-1子分块网络、第n子分块网络。其中,k、n皆为大于2的正整数且k<n,n为总的子分块网络的数量;其中,
就第一神经网络(如教师网络)的输入而言,第一神经网络中的第k子分块网络的输入,为第一神经网络中的第k-1子分块网络的输出。
就第一神经网络(如教师网络)的输出而言,包括:1)第一神经网络中的第k子分块网络的输出,为第一神经网络中的所述第k+1子分块网络的输入;2)第一神经网络中的第k子分块网络的输出,为第二神经网络中的第k+1子分块网络的输入;3)第一神经网络中的第k子分块网络的输出,用于与第二神经网络中的第k子分块网络执行损失运算,得到第一损失函数(如B-loss)。
一些示例中,对第二神经网络(如学生网络)不同的子分块网络分别对应的输入和输出进行具体描述如下:
一、就第二神经网络中的第一类子分块网络而言,第一类子分块网络为第二神经网络中的第k子分块网络的情况下,第二神经网络中的第k子分块网络的输入,为第一神经网络中的所述第k-1子分块网络的输出,以及第二神经网络中的第k子分块网络的输入,为第二神经网络中的所述第k-1子分块网络的输出。
二、就第二神经网络中的第二类子分块网络而言,第二类子分块网络为第二神经网络中的第k+1子分块网络的情况下,第二神经网络中的第k+1子分块网络的输入,为第一神经网络中的第k子分块网络的输出,以及第二神经网络中的第k+1子分块网络的输入,为第二神经网络中的所述第k子分块网络的输出。
在一种可能的实现方式中,还包括:在第二神经网络中插入伪量化节点的情况下,第二神经网络中的多个子分块网络同时执行上述联合训练。插入伪量化节点的目的是,在联合训练过程中预先模拟浮点类型到定点类型的格式转换所导致的网络的精度损失。
一些示例中,获取第二神经网络,向该第二神经网络中插入伪量化节点,得到伪量化处理后的第二神经网络,该伪量化节点中包括待训练的量化参数(量化参数用于对该第二神经网络的网络参数进行量化)。通过伪量化处理后的第二神经网络执行上述联合训练,得到上述第三神经网络(即训练好的第二神经网络),从而避免了上述精度损失。
在一种可能的实现方式中,还包括:构建第二神经网络的搜索空间,在搜索空间中执行上述联合训练,以自适应知识蒸馏的方式进行神经网络结构的搜索,将得到的第三神经网络作为目标神经网络结构。将联合训练的自适应知识蒸馏方式,用于神经网络结构的搜索中,从而实现了一边搜索、一边训练,得到的第三神经网络即为全局优化好的网络,不需要再次训练。
针对搜索场景而言,一种解决方案为通过训练一个网络并使其专业化以实现高效,以及与基于学习步长的低比特量化(Learned Step-size Quantization,LSQ)相结合,进行神经网络结构搜索,得到n比特的量化神经网络,其流程如图3所示,包括如下内容:
S301、训练k比特的神经网络。
一些示例中,量化超网训练的过程中,可以训练一个k比特的超网,主要通过OFA、知识蒸馏和LSQ的方式同时更新网络权重和量化参数的规模(scale)。
S302、神经网络结构搜索。
一些示例中,在神经网络搜索的过程中,可以在给定的网络计算量和参数量限制下,搜索k比特下的最优目标神经网络。如果k刚好为最终的目标n(即k=n),则得到n比特的量化神经网络,结束搜索,并将n比特的量化神经网络作为最优的目标神经网络。
S303-S304、比特继承,k=k-1。
一些示例中,可以使用k比特下的模型权重和量化参数来初始化k-1比特模型,然后返回S301,继续训练。
相比本申请是基于自适应知识蒸馏方式进行搜索,该解决方案无法实现对量化模型的搜索,且在选出最优的目标神经网络后,需要重新开始训练,而采用本申请无需再次训练,联合训练后得到的第三神经网络即为最优的目标神经网络。
针对搜索场景而言,另一种解决方案为利用知识蒸馏的方式进行神经网络结构搜索,得到浮点的神经网络,如图4所示,包括如下内容:
一、设定教师网络,构建学生网络搜索空间:学生网络输入层(如stem层)与教师网络相同。学生网络的Block数量与教师网络相同,但学生网络每一个Block内部构建方式多样,形成超网,称为学生超网。
二、知识蒸馏:对于学生网络中的Block k,输入为教师网络Block k-1的输出(k=1时,输入为stem层输出),知识蒸馏采用的损失函数(Loss)的监督项为教师网络Block k的输出,通过这种方式完成对学生超网的知识蒸馏训练。
三、网络搜索:在通过知识蒸馏方法将学生超网训练完成后,利用深度优先搜索的方式对学生网络空间的模型进行评估和排序,再通过遍历搜索的方式,在排序后的网络找到满足参数量与计算量约束的最终网络。
相比本申请是基于自适应知识蒸馏方式进行搜索,该解决方案在训练过程中教师网络仅通过最终的Loss对学生网络进行知识蒸馏,无法将结构的知识传递给学生网络,换言之,与教师网络结构不一致的学生网络只能被动接收学习,每个块分别学习,只能达到局部优化的目的,无法得到最优的神经网络,而采用本申请可以达到全局优化的目的,联合训练后得到的第三神经网络即为最优的目标神经网络。
根据本申请的实施例,提供了一种图像识别方法,图5是根据本申请实施例的图像识别方法的流程示意图,该方法可以应用于图像识别装置,例如,该装置可以部署于单机、多机或集群系统中的终端或服务器或其它处理设备,可以实现图像识别等处理。其中,终端可以为用户设备(UE,User Equipment)、移动设备、个人数字处理(PDA,Personal DigitalAssistant)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图5所示,该方法应用于图1所示的集群系统中的任一节点或电子设备,如手机或台式机等中,包括:
S501、将图像数据输入采用上述实施例得到的第三神经网络。
S502、根据第三神经网络对图像数据进行识别,得到目标图像数据。
采用本申请,可以将图像数据输入采用上述实施例预先训练好的第三神经网络,从而,通过第三神经网络对图像数据进行识别,可以得到更为精确的目标图像数据。
根据本申请的实施例,提供了一种语音识别方法,图6是根据本申请实施例的语音识别方法的流程示意图,该方法可以应用于语音识别装置,例如,该装置可以部署于单机、多机或集群系统中的终端或服务器或其它处理设备,可以实现语音识别等处理。其中,终端可以为用户设备(UE,User Equipment)、移动设备、个人数字处理(PDA,Personal DigitalAssistant)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图6所示,该方法应用于图1所示的集群系统中的任一节点或电子设备,如手机或台式机等中,包括:
S601、将语音数据输入采用上述实施例得到的第三神经网络;
S602、根据第三神经网络对语音数据进行识别,得到目标语音数据。
采用本申请,可以将语音数据输入采用上述实施例预先训练好的第三神经网络,从而,通过第三神经网络对语音数据进行识别,可以得到更为精确的目标语音数据。
图7为在神经网络结构搜索场景中应用上述自适应知识蒸馏的一应用示例,如图7所示,在教师网络对学生网络进行监督下的联合训练中,引入了基于公式(1)-公式(2)得到的梯度自适应参数(Gradient Adaptive Parameters,GAP):
其中,gt和gs表示教师网络和学生网络在第i个Block的梯度,Wt和Ws分布代表教师网络和学生网络的权重。GAP的具体操作为:当GAP大于0时,说明梯度方向相同,进行梯度传递,反之则不进行梯度更新。
本应用示例中,通过引入GAP,可以同时规避上述图3-图4所示的两个解决方案的缺点。训练过程中通过分块指导的方式将教师网络的结构知识传递给学生网络,通过GAP规避训练过程中教师网络对学生的错误指导,再通过权重共享的方式同时更新Block中多个子结构,最终从Block中搜索得到最终完整的网络模型,且不需要重新训练。具体的,包括如下内容:
一、训练FP32神经网络,并作为FP32教师网络。
FP32教师网络是后续实现的基础,选取所需实现任务的FP32教师网络进行充分训练,达到期望的指标后,将该网络作为FP32教师网络。
二、构建学生网络的搜索空间。
构建学生网络模块的具体构建规则如下:
1)每个Block中包含{1,2,3}层。
2)对于每一层,如果为卷积结构,则通道(channel)的收缩比例为{0.6,0.8,1.0},例如,该层的channel数为40,收缩比例为0.6时,则有效运行的channel数为24;
如果卷积结构为MobileNet V2类似的倒残差结构,则宽度膨胀比(widthexpansion ratio)的选择范围为{3,4,6}。
3)卷积核大小(Kernel size)的选择范围为{3,5,7}。
4)整个学生网络Block可自定义,比如,可设为5个Block。
三、比特(bit)自适应知识蒸馏。
学生网络按照量化感知训练(QAT)的训练方式,插入伪量化节点,然后多个Block同时进行进行自适应知识蒸馏,与传统知识蒸馏不同的是不用与软标签(soft label)的Loss来对每个Block的梯度更新,soft label可以给网络带来更强的泛化能力,携带更多的信息,对噪声更加鲁棒。具体规则如下:
1)正向传播:正向传播过程中教师网络Block k的输入为上一个教师网络Blockk-1的输出。教师网络Block k的输出到三个地方,输入到下一个教师Block、输入到下一个学生Block,以及用于与学生网络Block k做B-loss。学生网络Block k的输入为两部分,一部分为教师网络Block k-1的输出,一部分为学生网络Block k-1的输出,两部分分别计算,结果分别输出。
2)反向传播:对于教师网络,不进行梯度更新。对于学生网络的更新规则为,从与GT的损失函数G-loss开始,计算GT对教师网络和学生网络分别的梯度,进而求得GAP。当GAP>0时,教师网络与学生网络更新的方向一致,则认为教师网络可以对学生网络进行“教学”,此时利用教师网络Block k与学生网络Block k的B-loss求解梯度对学生网络进行更新。
四、神经网络结构搜索。
将得到的全部学生网络取出,按OFA的方式:采样不同的网络参数配置,并对其进行测试,得到参数及指标数据集,训练一个该数据集的预测器,然后再利用进化算法得到最后的目标神经网络结构。
五、Bit继承。
将m比特的模型进行权重继承,对于伪量化节点的scale,令scale=2*scale,其余权重直接继承。
六、进行m-1比特训练。
令量化范围为m-1比特的数值范围,进行QAT训练,直到达到目标的比特设定。
可选的,上述搜索中的自适应蒸馏方法可以用于图像识别、语音识别的AI神经网络量化。
可选的,第二步中学生网络的网络参数可以调节,包括但不限于上述参数。
可选的,用于GT的量包括但不限于准确率(Accuracy)、平均精度(mAP)、峰值信噪比(PSNR)等用于评估目标检测算法的指标。
可选的,本应用示例可以采用低比特,该低比特包括但不限于1比特、2比特、4比特、8比特、16比特等。
可选的,在自适应知识蒸馏训练过程中,除梯度自适应参数外,还可以引入更多的参考变量以用于判断是否进行梯度更新,从而进一步提升学生网络的量化精度。
可选的,在自适应知识蒸馏梯度更新处理上,在GAP<0时,也可以选用GT的梯度进行更新。
采用本应用示例,通过自适应知识蒸馏,引入梯度自适应参数,通过计算梯度自适应参数来决定学生网络是否进行梯度更新,有针对性进行学习,提升了学生网络对知识蒸馏梯度利用的有效性,可以进一步提升学生网络的量化精度;通过自适应知识蒸馏,将搜索空间切分为块,各部分分开学习,并将搜索空间的切分与梯度自适应参数相结合,从而有利于教师网络将结构知识传递给学生网络,从而有利于找到最优的目标神经网络结构;通过自适应知识蒸馏,梯度自适应参数和各模块独立进行梯度更新,可以在利用共享参数使搜索空间内不同结构得到训练的同时,还可以降低共享参数带来的不同子网间的干扰。
需要指出的是,上面这些示例可以结合上述本申请实施例中的各种可能性,此处不做赘述。
根据本申请的实施例,提供了一种知识蒸馏的装置,图8是根据本申请实施例的知识蒸馏的装置的组成结构示意图,如图8所示,知识蒸馏的装置包括:获取单元801,用于获取已训练的第一神经网络;第一处理单元802,用于在所述第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对所述第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络;其中,所述第三神经网络为已训练好的第二神经网络。
在一种可能的实现方式中,所述多个子分块网络,包括至少两个类型;其中,第一类子分块网络,包括所述第二神经网络中的第一子分块网络及第n-1子分块网络,所述n为大于2的正整数;第二类子分块网络,包括所述第二神经网络中的第n子分块网络。
在一种可能的实现方式中,还包括:第二处理单元,用于:所述第一类子分块网络与所述第二类子分块网络在执行所述联合训练的过程中,所述第一类子分块网络的输入及输出不同于所述第二类子分块网络的输入及输出;其中,所述第一类子分块网络与所述第二类子分块网络的网络结构相同。
在一种可能的实现方式中,所述第一处理单元,用于:在所述第一神经网络的监督下,所述第一类子分块网络与所述第二类子分块网络执行所述联合训练,并采用所述梯度自适应参数进行梯度更新,直至满足预设条件,得到所述第三神经网络。
在一种可能的实现方式中,还包括:第三处理单元,用于:根据所述第一神经网络中的第n子分块网络对应的第一梯度及所述第二类子分块网络对应的第二梯度,得到所述梯度自适应参数;所述n为大于2的正整数;所述梯度自适应参数大于零的情况下,进行所述梯度更新。
在一种可能的实现方式中,所述第一神经网络及所述第二神经网络分别包括:第一子分块网络、第k-1子分块网络、第k子分块网络、第k+1子分块网络、第n-1子分块网络、第n子分块网络;所述k、所述n皆为大于2的正整数且k<n;其中,所述第一神经网络中的所述第k子分块网络的输入,为所述第一神经网络中的所述第k-1子分块网络的输出;所述第一神经网络中的所述第k子分块网络的输出,为所述第一神经网络中的所述第k+1子分块网络的输入;以及,所述第一神经网络中的所述第k子分块网络的输出,为所述第二神经网络中的所述第k+1子分块网络的输入;以及,所述第一神经网络中的所述第k子分块网络的输出,用于与所述第二神经网络中的所述第k子分块网络执行损失运算,得到第一损失函数。
在一种可能的实现方式中,所述第一类子分块网络为所述第二神经网络中的所述第k子分块网络的情况下,所述第二神经网络中的所述第k子分块网络的输入,为所述第一神经网络中的所述第k-1子分块网络的输出,以及所述第二神经网络中的所述第k子分块网络的输入,为所述第二神经网络中的所述第k-1子分块网络的输出。
在一种可能的实现方式中,所述第二类子分块网络为所述第二神经网络中的所述第k+1子分块网络的情况下,所述第二神经网络中的所述第k+1子分块网络的输入,为所述第一神经网络中的所述第k子分块网络的输出,以及所述第二神经网络中的所述第k+1子分块网络的输入,为所述第二神经网络中的所述第k子分块网络的输出。
在一种可能的实现方式中,还包括:第四处理单元,用于:在所述第二神经网络中插入伪量化节点的情况下,所述第二神经网络中的所述多个子分块网络同时执行所述联合训练。
在一种可能的实现方式中,还包括:第五处理单元,用于:构建所述第二神经网络的搜索空间;在所述搜索空间中执行所述联合训练,以自适应知识蒸馏的方式进行神经网络结构的搜索,将得到的所述第三神经网络作为目标神经网络结构。
根据本申请的实施例,提供了一种图像识别装置,图9是根据本申请实施例的图像识别装置的组成结构示意图,如图9所示,图像识别装置包括:第六处理单元901,用于将图像数据输入采用上述实施例得到的第三神经网络;第七处理单元902,用于根据所述第三神经网络对所述图像数据进行识别,得到目标图像数据。
根据本申请的实施例,提供了一种语音识别装置,图10是根据本申请实施例的语音识别装置的组成结构示意图,如图10所示,语音识别装置包括:第八处理单元1001,用于将语音数据输入采用上述实施例得到的第三神经网络;第九处理单元1002,用于根据所述第三神经网络对所述语音数据进行识别,得到目标语音数据。
本申请的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图11示出了可以用来实施本申请的实施例的示例电子设备1100的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图11所示,电子设备1100包括计算单元1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序,来执行各种适当的动作和处理。在RAM 1103中,还可存储电子设备1100操作所需的各种程序和数据。计算单元1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
电子设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许电子设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1101可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1101的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1101执行上文所描述的各个方法和处理,例如知识蒸馏方法/图像识别方法/语音识别方法。例如,在一些实施例中,知识蒸馏方法/图像识别方法/语音识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM1102和/或通信单元1109而被载入和/或安装到电子设备1100上。当计算机程序加载到RAM1103并由计算单元1101执行时,可以执行上文描述的知识蒸馏方法/图像识别方法/语音识别方法的一个或多个步骤。备选地,在其他实施例中,计算单元1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行知识蒸馏方法/图像识别方法/语音识别方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (27)
1.一种知识蒸馏的方法,其特征在于,所述方法包括:
获取已训练的第一神经网络;
在所述第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对所述第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络;
其中,所述第三神经网络为已训练好的第二神经网络。
2.根据权利要求1所述的方法,其特征在于,所述多个子分块网络,包括至少两个类型;其中,
第一类子分块网络,包括所述第二神经网络中的第一子分块网络及第n-1子分块网络,所述n为大于2的正整数;
第二类子分块网络,包括所述第二神经网络中的第n子分块网络。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述第一类子分块网络与所述第二类子分块网络在执行所述联合训练的过程中,所述第一类子分块网络的输入及输出不同于所述第二类子分块网络的输入及输出;
其中,所述第一类子分块网络与所述第二类子分块网络的网络结构相同。
4.根据权利要求2所述的方法,其特征在于,所述在所述第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对所述第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络,包括:
在所述第一神经网络的监督下,所述第一类子分块网络与所述第二类子分块网络执行所述联合训练,并采用所述梯度自适应参数进行梯度更新,直至满足预设条件,得到所述第三神经网络。
5.根据权利要求4所述的方法,其特征在于,还包括:
根据所述第一神经网络中的第n子分块网络对应的第一梯度及所述第二类子分块网络对应的第二梯度,得到所述梯度自适应参数;所述n为大于2的正整数;
所述梯度自适应参数大于零的情况下,进行所述梯度更新。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一神经网络及所述第二神经网络分别包括:第一子分块网络、第k-1子分块网络、第k子分块网络、第k+1子分块网络、第n-1子分块网络、第n子分块网络;所述k、所述n皆为大于2的正整数且k<n;其中,
所述第一神经网络中的所述第k子分块网络的输入,为所述第一神经网络中的所述第k-1子分块网络的输出;
所述第一神经网络中的所述第k子分块网络的输出,为所述第一神经网络中的所述第k+1子分块网络的输入;以及,
所述第一神经网络中的所述第k子分块网络的输出,为所述第二神经网络中的所述第k+1子分块网络的输入;以及,
所述第一神经网络中的所述第k子分块网络的输出,用于与所述第二神经网络中的所述第k子分块网络执行损失运算,得到第一损失函数。
7.根据权利要求6所述的方法,其特征在于,所述第一类子分块网络为所述第二神经网络中的所述第k子分块网络的情况下,所述第二神经网络中的所述第k子分块网络的输入,为所述第一神经网络中的所述第k-1子分块网络的输出,以及
所述第二神经网络中的所述第k子分块网络的输入,为所述第二神经网络中的所述第k-1子分块网络的输出。
8.根据权利要求6所述的方法,其特征在于,所述第二类子分块网络为所述第二神经网络中的所述第k+1子分块网络的情况下,所述第二神经网络中的所述第k+1子分块网络的输入,为所述第一神经网络中的所述第k子分块网络的输出,以及
所述第二神经网络中的所述第k+1子分块网络的输入,为所述第二神经网络中的所述第k子分块网络的输出。
9.根据权利要求1-5中任一项所述的方法,还包括:
在所述第二神经网络中插入伪量化节点的情况下,所述第二神经网络中的所述多个子分块网络同时执行所述联合训练。
10.根据权利要求1-5中任一项所述的方法,还包括:
构建所述第二神经网络的搜索空间;
在所述搜索空间中执行所述联合训练,以自适应知识蒸馏的方式进行神经网络结构的搜索,将得到的所述第三神经网络作为目标神经网络结构。
11.一种图像识别方法,其特征在于,所述方法包括:
将图像数据输入采用上述权利要求1-10得到的第三神经网络;
根据所述第三神经网络对所述图像数据进行识别,得到目标图像数据。
12.一种语音识别方法,其特征在于,所述方法包括:
将语音数据输入采用上述权利要求1-10得到的第三神经网络;
根据所述第三神经网络对所述语音数据进行识别,得到目标语音数据。
13.一种知识蒸馏的装置,其特征在于,所述装置包括:
获取单元,用于获取已训练的第一神经网络;
第一处理单元,用于在所述第一神经网络对第二神经网络中的多个子分块网络进行监督的情况下,采用梯度自适应参数对所述第二神经网络中的多个子分块网络执行用于知识蒸馏的联合训练,直至满足预设条件,得到第三神经网络;
其中,所述第三神经网络为已训练好的第二神经网络。
14.根据权利要求13所述的装置,其特征在于,所述多个子分块网络,包括至少两个类型;其中,
第一类子分块网络,包括所述第二神经网络中的第一子分块网络及第n-1子分块网络,所述n为大于2的正整数;
第二类子分块网络,包括所述第二神经网络中的第n子分块网络。
15.根据权利要求14所述的装置,其特征在于,还包括:第二处理单元,用于:
所述第一类子分块网络与所述第二类子分块网络在执行所述联合训练的过程中,所述第一类子分块网络的输入及输出不同于所述第二类子分块网络的输入及输出;
其中,所述第一类子分块网络与所述第二类子分块网络的网络结构相同。
16.根据权利要求14所述的装置,其特征在于,所述第一处理单元,用于:
在所述第一神经网络的监督下,所述第一类子分块网络与所述第二类子分块网络执行所述联合训练,并采用所述梯度自适应参数进行梯度更新,直至满足预设条件,得到所述第三神经网络。
17.根据权利要求16所述的装置,其特征在于,还包括:第三处理单元,用于:
根据所述第一神经网络中的第n子分块网络对应的第一梯度及所述第二类子分块网络对应的第二梯度,得到所述梯度自适应参数;所述n为大于2的正整数;
所述梯度自适应参数大于零的情况下,进行所述梯度更新。
18.根据权利要求13-16中任一项所述的装置,其特征在于,所述第一神经网络及所述第二神经网络分别包括:第一子分块网络、第k-1子分块网络、第k子分块网络、第k+1子分块网络、第n-1子分块网络、第n子分块网络;所述k、所述n皆为大于2的正整数且k<n;其中,
所述第一神经网络中的所述第k子分块网络的输入,为所述第一神经网络中的所述第k-1子分块网络的输出;
所述第一神经网络中的所述第k子分块网络的输出,为所述第一神经网络中的所述第k+1子分块网络的输入;以及,
所述第一神经网络中的所述第k子分块网络的输出,为所述第二神经网络中的所述第k+1子分块网络的输入;以及,
所述第一神经网络中的所述第k子分块网络的输出,用于与所述第二神经网络中的所述第k子分块网络执行损失运算,得到第一损失函数。
19.根据权利要求18所述的装置,其特征在于,所述第一类子分块网络为所述第二神经网络中的所述第k子分块网络的情况下,所述第二神经网络中的所述第k子分块网络的输入,为所述第一神经网络中的所述第k-1子分块网络的输出,以及
所述第二神经网络中的所述第k子分块网络的输入,为所述第二神经网络中的所述第k-1子分块网络的输出。
20.根据权利要求18所述的装置,其特征在于,所述第二类子分块网络为所述第二神经网络中的所述第k+1子分块网络的情况下,所述第二神经网络中的所述第k+1子分块网络的输入,为所述第一神经网络中的所述第k子分块网络的输出,以及
所述第二神经网络中的所述第k+1子分块网络的输入,为所述第二神经网络中的所述第k子分块网络的输出。
21.根据权利要求13-17中任一项所述的装置,还包括:第四处理单元,用于:
在所述第二神经网络中插入伪量化节点的情况下,所述第二神经网络中的所述多个子分块网络同时执行所述联合训练。
22.根据权利要求13-17中任一项所述的装置,还包括:第五处理单元,用于:
构建所述第二神经网络的搜索空间;
在所述搜索空间中执行所述联合训练,以自适应知识蒸馏的方式进行神经网络结构的搜索,将得到的所述第三神经网络作为目标神经网络结构。
23.一种图像识别装置,其特征在于,所述装置包括:
第六处理单元,用于将图像数据输入采用上述权利要求1-10得到的第三神经网络;
第七处理单元,用于根据所述第三神经网络对所述图像数据进行识别,得到目标图像数据。
24.一种语音识别装置,其特征在于,所述装置包括:
第八处理单元,用于将语音数据输入采用上述权利要求1-10得到的第三神经网络;
第九处理单元,用于根据所述第三神经网络对所述语音数据进行识别,得到目标语音数据。
25.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-12中任一项所述的方法。
26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-12中任一项所述的方法。
27.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210658332.3A CN117273058A (zh) | 2022-06-10 | 2022-06-10 | 一种知识蒸馏的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210658332.3A CN117273058A (zh) | 2022-06-10 | 2022-06-10 | 一种知识蒸馏的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117273058A true CN117273058A (zh) | 2023-12-22 |
Family
ID=89204989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210658332.3A Pending CN117273058A (zh) | 2022-06-10 | 2022-06-10 | 一种知识蒸馏的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117273058A (zh) |
-
2022
- 2022-06-10 CN CN202210658332.3A patent/CN117273058A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114357105B (zh) | 地理预训练模型的预训练方法及模型微调方法 | |
CN112580733B (zh) | 分类模型的训练方法、装置、设备以及存储介质 | |
CN116882591B (zh) | 信息生成方法、装置、电子设备和计算机可读介质 | |
CN113095129A (zh) | 姿态估计模型训练方法、姿态估计方法、装置和电子设备 | |
US20220130495A1 (en) | Method and Device for Determining Correlation Between Drug and Target, and Electronic Device | |
CN111353601A (zh) | 用于预测模型结构的延时的方法和装置 | |
CN115456167B (zh) | 轻量级模型训练方法、图像处理方法、装置及电子设备 | |
CN114972877B (zh) | 一种图像分类模型训练方法、装置及电子设备 | |
Huai et al. | Latency-constrained DNN architecture learning for edge systems using zerorized batch normalization | |
CN114758130B (zh) | 图像处理及模型训练方法、装置、设备和存储介质 | |
CN115759209B (zh) | 神经网络模型的量化方法、装置、电子设备及介质 | |
CN116341634B (zh) | 神经结构搜索模型的训练方法、装置及电子设备 | |
CN115049730B (zh) | 零件装配方法、装置、电子设备及存储介质 | |
CN117273058A (zh) | 一种知识蒸馏的方法、装置、电子设备及存储介质 | |
CN117351299A (zh) | 图像生成及模型训练方法、装置、设备和存储介质 | |
CN113361621B (zh) | 用于训练模型的方法和装置 | |
CN115983372A (zh) | 一种神经网络训练方法、装置、计算设备及存储介质 | |
CN116030235A (zh) | 目标检测模型训练方法、目标检测方法、装置和电子设备 | |
CN112784967B (zh) | 信息处理方法、装置以及电子设备 | |
CN111353585B (zh) | 神经网络模型的结构搜索方法和装置 | |
CN114817476A (zh) | 语言模型的训练方法、装置、电子设备和存储介质 | |
CN114792097A (zh) | 预训练模型提示向量的确定方法、装置及电子设备 | |
CN114490965A (zh) | 问题处理方法、装置、电子设备和存储介质 | |
CN113361701A (zh) | 神经网络模型的量化方法和装置 | |
US20230342193A1 (en) | Task processing method, task processing device, and computer program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |