CN113762368A - 数据蒸馏的方法、装置、电子设备和存储介质 - Google Patents
数据蒸馏的方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113762368A CN113762368A CN202110994122.7A CN202110994122A CN113762368A CN 113762368 A CN113762368 A CN 113762368A CN 202110994122 A CN202110994122 A CN 202110994122A CN 113762368 A CN113762368 A CN 113762368A
- Authority
- CN
- China
- Prior art keywords
- batch
- data
- distillation
- distillation data
- image
- 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
- 238000004821 distillation Methods 0.000 title claims abstract description 386
- 238000000034 method Methods 0.000 title claims abstract description 122
- 238000012549 training Methods 0.000 claims abstract description 245
- 238000002156 mixing Methods 0.000 claims description 59
- 230000008569 process Effects 0.000 claims description 38
- 238000010606 normalization Methods 0.000 claims description 35
- 239000002131 composite material Substances 0.000 claims description 23
- 238000007906 compression Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 20
- 230000006835 compression Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012935 Averaging Methods 0.000 claims description 5
- 230000001186 cumulative effect Effects 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 238000003786 synthesis reaction Methods 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 238000013138 pruning Methods 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 239000000203 mixture Substances 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000011478 gradient descent method Methods 0.000 description 4
- 241000282414 Homo sapiens Species 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000013140 knowledge distillation Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种数据蒸馏的方法、装置、电子设备和存储介质,所述方法包括:确定至少一批待训练的第一蒸馏数据;确定至少两个预训练模型;基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据。
Description
技术领域
本申请涉及计算机视觉领域,涉及但不限定于数据蒸馏的方法、装置、电子设备和存储介质。
背景技术
大数据时代深度学习模型运用的越来越频繁,为了将深度学习模型应用到移动设备、传感器等小型设备,有时必须将模型进行压缩裁剪才能部署到小型设备。
神经网络的压缩通常需要原始的训练数据,这是因为压缩后的模型一般还需要进行训练才能恢复之前的性能。然而原始数据在有些情况下是具有私密性的,即原始数据面临着无法获得的风险。
发明内容
本申请实施例提供一种数据蒸馏的方法、装置、电子设备和存储介质。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种数据蒸馏的方法,包括:确定至少一批待训练的第一蒸馏数据;每一批所述第一蒸馏数据中存在至少一个包括两种数据标签信息的混合数据;确定至少两个预训练模型;其中,每一所述预训练模型中存储原始数据的第一统计信息;基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;
基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据。
在一些可能的实施例中,所述基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失,包括:确定每一批所述第一蒸馏数据在每一所述预训练模型中的第二统计信息;针对每一所述预训练模型,确定所述第一统计信息与所述第二统计信息之间的批归一化统计损失。
这样,通过匹配每一预训练模型中第一蒸馏数据和原始数据之间的统计损失,并进一步通过确定目标损失同时匹配第一蒸馏数据和多个预训练模型的特征,将各个预训练模型的通用特征空间结合起来,从而使得训练得到的目标蒸馏数据相比于单模型蒸馏的数据更加通用。
在一些可能的实施例中,所述确定至少两个预训练模型,包括:从预训练模型库中随机选择至少两个不同类型的预训练模型。
这样,对每一批待训练的第一蒸馏数据,从预训练库中随机采样至少两个不同类型的预训练模型用于特征混合,使得蒸馏出来的数据匹配出任意预训练模型的特征分布,从而能够获得更好的训练速度和效果平衡。
在一些可能的实施例中,所述基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据,包括:基于每一所述预训练模型的批归一化统计损失和所述目标交叉熵损失,确定相应预训练模型对应的第一损失;对各个所述预训练模型对应的所述第一损失求均值,得到每一批所述第一蒸馏数据经过所述至少两个预训练模型的目标损失;基于所述目标损失,对每一批所述第一蒸馏数据进行反向传播训练,得到所述目标蒸馏数据。
这样,通过结合目标交叉熵损失和批归一化统计损失得到一批第一蒸馏数据针对每一预训练模型的第一损失,进而对每一所述预训练模型对应的第一损失进行线性整合得到目标损失,可以平均每个预训练模型产生的特征偏差,从而使得最终得到的目标蒸馏数据更通用。
在一些可能的实施例中,所述确定至少一批待训练的第一蒸馏数据,包括:基于原始数据的分布信息,初始化至少一批第二蒸馏数据;在每一次迭代训练中,对每一批所述第二蒸馏数据中每两个图像数据进行混合,得到每一批所述第一蒸馏数据。
这样,通过在每一次迭代训练中对初始化的一批第二蒸馏数据进行随机数据混合,可以缩小反演解空间,同时使得训练出来的目标蒸馏数据的视觉信息更加鲁棒,能够适应不同尺度和空间方位。
在一些可能的实施例中,所述对每一批所述第二蒸馏数据中每两个图像数据进行混合,得到每一批所述第一蒸馏数据,包括:从每一批所述第二蒸馏数据中随机选取至少一对第一图像和第二图像;将每一所述第一图像的尺寸按照特定比例缩小;将缩小后的所述第一图像随机覆盖到对应的所述第二图像中,得到每一批所述第一蒸馏数据。
这样,在数据混合中将第一图像进行等比例缩小并随机覆盖到第二图像中,此时混合后的合成图像将包含第一图像和第二图像的信息。在训练每一批第一蒸馏数据的过程中,确保两个混合的图像信息能够被预训练模型识别并正确优化。
在一些可能的实施例中,所述将缩小后的所述第一图像覆盖到对应的所述第二图像中,得到每一批所述第一蒸馏数据,包括:按照所述特定比例,在对应的所述第二图像中随机生成待覆盖的混合区域;基于所述混合区域的边界框,随机生成二进制掩码;通过所述二进制掩码对缩小后的所述第一图像的每一像素值和所述第二图像中对应的像素值进行叠加,得到每一批所述第一蒸馏数据。
这样,通过随机生成二进制掩码叠加缩小后的第一图像的像素值和第二图像的像素值,实现第一蒸馏数据中随机的两张图像的混合,使得合成图像经过预训练模型训练优化时仍然具有辨别力。
在一些可能的实施例中,所述每一批第一蒸馏数据中包括由第一图像和第二图像混合得到的合成图像,所述基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失,包括:基于所述第一图像的初始化标签和所述第二图像的初始化标签,确定所述合成图像的混合交叉熵损失;基于所述每一批第一蒸馏数据中除所述第一图像和所述第二图像之外的其他图像的初始化标签,确定所述其他图像的累计交叉熵损失;基于所述混合交叉熵损失和所述累计交叉熵损失,确定每一批所述第一蒸馏数据经过每一所述预训练模型后的目标交叉熵损失。
这样,通过第一图像和第二图像各自的初始化标签确定合成图像的混合交叉熵损失,可以确保原始第一图像和第二图像的信息能够被预训练模型识别并正确优化。对一批第一蒸馏数据中合成图像的混合交叉熵损失和其他图像的累计交叉熵损失求和后最小化,得到每一批第一蒸馏数据经过每一预训练模型后的目标交叉熵损失,从而使得最终得到的目标蒸馏数据更接近真实数据。在一些可能的实施例中,所述基于所述第一图像的初始化标签和所述第二图像的初始化标签,确定所述合成图像的混合交叉熵损失:基于所述第一图像的初始化标签,确定每一批所述第一蒸馏数据通过每一所述预训练模型后的第一交叉熵损失;基于所述第二图像的初始化标签,确定每一批所述第一蒸馏数据通过每一所述预训练模型后的第二交叉熵损失;基于所述第一图像与所述第二图像之间的合成比例,对所述第一交叉熵损失和所述第二交叉损失进行线性求和,得到所述合成图像的混合交叉熵损失。
这样,通过使用混合数据前各图像的初始化标签确定合成图像的混合交叉熵损失,有助于在训练时生成仍然具有辨别力的鲁棒特性,同时能够防止不正确的反演解,合成具有精确标签信息的蒸馏图像。
在一些可能的实施例中,所述第一统计信息包括均值和方差,每一所述预训练模型包括至少两个组成块,每一所述组成块包括卷积层和批归一化层,所述方法还包括:从每一所述组成块的批归一化层中提取所述原始数据的均值和方差;所述均值和方差是通过所述卷积层提取的所述原始数据的特征进行统计得到的;基于每一所述预训练模型中所述至少两个组成块的均值和方差,确定每一所述预训练模型中的第一统计信息。
这样,通过提取预训练模型中每一组成块中批归一化层存储的均值和方差,确定对应预训练模型的第一统计信息,确保训练得到的目标蒸馏数据可以合理地模拟预训练网络中原始数据的激活分布。
在一些可能的实施例中,所述分布信息为高斯分布信息,所述基于原始数据的分布信息,初始化至少一批第二蒸馏数据,包括:获取所述原始数据的高斯分布信息;基于从所述高斯分布信息中随机采样的数据,对至少N个初始像素值矩阵进行初始化,得到每一批所述第二蒸馏数据;N为大于等于2的整数。
这样,从原始数据的高斯分布信息中随机采样数据,并初始化得到至少一批第二蒸馏数据,弥补不能直接获取原始数据的不足。
在一些可能的实施例中,所述基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据,包括:基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,确定每一批所述第一蒸馏数据经过所述至少两个预训练模型的目标损失;在反向传播过程中的每一次迭代训练中,确定所述目标损失针对所述第一蒸馏数据的梯度;基于所述梯度,对所述第一蒸馏数据中每一数据进行更新;在更新后的第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失收敛到稳定值时,得到所述目标蒸馏数据。
这样,在反向传播过程中通过随机梯度下降方法优化第一蒸馏数据,加快每一批第一蒸馏数据的迭代训练过程。
在一些可能的实施例中,所述方法还包括:在至少一批所述目标蒸馏数据的数量达到特定阈值的情况下,对每一所述预训练模型进行模型压缩。
这样,由于生成的目标蒸馏数据拥有更多视觉信息且通用,可以直接用于模型压缩过程,简化压缩流程。
第二方面,本申请实施例提供一种数据蒸馏的装置,包括所述装置包括第一确定模块、第二确定模块、第三确定模块、第四确定模块和训练模块,其中:
所述第一确定模块,用于确定至少一批待训练的第一蒸馏数据;每一批所述第一蒸馏数据中存在至少一个包括两种数据标签信息的混合数据;所述第二确定模块,用于确定至少两个预训练模型;其中,每一所述预训练模型中存储原始数据的第一统计信息;所述第三确定模块,用于基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;所述第四确定模块,用于基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;所述训练模块,用于基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据蒸馏的方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据蒸馏的方法中的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,首先,确定至少一批待训练的第一蒸馏数据;然后确定至少两个预训练模型;再基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;最后基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据;如此,通过数据混合生成鲁棒的视觉信息,同时利用多个预训练模型中存储的原始数据的特征,使得训练出来的目标蒸馏数据能够匹配出多个模型的特征分布,从而目标蒸馏数据更通用,效果也更好。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1为本申请实施例提供的数据蒸馏的方法的流程示意图;
图2为本申请实施例提供的数据蒸馏的方法的流程示意图;
图3为本申请实施例提供的数据蒸馏的方法的流程示意图;
图4A为本申请实施例提供的数据蒸馏的方法的流程示意图;
图4B为本申请实施例提供的数据混合方法的示意图;
图5A为本申请实施例提供的数据蒸馏的方法的逻辑流程图;
图5B为本申请实施例提供的结合数据混合和特征混合的算法框架;
图5C为本申请实施例提供的结合数据混合和特征混合的训练流程示意图;
图6为本申请实施例提供的一种数据蒸馏的装置的组成结构示意图;
图7为本申请实施例提供的一种电子设备的硬件实体示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。以下实施例用于说明本申请,但不用来限制本申请的范围。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换预设的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请实施例所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本申请实施例提供的方案涉及深度学习技术领域,为了便于理解本申请实施例的方案,首先对相关技术中涉及的名词进行简单说明:
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本申请实施例所涉及机器学习技术。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
数据集蒸馏(Dataset Distillation)与知识蒸馏即将知识从复杂网络迁移到较简单模型不同,该方法保持模型不变,将原始数据集中大量数据集(通常包含数千或数百万图像)的知识压缩到少量合成数据上,同时在合成数据上训练的模型性能与在原始数据集上的模型性能相差无几。
相关技术中提供的无数据压缩方法中使用的蒸馏数据是从一个预训练模型中通过蒸馏而训练得到的,这个预训练模型中存储了一些原始训练数据的特征,可以反映原始训练数据的分布性质。于是,当向预训练模型输入任意的初始化图片,可以观察模型输出的蒸馏图片的特征是否与之前的原始训练图片的特征一致。最小化这两个特征的差异(此过程可以称作数据蒸馏),就可以获得与原始训练图片非常接近的蒸馏图片。而蒸馏图片则可以继续用于训练模型来提升压缩模型的性能。
数据蒸馏过程能够有效摆脱模型压缩过程中对原始训练数据的依赖。但是现有数据蒸馏方法依然存在两个问题:(1)生成的蒸馏数据不通用。原始训练数据可以用于压缩任意的预训练模型,然而,预训练模型A生成的蒸馏数据很难用于压缩预训练模型B,反之同理。(2)生成的蒸馏数据不准确,从预训练模型中生成蒸馏数据相当于求解逆函数的问题。然而,神经网络是高度不可逆的且高度非凸,造成了生成的蒸馏数据不准确,和原始训练图片存在较大差异。
本申请实施例提供一种数据蒸馏的方法,应用于电子设备。所述电子设备包括但不限于手机、笔记本电脑、平板电脑和掌上上网设备、多媒体设备、流媒体设备、移动互联网设备、可穿戴设备或其他类型的设备。该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。处理器可以用于进行生成蒸馏数据过程的处理,存储器可以用于存储生成蒸馏数据过程中需要的中间数据以及产生的目标蒸馏数据。
图1为本申请实施例提供的数据蒸馏的方法的流程示意图,如图1所示,所述方法至少包括以下步骤:
步骤S110,确定至少一批待训练的第一蒸馏数据;
这里,所述至少一批待训练的第一蒸馏数据指一个或多个批量(batch)的数据图像,批量大小是一个超参数,用于定义在每一次训练过程中预训练模型要处理的样本数。
每一批所述第一蒸馏数据中存在至少一个包括两种数据标签信息的混合数据。例如混合数据为由两个图像进行混合得到的合成图像,则该合成图像携带了原始两个图像的所有标签信息。所述待训练的第一蒸馏数据可为矩阵形式,可以通过原始数据的分布信息对矩阵中的像素值进行随机初始化。矩阵的行和列的具体取值也可根据实际需要而定。通过这种方式,可快速方便地完成得到待训练的第一蒸馏数据,从而为后续处理提供良好基础。
步骤S120,确定至少两个预训练模型;
这里,所述预训练模型指的是模型在训练开始时可加载与之具有相同网络结构的模型参数,目的是特征迁移使模型效果更佳。
在一些实施方式中,所述预训练模型包括卷积神经网络(Convolutional NeuralNetwork)、递归神经网络(Recursive Neural Network,RNN)、循环神经网络(RecurrentNeural Network,RNN)、深度神经网络(Deep Neural Network,DNN)中的一个或者多个,本申请实施例对此不作限定。
每一所述预训练模型中存储所述原始数据的第一统计信息,例如均值、标准值和方差等统计值。其中,均值为正态分布曲线的期望值,该值决定了原始数据分布的位置;方差为标准差的平方,标准差决定了原始数据分布的幅度。
需要说明的是,在每个神经网络中,训练数据的分布特征在其唯一的特征空间中进行编码和处理。因此,在利用原始数据训练预训练模型的过程中,在预训练模型的每一组成块的批归一化层中存储了原始数据的第一统计信息。
步骤S130,基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;
这里,首先通过匹配每一所述预训练模型中的第一统计信息和第一蒸馏数据在每一预训练模型中的第二统计信息,确定相应预训练模型中第一蒸馏数据和原始数据之间的统计损失,进而可以进一步匹配第一蒸馏数据和多个预训练模型的统计特征,将各个预训练模型的通用特征空间结合起来,从而使得训练得到的目标蒸馏数据相比于单模型蒸馏的数据更加通用。
需要说明的是,预训练模型中批归一化层的计算的均值与方差都是基于当前批包括的所有第一蒸馏数据。
步骤S140,基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;
这里,所述初始化标签是在利用原始数据的高斯分布初始化第一蒸馏数据时,随机初始化的,例如为一批第一蒸馏数据中每一数据设定1至1000中任一数值,作为该数据的初始化标签。其中,不同数据的初始化标签可以相同,也可以不相同。
通过匹配每一数据的初始化标签与经过预训练模型输出的相应数据的预测标签,并将一批第一蒸馏数据中所有数据的匹配结果进行线性求和。可以确定一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失。
步骤S150,基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据。
这里,所述目标蒸馏数据为与原始训练图片非常接近的蒸馏图片。通常目标蒸馏数据上有一定的信息,编码了每个类别的判别特征。
对每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失进行线性处理,例如先确定每一预训练模型的累计损失再对所有预训练模型进行求和再求平均,可以确定第一蒸馏数据经过所述至少两个预训练模型的目标损失。
在反向传播过程中计算目标损失针对第一蒸馏数据的梯度,进行梯度下降更新如随机梯度下降方法(Stochastic Gradient Descent,SGD),逐步优化第一蒸馏数据,经过两万次左右的迭代训练,最终得到目标蒸馏数据。
在本申请实施例中,首先,确定至少一批待训练的第一蒸馏数据;然后确定至少两个预训练模型;再基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;最后基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据;如此,通过数据混合生成鲁棒的视觉信息,同时利用多个预训练模型中存储的原始数据的特征,使得训练出来的目标蒸馏数据能够匹配出多个模型的特征分布,从而目标蒸馏数据更通用,效果也更好。
图2为本申请实施例提供的数据蒸馏的方法的流程示意图,如图2所示,所述方法至少包括以下步骤:
步骤S210,确定至少一批待训练的第一蒸馏数据;
这里,每一批所述第一蒸馏数据中存在至少一个包括两种数据标签信息的混合数据。
步骤S220,从预训练模型库中随机选择至少两个不同类型的预训练模型;
这里,每一所述预训练模型中存储所述原始数据的第一统计信息。不同类型的预训练模型的网络结构不同。
值得注意的是,本申请实施例中的特征混合方法需要多个模型的特征信息,但是模型过多会影响优化的速度。因此对与每一批待优化的第一蒸馏数据,只采样一小部分的模型,用于特征混合。实验证明三个模型能带来最好的速度和效果平衡。
这样,对每一批待训练的第一蒸馏数据,从预训练库中随机采样至少两个不同类型的预训练模型用于特征混合,使得蒸馏出来的数据匹配出任意预训练模型的特征分布,从而能够获得更好的训练速度和效果平衡。
步骤S230,确定每一批所述第一蒸馏数据在每一所述预训练模型中的第二统计信息;
这里,由于在每个神经网络中,训练数据的分布特征在其唯一的特征空间即批归一化(Batch Normalization,BN)层中进行编码和处理。因此,第一蒸馏数据可以合理地模拟预训练网络中原始图像的特征分布。在每一次对第一蒸馏数据进行蒸馏训练后,从每一预训练模型的批归一化层中提取激活平均值和方差作为第一蒸馏数据在相应预训练模型中的第二统计信息。
步骤S240,针对每一所述预训练模型,确定所述第一统计信息与所述第二统计信息之间的批归一化统计损失;
这里,通过匹配第一蒸馏数据在每一预训练模型中的第二统计信息与相应预训练模型中存储的第二统计信息,确定针对每一所述预训练模型的批归一化统计损失。
在一些实施方式中,所述第一统计信息包括均值和方差,每一所述预训练模型包括至少两个组成块,每一所述组成块包括卷积层和批归一化层,可以通过以下步骤确定每一所述预训练模型中的第一统计信息:首先,从每一所述组成块的批归一化层中提取所述原始数据的均值和方差;所述均值和方差是通过所述卷积层提取的所述原始数据的特征进行统计得到的;然后,基于每一所述预训练模型中所述至少两个组成块的均值和方差,确定每一所述预训练模型中的第一统计信息。这样,通过提取预训练模型中每一组成块中批归一化层存储的均值和方差,确定对应预训练模型的第一统计信息,确保训练得到的目标蒸馏数据可以合理地模拟预训练网络中原始数据的激活分布。
示例地,可以通过以下公式(1)确定针对每一所述预训练模型的批归一化统计损失LBN:
步骤S250,基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;
这里,所述目标交叉熵损失为预训练模型的最后一层输出的总损失。
可以通过以下公式(2),确定一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失LCE:
值得注意的是,对于一批第一蒸馏数据中的混合数据即由两个图像进行混合得到的合成图像,该合成图像的标签为基于原始两个图像的标签确定的混合标签。
步骤S260,基于每一所述预训练模型的批归一化统计损失和所述目标交叉熵损失,确定相应预训练模型对应的第一损失;
这里,针对每一预训练模型,对计算的批归一化统计损失和目标交叉熵损失进行线性求和,得到相应预训练模型对应的第一损失。
步骤S270,对各个所述预训练模型对应的所述第一损失求均值,得到每一批所述第一蒸馏数据经过所述至少两个预训练模型的目标损失;
这里,先将所有预训练模型对应的第一损失进行求和再求平均后最小化,得到每一批所述第一蒸馏数据经过所述至少两个预训练模型的目标损失。
示例地,考虑一个包括至少两个预训练模型的模型簇M={A1,A2,...,Am},可以通过以下公式(3)上述目标损失,旨在同时结合特征混合和数据混合优化每一批第一蒸馏数据:
在一些实施方式中,还可以对第一蒸馏数据施加先验损失,以确保图像大体平滑,其中先验损失定义为第一蒸馏数据与其高斯模糊版本之间的均方误差。因此,结合批归一化统计损失、目标交叉熵损失和先验损失这三种一起确定最终最小化目标作为目标损失。
这里,通过匹配第一蒸馏数据和多个预训练模型的特征之间的批归一化统计损失和目标交叉熵损失,以确定第一蒸馏数据经过所述至少两个预训练模型的目标损失。这样,通过确定目标损失将各个预训练模型的通用特征空间结合起来,从而使得训练得到的目标蒸馏数据相比于单模型蒸馏的数据更加通用。
步骤S280,基于所述目标损失,对每一批所述第一蒸馏数据进行反向传播训练,得到所述目标蒸馏数据。
这里,对每一批第一蒸馏数据的优化会使用随机梯度下降(Stochastic GradientDescent,SGD)方法,每一批数据从初始化到训练结束会经历两万次迭代。随机梯度下降是一种简单但非常有效的方法,多用于支持向量机、逻辑回归等凸损失函数下的线性分类器的学习。每次只随机取一个维度中的一条数据求梯度,并将结果作为这个维度梯度下降的步长。
在一些实施方式中,步骤S280可以通过以下过程实现:每一次迭代训练中,确定所述目标损失针对所述第一蒸馏数据的梯度;基于所述梯度,对所述第一蒸馏数据中每一数据进行更新;在更新后的第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失收敛到稳定值时,得到所述目标蒸馏数据。这样,在反向传播过程中通过随机梯度下降方法优化第一蒸馏数据,加快每一批第一蒸馏数据的迭代训练过程。
在本申请实施例中,对每一批待训练的第一蒸馏数据,从预训练库中随机采样至少两个不同类型的预训练模型,同时匹配第一蒸馏数据和多个预训练模型的特征。这样将各个预训练模型的通用特征空间结合起来,使得蒸馏出来的数据匹配出任意预训练模型的特征分布,从而能够获得更好的训练速度和效果平衡。
图3为本申请实施例提供的数据蒸馏的方法的流程示意图,如图3所示,所述方法至少包括以下步骤:
步骤S310,基于原始数据的分布信息,确定至少一批第二蒸馏数据;
这里,所述原始数据可以为以下至少一种通用数据集中的图像:ImageNet数据集、ResNet50数据集、MobileNet V2数据集等。
所述原始数据的分布信息可以为正态分布(Normal Distribution),又名高斯分布(Gaussian Distribution)。分布曲线呈钟型,即两头低中间高,且左右对称。若随机变量X服从一个数学期望为μ、方差为σ^2的正态分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ=0,σ=1时的正态分布是标准正态分布。
这里,所述分布信息为高斯分布信息,包括原始数据的均值、方差等。对于可见光(Red-Green-Blue,RGB)图像,三个颜色通道的均值和标准差均不一样。如ImageNet数据集中每一图像的均值为[0.485,0.456,0.406],方差为[0.229,0.224,0.225]。
在一些实施方式中,上述步骤S210可以通过以下过程实现:获取所述原始数据的高斯分布信息;基于从所述高斯分布信息中随机采样的数据,对至少N个初始像素值矩阵进行初始化,得到每一批第二蒸馏数据;N为大于等于2的整数。这样,从原始数据的高斯分布信息中随机采样数据,并初始化得到可以第二蒸馏数据,弥补不能直接获取原始数据的不足。
步骤S320,确定至少两个预训练模型;
这里,每一所述预训练模型中存储所述原始数据的第一统计信息。
步骤S330,在每一次迭代训练中,对每一批第二蒸馏数据中每两个图像数据进行混合,得到一批第一蒸馏数据;
这里,在每一迭代训练中,随机选取任意两个图像数据进行数据混合,使得混合后的图像包含两个图像数据的信息,从而生成的目标蒸馏数据更加鲁棒并且拥有更多视觉信息,能够适应不同尺度和空间方位。因此生成的目标蒸馏数据用于模型压缩更加有效。
值得注意的是,上述步骤S320和步骤S330的执行顺序不限定,可以先执行步骤S330,也可以先执行步骤S320,也可以同时执行。
步骤S340,基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;
步骤S350,基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;
这里,所述每一批第一蒸馏数据中包括由第一图像和第二图像混合得到的合成图像。也就是说,从一批第二蒸馏数据中随机选择一对第一图像和第二图像进行混合得到合成图像,其中第一图像和第二图像分别有各自对应的初始化标签。
可以通过以下步骤确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失:
步骤S3501,基于所述第一图像的初始化标签和所述第二图像的初始化标签,确定所述合成图像的混合交叉熵损失;
这里,通过第一图像和第二图像各自的初始化标签确定合成图像的混合交叉熵损失,可以确保原始第一图像和第二图像的信息能够被预训练模型识别并正确优化。
步骤S3502,基于所述每一批第一蒸馏数据中除所述第一图像和所述第二图像之外的其他图像的初始化标签,确定所述其他图像的累计交叉熵损失;
这里,计算累计交叉熵损失的过程可以参照公式(2),只是其中变量i的取值为除所述第一图像和所述第二图像之外的其他图像。
步骤S3502,基于所述混合交叉熵损失和所述累计交叉熵损失,确定每一批所述第一蒸馏数据经过每一所述预训练模型后的目标交叉熵损失。
这里,对一批第一蒸馏数据中合成图像的混合交叉熵损失和其他图像的累计交叉熵损失求和后最小化,得到每一批所述第一蒸馏数据经过每一所述预训练模型后的目标交叉熵损失。
在一些实施方式中,上述步骤S3501可以通过以下过程实现:基于所述第一图像的初始化标签,确定每一批所述第一蒸馏数据通过每一所述预训练模型后的第一交叉熵损失;基于所述第二图像的初始化标签,确定每一批所述第一蒸馏数据通过每一所述预训练模型后的第二交叉熵损失;基于第一图像与所述第二图像之间的合成比例,对所述第一交叉熵损失和所述第二交叉损失进行线性求和,得到所述混合交叉熵损失。在实施中,可以通过以下公式(4)确定上述混合交叉熵损失
其中,为混合后的第一蒸馏数据,为经过某个预训练模型的混合交叉熵损失,Y2和Y1分别为混合前第一图像和第二图像的初始化标签,和分别为第一图像对应的第一交叉熵损失和第二图像对应的第二交叉熵损失,β为混合区域的面积与第二图像的面积之间的比例系数。
这样,通过使用混合数据前各图像的初始化标签确定混合交叉熵损失,进而结合其他图像的累加交叉熵损失确定目标交叉熵损失,有助于在训练时生成仍然具有辨别力的鲁棒特性,同时能够防止不正确的反演解,合成具有精确标签信息的目标蒸馏数据。
步骤S360,基于每一所述预训练模型的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据。
这里,通过结合目标交叉熵损失和批归一化统计损失得到一批第一蒸馏数据针对每一预训练模型的第一损失,进而对每一所述预训练模型对应的第一损失进行线性整合,可以平均每个预训练模型产生的特征偏差,从而使得最终得到的目标蒸馏数据更接近真实数据且更通用。
这里,由于利用多个预训练模型的特征,使得生成的目标蒸馏数据可以匹配多个模型的特征分布,同时通过数据混合使得目标蒸馏数据更加鲁棒且拥有更多视觉信息。在得到目标蒸馏数据之后,可以直接用于对预训练模型或其他未识别的模型进行压缩。
在一些实施方式中,在至少一批所述目标蒸馏数据的数量达到特定阈值的情况下,对每一所述预训练模型进行模型压缩。这样,由于生成的目标蒸馏数据拥有更多视觉信息且通用,可以直接用于模型压缩过程,简化压缩流程。
在一些实施方式中,在一个新模型压缩需要提出的情况下,可以直接利用已生成的目标蒸馏数据进行压缩,无需再进行蒸馏数据的生成过程。本申请实施例生成的目标蒸馏数据足够准确,只需要生成一次目标蒸馏数据集(包括足够量的目标蒸馏数据)就可以适用所有预训练模型以及泛化到未识别的模型中。
在一些实施方式中,所述模型压缩操作可以包括网络量化(NetworkQuantization)、网络剪枝(Network Pruning)、知识蒸馏(Knowledge Distillation)等。剪枝技术过程可以基于目标蒸馏数据集完成剪枝决策和剪枝后重建;模型量化过程可以基于目标蒸馏数据集来完成训练中量化过程或者基于目标蒸馏数据集实现后训练量化的校准过程;知识蒸馏过程则可以将目标蒸馏数据集分别送入教师网络和学生网络完成知识迁移的过程。
在本申请实施例中,通过在每一次迭代训练中对一批第一蒸馏数据进行随机数据混合,可以缩小反演解空间,同时使得训练出来的目标蒸馏数据的视觉信息更加鲁棒,能够适应不同尺度和空间方位。同时结合批归一化统计损失和目标交叉熵损失确定一批第一蒸馏数据通过多个预训练模型的目标损失。从而使得最终得到的目标蒸馏数据更接近真实数据。
基于图3,图4A为本申请实施例提供的数据蒸馏的方法的流程示意图,如图4A所示,上述步骤S330“在每一次迭代训练中,对每一批第二蒸馏数据中每两个图像数据进行混合,得到一批第一蒸馏数据”可以通过以下步骤实现:
步骤S410,从每一批所述第二蒸馏数据中随机选取至少一对第一图像和第二图像;
这里,每一对第一图像和第二图像是任意的两个第二蒸馏数据。因为在每轮迭代过程中,第一图像和第二图像都是随机选取并混合的,因此经过训练得到的目标蒸馏数据的视觉信息会更鲁棒,能够适应不同尺度和空间方位。
步骤S420,将每一所述第一图像的尺寸按照特定比例缩小;
这里,所述特定比例为第二图像上随机覆盖区域的边界框与原始图像数据的尺寸大小之间的比值。
步骤S430,将缩小后的所述第一图像随机覆盖到对应的所述第二图像中,得到每一批所述第一蒸馏数据。
这里,通过将缩小后的第一图像覆盖的第二图像的任意区域,使得覆盖后的合成图像包括两个图像数据的信息。
如图4B所示,将第一图像41进行等比例缩小到固定尺寸,然后将缩小后的第一图像42随机覆盖到第二图像43上。此时覆盖后的合成图像44将包含第一图像41和第二图像43的所有信息。
在一些实施方式中,所述步骤S430可以通过以下过程实现:按照所述特定比例,在对应的所述第二图像中随机生成待覆盖的混合区域;基于所述混合区域的边界框,随机生成二进制掩码;通过所述二进制掩码对缩小后的所述第一图像的每一像素值和所述第二图像中对应的像素值进行叠加,得到每一批所述第一蒸馏数据。在实施中,通过以下公式(5)和(6)实现任意两个图像数据的混合:
其中,xl,xr,yd,yu依次是混合区域的边界框的左框、右框、上框、下框的边界,αij为二进制掩码中的元素,如果αij位于边界框中则取值为1,如果αij位于边界框之外则取值为0。
这样,通过随机生成二进制掩码叠加缩小后的第一图像的像素值和第二图像的像素值,实现一批第二蒸馏数据中随机的两张图像的混合,使得混合数据即一批第一蒸馏数据经过预训练模型训练优化时仍然具有辨别力。
在本申请实施例中,在数据混合中将第一图像进行等比例缩小并随机覆盖到第二图像中,此时混合后的合成图像将包含第一图像和第二图像的信息。在训练一批第一蒸馏数据的过程中,确保两个混合的图像信息能够被预训练模型识别并正确优化。
下面结合一个具体实施例对上述数据蒸馏的方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
图5A为本申请实施例提供的数据蒸馏的方法的逻辑流程图,如图5A所示,所述方法至少包括以下步骤:
步骤S510,用原始数据的高斯分布初始化一批蒸馏数据;
这里,蒸馏过程需要用先使用高斯分布初始化一批蒸馏数据(相当于第二蒸馏数据),高斯分布采用原始数据的统计值对一批蒸馏数据进行初始化。
在实施中,首先获取原始训练数据的分布信息,然后利用高斯分布的统计值对一批蒸馏数据进行初始化。
步骤S520,从预训练模型簇里面随机采样三个预训练模型;
步骤S530,使用数据混合和特征混合,通过三个预训练模型训练一批蒸馏数据;
这里,本申请实施例采用随机梯度下降方法来训练混合后的一批蒸馏数据(相当于第一蒸馏数据)。
步骤S540,重复上述训练过程,直到生成指定量的目标蒸馏数据。
这里,若完成所有目标蒸馏数据的生成则退出,反之则重复步骤S520至步骤S530。
由于生成的目标蒸馏数据足够准确且通用,本申请实施例生成的目标蒸馏数据甚至可以泛化到未识别过的模型中。因此,当一个新的模型压缩需求提出时,可以直接用已生成的目标蒸馏数据进行压缩。
图5B为本申请实施例提供的结合数据混合和特征混合的算法框架,如图5B所示,该框架中的实线箭头体现了前向训练流向,虚线箭头体现了后向反演过程的流向。训练流程中会有数据混合51和特征混合52两大流程。其中数据混合51用于生成鲁棒的视觉信息,特征混合52用于生成通用可泛化的图片。
在前向训练过程中,首先进行数据混合51流程,从一批蒸馏数据中随机选取第一图像501和第二图像502进行混合,得到合成图像503。然后进行特征混合52流程,将包括合成图像503在内的一批蒸馏数据分别输入到预训练模型504、预训练模型505和预训练模型506(示例的三个模型,但不限定,可以为多个)中,计算经过三个预训练模型之后的目标交叉熵损失507和批归一化统计损失508。其中,每一预训练模型的每个组成块中均包括激活层61、批归一化层62和卷积层63,批归一化层62中统计了一批蒸馏数据的均值和方差(μ,σ2),可以将每一预训练模型的所有组成块中存储的均值和方差,提取出来确定上述批归一化统计损失508。
在后向反演过程中,利用上一次迭代训练过程确定的目标交叉熵损失507和批归一化统计损失508进一步确定目标损失,以利用目标损失优化合成图像503。由于预训练模型已经捕获了蒸馏数据的图像类别信息,因此可以通过为合成图像503分配混合标签来反演知识。
如图5C所示,该前向训练流程包括以下步骤:
步骤S5301,将一批蒸馏数据进行随机数据混合;
在数据混合中,从初始化后的一批蒸馏数据中任取两个图像数据进行随机混合。此时合成图像将包含两个图像数据的信息。在训练混合后的一批蒸馏数据的过程中,确保两个图像数据的信息能够被模型识别并正确优化。
步骤S5302,将混合后的一批蒸馏数据分别输入三个预训练模型中,确定当前统计量与模型存储的原始统计量之间的差异;
这里,当前统计量为一批蒸馏数据的第二统计信息,原始统计量为模型中存储的原始数据的第一统计信息。
在特征混合中,计算一批蒸馏数据在预训练模型中的统计信息。预训练模型的每一层中都存储了用于原始数据的第一统计信息即均值和方差。当输入一批蒸馏数据时,如果一批蒸馏数据在预训练模型中的均值方差和原始数据的均值方差相差不大,那么认为一批蒸馏数据和原始数据已经非常相似。若相差仍然很大,则需要继续最小化它们之间的误差。
值得注意的是,在特征混合中需要同时匹配一批蒸馏数据和三个预训练模型的特征,这使得生成出来的目标蒸馏数据相比于单模型蒸馏能够更加通用。本申请实施例利用多个预训练模型的特征,使得生成的目标蒸馏数据匹配出多个模型的特征分布。这使得目标蒸馏数据更通用,效果也更好。
步骤S5303,利用差异反向传播计算梯度,对混合后的一批蒸馏数据进行梯度下降更新;
步骤S5304,判断迭代训练是否完毕。
这里,在迭代两万轮左右的情况下可以使得目标蒸馏数据与原始数据看起来一致,从而迭代训练完毕;否则,每一次训练之后继续执行步骤S5301。
相关技术中无数据压缩方法生成的蒸馏数据只能用于本模型的压缩,而且由于蒸馏过程是不可逆运算,存在很多不合理的视觉信息,使得生成的蒸馏数据无法迁移,需要反复生成。
本申请实施例通过使用数据混合和特征混合训练蒸馏数据,使得生成的目标蒸馏数据具有更加鲁棒的视觉信息和特征,因此该目标蒸馏数据非常通用,可以用于不同模型。同时本申请实施例只需生成一次目标蒸馏数据就可以一直使用。
本申请实施例利用多个预训练模型提升蒸馏数据生成时的通用性,同时利用数据信息混合生成鲁棒视觉信息。在实际使用中,对于常见的原始数据集,可以提前生成蒸馏数据集,直接用于模型压缩,如量化和剪枝。对于未见过的原始数据集,则需要生成蒸馏数据才能使用。
基于前述的实施例,本申请实施例再提供一种数据蒸馏的装置,所述装置包括所包括的各模块、以及各模块所包括的各子模块以及各单元,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processing Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable GateArray,FPGA)等。
图6为本申请实施例提供的一种数据蒸馏的装置的组成结构示意图,如图6所示,所述装置600包括第一确定模块610、第二确定模块620、第三确定模块630、第四确定模块640和训练模块650,其中:
所述第一确定模块610,用于确定至少一批待训练的第一蒸馏数据;每一批所述第一蒸馏数据中存在至少一个包括两种数据标签信息的混合数据;
所述第二确定模块620,用于确定至少两个预训练模型;其中,每一所述预训练模型中存储原始数据的第一统计信息;
所述第三确定模块630,用于基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;
所述第四确定模块640,用于基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;
所述训练模块650,用于基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据。
在一些可能的实施例中,所述第三确定模块630包括第一确定子模块和第二确定子模块,其中:所述第一确定子模块,确定每一批所述第一蒸馏数据在每一所述预训练模型中的第二统计信息;所述第二确定子模块,针对每一所述预训练模型,确定所述第一统计信息与所述第二统计信息之间的批归一化统计损失。
在一些可能的实施例中,所述第二确定模块620还用于从预训练模型库中随机选择至少两个不同类型的预训练模型。
在一些可能的实施例中,所述训练模块650包括第三确定子模块、处理子模块和训练子模块,其中:所述第三确定子模块,用于基于每一所述预训练模型的批归一化统计损失和所述目标交叉熵损失,确定相应预训练模型对应的第一损失;所述处理子模块,用于对各个所述预训练模型对应的所述第一损失求均值,得到每一批所述第一蒸馏数据经过所述至少两个预训练模型的目标损失;所述训练子模块,用于基于所述目标损失,对每一批所述第一蒸馏数据进行反向传播训练,得到所述目标蒸馏数据。
在一些可能的实施例中,所述第一确定模块包括初始化子模块和混合子模块,其中:所述初始化子模块,用于基于原始数据的分布信息,初始化至少一批第二蒸馏数据;所述混合子模块,用于在每一次迭代训练中,对每一批所述第二蒸馏数据中每两个图像数据进行混合,得到每一批所述第一蒸馏数据。
在一些可能的实施例中,所述混合子模块包括选取单元、缩放单元和覆盖单元,其中:所述选取单元,用于从每一批所述第二蒸馏数据中随机选取至少一对第一图像和第二图像;所述缩放单元,用于将每一所述第一图像的尺寸按照特定比例缩小;所述覆盖单元,用于将缩小后的所述第一图像随机覆盖到对应的所述第二图像中,得到每一批所述第一蒸馏数据。
在一些可能的实施例中,所述覆盖单元包括第一生成子单元、第二生成子单元和叠加子单元,其中:所述第一生成子单元,用于按照所述特定比例,在对应的所述第二图像中随机生成待覆盖的混合区域;所述第二生成子单元,用于基于所述混合区域的边界框,随机生成二进制掩码;所述叠加子单元,用于通过所述二进制掩码对缩小后的所述第一图像的每一像素值和所述第二图像中对应的像素值进行叠加,得到每一批所述第一蒸馏数据。
在一些可能的实施例中,所述每一批第一蒸馏数据中包括由第一图像和第二图像混合得到的合成图像,所述第四确定模块640包括第四确定子模块、第五确定子模块和第六确定子模块,其中:所述第四确定子模块,用于基于所述第一图像的初始化标签和所述第二图像的初始化标签,确定所述合成图像的混合交叉熵损失;所述第五确定子模块,用于基于所述每一批第一蒸馏数据中除所述第一图像和所述第二图像之外的其他图像的初始化标签,确定所述其他图像的累计交叉熵损失;所述第六确定子模块,用于基于所述混合交叉熵损失和所述累计交叉熵损失,确定每一批所述第一蒸馏数据经过每一所述预训练模型后的目标交叉熵损失。
在一些可能的实施例中,所述第四确定子模块包括第二确定单元、第三确定单元和求和单元,其中:所述第二确定单元,用于基于所述第一图像的初始化标签,确定每一批所述第一蒸馏数据通过每一所述预训练模型后的第一交叉熵损失;第三确定单元,用于基于所述第二图像的初始化标签,确定每一批所述第一蒸馏数据通过每一所述预训练模型后的第二交叉熵损失;所述求和单元,用于基于所述第一图像与所述第二图像之间的合成比例,对所述第一交叉熵损失和所述第二交叉损失进行线性求和,得到所述目标交叉熵损失。
在一些可能的实施例中,所述第一统计信息包括均值和方差,每一所述预训练模型包括至少两个组成块,每一所述组成块包括卷积层和批归一化层,所述第三确定模块630还包括提取子模块和累加子模块,其中:所述提取子模块,用于从每一所述组成块的批归一化层中提取所述原始数据的均值和方差;所述均值和方差是通过所述卷积层提取的所述原始数据的特征进行统计得到的;所述累加子模块,用于基于每一所述预训练模型中所述至少两个组成块的均值和方差,确定每一所述预训练模型中的第一统计信息。
在一些可能的实施例中,所述分布信息为高斯分布信息,所述初始化子模块包括获取单元和初始化单元,其中:所述获取单元,用于获取所述原始数据的高斯分布信息;所述初始化单元,用于基于从所述高斯分布信息中随机采样的数据,对至少N个初始像素值矩阵进行初始化,得到每批所述第二蒸馏数据;N为大于等于2的整数。
在一些可能的实施例中,所述训练子模块第四确定单元、更新单元和训练单元,其中:所述第四确定单元,用于在反向传播过程中的每一次迭代训练中,确定所述目标损失针对所述第一蒸馏数据的梯度;所述更新单元,用于基于所述梯度,对所述第一蒸馏数据中每一数据进行更新;所述训练单元,用于在更新后的第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失收敛到稳定值时,得到所述目标蒸馏数据。
在一些可能的实施例中,所述装置还包括压缩模块,用于在至少一批所述目标蒸馏数据的数量达到特定阈值的情况下,对每一所述预训练模型进行模型压缩。
这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述数据蒸馏的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是具有摄像头的智能手机、平板电脑等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何预设的硬件和软件结合。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中任一所述数据蒸馏的方法中的步骤。
对应地,本申请实施例中,还提供了一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时,用于实现上述实施例中任一所述数据蒸馏的方法中的步骤。
对应地,本申请实施例中,还提供了一种计算机程序产品,当该计算机程序产品被电子设备的处理器执行时,其用于实现上述实施例中任一所述数据蒸馏的方法中的步骤。
基于同一技术构思,本申请实施例提供一种电子设备,用于实施上述方法实施例记载的数据蒸馏的方法。图7为本申请实施例提供的一种电子设备的硬件实体示意图,如图7所示,所述电子设备700包括存储器710和处理器720,所述存储器710存储有可在处理器720上运行的计算机程序,所述处理器720执行所述程序时实现本申请实施例任一所述数据蒸馏的方法中的步骤。
存储器710配置为存储由处理器720可执行的指令和应用,还可以缓存待处理器720以及电子设备中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
处理器720执行程序时实现上述任一项的数据蒸馏的方法的步骤。处理器720通常控制电子设备700的总体操作。
上述处理器可以为特定用途集成电路(Application Specific IntegratedCircuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable LogicDevice,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
上述计算机存储介质/存储器可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些预设的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本申请实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得设备自动测试线执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到方法实施例。本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到方法实施例或设备实施例。以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种数据蒸馏的方法,其特征在于,所述方法包括:
确定至少一批待训练的第一蒸馏数据;每一批所述第一蒸馏数据中存在至少一个包括两种数据标签信息的混合数据;
确定至少两个预训练模型;其中,每一所述预训练模型中存储原始数据的第一统计信息;
基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;
基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;
基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据。
2.如权利要求1所述的方法,其特征在于,所述基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失,包括:
确定每一批所述第一蒸馏数据在每一所述预训练模型中的第二统计信息;
针对每一所述预训练模型,确定所述第一统计信息与所述第二统计信息之间的批归一化统计损失。
3.如权利要求1或2所述的方法,其特征在于,所述确定至少两个预训练模型,包括:
从预训练模型库中随机选择至少两个不同类型的预训练模型。
4.如权利要求1至3任一项所述的方法,其特征在于,所述基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据,包括:
基于每一所述预训练模型的批归一化统计损失和所述目标交叉熵损失,确定相应预训练模型对应的第一损失;
对各个所述预训练模型对应的所述第一损失求均值,得到每一批所述第一蒸馏数据经过所述至少两个预训练模型的目标损失;
基于所述目标损失,对每一批所述第一蒸馏数据进行反向传播训练,得到所述目标蒸馏数据。
5.如权利要求1至4任一项所述的方法,其特征在于,所述确定至少一批待训练的第一蒸馏数据,包括:
基于原始数据的分布信息,初始化至少一批第二蒸馏数据;
在每一次迭代训练中,对每一批所述第二蒸馏数据中每两个图像数据进行混合,得到每一批所述第一蒸馏数据。
6.如权利要求5所述的方法,其特征在于,所述对每一批所述第二蒸馏数据中每两个图像数据进行混合,得到每一批所述第一蒸馏数据,包括:
从每一批所述第二蒸馏数据中随机选取至少一对第一图像和第二图像;
将每一所述第一图像的尺寸按照特定比例缩小;
将缩小后的所述第一图像随机覆盖到对应的所述第二图像中,得到每一批所述第一蒸馏数据。
7.如权利要求6所述的方法,其特征在于,所述将缩小后的所述第一图像覆盖到对应的所述第二图像中,得到每一批所述第一蒸馏数据,包括:
按照所述特定比例,在对应的所述第二图像中随机生成待覆盖的混合区域;
基于所述混合区域的边界框,随机生成二进制掩码;
通过所述二进制掩码对缩小后的所述第一图像的每一像素值和所述第二图像中对应的像素值进行叠加,得到每一批所述第一蒸馏数据。
8.如权利要求1至7任一项所述的方法,其特征在于,所述每一批第一蒸馏数据中包括由第一图像和第二图像混合得到的合成图像,所述基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失,包括:
基于所述第一图像的初始化标签和所述第二图像的初始化标签,确定所述合成图像的混合交叉熵损失;
基于所述每一批第一蒸馏数据中除所述第一图像和所述第二图像之外的其他图像的初始化标签,确定所述其他图像的累计交叉熵损失;
基于所述混合交叉熵损失和所述累计交叉熵损失,确定每一批所述第一蒸馏数据经过每一所述预训练模型后的目标交叉熵损失。
9.如权利要求8所述的方法,其特征在于,所述基于所述第一图像的初始化标签和所述第二图像的初始化标签,确定所述合成图像的混合交叉熵损失,包括:
基于所述第一图像的初始化标签,确定每一批所述第一蒸馏数据通过每一所述预训练模型后的第一交叉熵损失;
基于所述第二图像的初始化标签,确定每一批所述第一蒸馏数据通过每一所述预训练模型后的第二交叉熵损失;
基于所述第一图像与所述第二图像之间的合成比例,对所述第一交叉熵损失和所述第二交叉损失进行线性求和,得到所述合成图像的混合交叉熵损失。
10.如权利要求1至9任一项所述的方法,其特征在于,所述第一统计信息包括均值和方差,每一所述预训练模型包括至少两个组成块,每一所述组成块包括卷积层和批归一化层,所述方法还包括:
从每一所述组成块的批归一化层中提取所述原始数据的均值和方差;所述均值和方差是通过所述卷积层提取的所述原始数据的特征进行统计得到的;
基于每一所述预训练模型中所述至少两个组成块的均值和方差,确定每一所述预训练模型中的第一统计信息。
11.如权利要求5所述的方法,其特征在于,所述分布信息为高斯分布信息,所述基于原始数据的分布信息,初始化至少一批第二蒸馏数据,包括:
获取所述原始数据的高斯分布信息;
基于从所述高斯分布信息中随机采样的数据,对至少N个初始像素值矩阵进行初始化,得到每一批所述第二蒸馏数据;N为大于等于2的整数。
12.如权利要求4所述的方法,其特征在于,所述基于所述目标损失,对每一批所述第一蒸馏数据进行反向传播训练,得到所述目标蒸馏数据,包括:
在反向传播过程中的每一次迭代训练中,确定所述目标损失针对所述第一蒸馏数据的梯度;
基于所述梯度,对所述第一蒸馏数据中每一数据进行更新;
在更新后的所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失收敛到稳定值时,得到所述目标蒸馏数据。
13.如权利1至12任一项所述的方法,其特征在于,所述方法还包括:
在至少一批所述目标蒸馏数据的数量达到特定阈值的情况下,对每一所述预训练模型进行模型压缩。
14.一种数据蒸馏的装置,其特征在于,所述装置包括第一确定模块、第二确定模块、第三确定模块、第四确定模块和训练模块,其中:
所述第一确定模块,用于确定至少一批待训练的第一蒸馏数据;每一批所述第一蒸馏数据中存在至少一个包括两种数据标签信息的混合数据;
所述第二确定模块,用于确定至少两个预训练模型;其中,每一所述预训练模型中存储原始数据的第一统计信息;
所述第三确定模块,用于基于每一所述预训练模型中的第一统计信息,确定每一批所述第一蒸馏数据在相应预训练模型中的批归一化统计损失;
所述第四确定模块,用于基于每一批所述第一蒸馏数据中每一数据的初始化标签,确定每一批所述第一蒸馏数据在每一所述预训练模型中的目标交叉熵损失;
所述训练模块,用于基于每一批所述第一蒸馏数据在每一所述预训练模型中的批归一化统计损失和所述目标交叉熵损失,对每一批所述第一蒸馏数据进行反向传播训练,得到目标蒸馏数据。
15.一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至13任一项所述方法中的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至13中任一项所述方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110994122.7A CN113762368A (zh) | 2021-08-27 | 2021-08-27 | 数据蒸馏的方法、装置、电子设备和存储介质 |
PCT/CN2022/071121 WO2023024406A1 (zh) | 2021-08-27 | 2022-01-10 | 数据蒸馏的方法、装置、设备、存储介质、计算机程序及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110994122.7A CN113762368A (zh) | 2021-08-27 | 2021-08-27 | 数据蒸馏的方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113762368A true CN113762368A (zh) | 2021-12-07 |
Family
ID=78791493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110994122.7A Pending CN113762368A (zh) | 2021-08-27 | 2021-08-27 | 数据蒸馏的方法、装置、电子设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113762368A (zh) |
WO (1) | WO2023024406A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023024406A1 (zh) * | 2021-08-27 | 2023-03-02 | 上海商汤智能科技有限公司 | 数据蒸馏的方法、装置、设备、存储介质、计算机程序及产品 |
CN116630724A (zh) * | 2023-07-24 | 2023-08-22 | 美智纵横科技有限责任公司 | 数据模型的生成方法和图像处理方法、装置及芯片 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116486285B (zh) * | 2023-03-15 | 2024-03-19 | 中国矿业大学 | 一种基于类别掩码蒸馏的航拍图像目标检测方法 |
CN117576518B (zh) * | 2024-01-15 | 2024-04-23 | 第六镜科技(成都)有限公司 | 图像蒸馏方法、装置、电子设备和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738436A (zh) * | 2020-06-28 | 2020-10-02 | 电子科技大学中山学院 | 一种模型蒸馏方法、装置、电子设备及存储介质 |
CN111950638A (zh) * | 2020-08-14 | 2020-11-17 | 厦门美图之家科技有限公司 | 基于模型蒸馏的图像分类方法、装置和电子设备 |
CN112766463A (zh) * | 2021-01-25 | 2021-05-07 | 上海有个机器人有限公司 | 基于知识蒸馏技术优化神经网络模型的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11568306B2 (en) * | 2019-02-25 | 2023-01-31 | Salesforce.Com, Inc. | Data privacy protected machine learning systems |
CN112446476A (zh) * | 2019-09-04 | 2021-03-05 | 华为技术有限公司 | 神经网络模型压缩的方法、装置、存储介质和芯片 |
CN111008693B (zh) * | 2019-11-29 | 2024-01-26 | 小米汽车科技有限公司 | 一种基于数据压缩的网络模型构建方法、***和介质 |
CN111860572B (zh) * | 2020-06-04 | 2024-01-26 | 北京百度网讯科技有限公司 | 数据集蒸馏方法、装置、电子设备及存储介质 |
CN113762368A (zh) * | 2021-08-27 | 2021-12-07 | 北京市商汤科技开发有限公司 | 数据蒸馏的方法、装置、电子设备和存储介质 |
-
2021
- 2021-08-27 CN CN202110994122.7A patent/CN113762368A/zh active Pending
-
2022
- 2022-01-10 WO PCT/CN2022/071121 patent/WO2023024406A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738436A (zh) * | 2020-06-28 | 2020-10-02 | 电子科技大学中山学院 | 一种模型蒸馏方法、装置、电子设备及存储介质 |
CN111950638A (zh) * | 2020-08-14 | 2020-11-17 | 厦门美图之家科技有限公司 | 基于模型蒸馏的图像分类方法、装置和电子设备 |
CN112766463A (zh) * | 2021-01-25 | 2021-05-07 | 上海有个机器人有限公司 | 基于知识蒸馏技术优化神经网络模型的方法 |
Non-Patent Citations (1)
Title |
---|
YUHANG LI 等: ""MixMix: All You Need for Data-Free Compression Are Feature and Data Mixing"", 《ARXIV》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023024406A1 (zh) * | 2021-08-27 | 2023-03-02 | 上海商汤智能科技有限公司 | 数据蒸馏的方法、装置、设备、存储介质、计算机程序及产品 |
CN116630724A (zh) * | 2023-07-24 | 2023-08-22 | 美智纵横科技有限责任公司 | 数据模型的生成方法和图像处理方法、装置及芯片 |
CN116630724B (zh) * | 2023-07-24 | 2023-10-10 | 美智纵横科技有限责任公司 | 数据模型的生成方法和图像处理方法、装置及芯片 |
Also Published As
Publication number | Publication date |
---|---|
WO2023024406A1 (zh) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113762368A (zh) | 数据蒸馏的方法、装置、电子设备和存储介质 | |
KR101880901B1 (ko) | 기계 학습 방법 및 장치 | |
CN105447498B (zh) | 配置有神经网络的客户端设备、***和服务器*** | |
Wang et al. | Exploring linear relationship in feature map subspace for convnets compression | |
US11514694B2 (en) | Teaching GAN (generative adversarial networks) to generate per-pixel annotation | |
Messaoud et al. | Structural consistency and controllability for diverse colorization | |
CN111523546A (zh) | 图像语义分割方法、***及计算机存储介质 | |
CN113902921A (zh) | 图像处理方法、装置、设备及存储介质 | |
Ji et al. | Colorformer: Image colorization via color memory assisted hybrid-attention transformer | |
CN112801104B (zh) | 基于语义分割的图像像素级伪标签确定方法及*** | |
CN113222123A (zh) | 模型训练方法、装置、设备及计算机存储介质 | |
CN114821058A (zh) | 一种图像语义分割方法、装置、电子设备及存储介质 | |
CN111242068B (zh) | 基于视频的行为识别方法、装置、电子设备和存储介质 | |
CN113111716A (zh) | 一种基于深度学习的遥感影像半自动标注方法和装置 | |
CN113096001A (zh) | 图像处理方法、电子设备及可读存储介质 | |
CN114419406A (zh) | 图像变化检测方法、训练方法、装置和计算机设备 | |
Klingner et al. | Continual BatchNorm adaptation (CBNA) for semantic segmentation | |
CN117788629A (zh) | 一种具有风格个性化的图像生成方法、装置及存储介质 | |
Yu et al. | Self-supervised gan compression | |
Yuan et al. | Fully extracting feature correlation between and within stages for semantic segmentation | |
Reddy et al. | Effect of image colourspace on performance of convolution neural networks | |
CN114332481A (zh) | 一种基于非负稀疏自编码器的盲端元提取与光谱解混方法 | |
CN115114462A (zh) | 模型训练方法、装置、多媒体推荐方法、设备及存储介质 | |
WO2021179117A1 (zh) | 神经网络通道数搜索方法和装置 | |
CN113496228A (zh) | 一种基于Res2Net、TransUNet和协同注意力的人体语义分割方法 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40065243 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211207 |
|
RJ01 | Rejection of invention patent application after publication |