deit是vit的改进,使用的网络框架基本一致。
主要参考:ViT和DeiT的原理与使用 - 知乎
参考:DeiT:使用Attention蒸馏Transformer
知识蒸馏中的教师网络,可以使用其他非transformer形式的网络结构,比如卷积网络(resnet,efficientnet)等。
个人总结:
deit和vit形式一至,在网路结构中多了一个distillation token,类似于class token的形式。
distillation token也可以类似class token的形式输出类别数目,输出的结果在进行软/硬蒸馏。如果是软蒸馏,就会和teacher model的输出计算一个蒸馏损失,加到模型分类损失上,进行反向传播。如果是硬蒸馏,就是模型输出结果和teacher model的输出计算交叉熵,加到模型分类损失上,进行反向传播。
训练过程:
1. 使用truncated normal distribution(截断正态)来进行初始化
2. 使用蒸馏策略。
3. 使用数据增强,Autoaugment,Rand-augment,random erasing,Cutmix,Mixup,Label Smoothing等。
4. 数据归一化处理,调整为符合网络输入形式。
推理过程:
1. 数据归一化处理,
2. cls token和distillation token过分类器后,求和取平均,作为当前图片模型输出结果。
版权声明:本文为stf1065716904原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。