知识蒸馏
文章平均质量分 95
AI浩
2022年博客之星Top8,2021年博客之星Top6,博客专家,华为云云享专家,十佳博主,阿里云专家博主,拥有多项发明专利并参与过国家重大专项,拥有丰富的开发经验。注重理论与实践的结合,让AI学起来不再枯燥。如果大家在看文章的时候,发现了文章的错误,烦请指出,我会及时纠正。
展开
-
DEiT实战:使用DEiT实现图像分类任务(二)
训练的主要步骤:1、使用AverageMeter保存自定义变量,包括loss,ACC1,ACC5。2、判断迭代的数据是否是奇数,由于mixup_fn只能接受偶数,所以如果不是偶数则要减去一位,让其变成偶数。但是有可能最后一次迭代只有一条数据,减去后就变成了0,所以还要判断不能小于2,如果小于2则直接中断本次循环。3、将数据输入mixup_fn生成mixup数据,然后输入model计算loss。4、 optimizer.zero_grad() 梯度清零,把loss关于weight的导数变成0。原创 2022-12-19 11:14:27 · 2411 阅读 · 21 评论 -
知识蒸馏DEiT算法实战:使用RegNet蒸馏DEiT模型
论文翻译:DEiT通过引入一个蒸馏token实现蒸馏,蒸馏的方式有两种:这篇文章就是从第二点入手,使用卷积神经网络蒸馏DEiT。讲解视频:https://www.zhihu.com/zvideo/1588881049425276928先把结论说了吧! Teacher网络使用RegNet的regnetx_160网络,Student网络使用DEiT的deit_tiny_distilled_patch16_224模型。如下表data:数据集,分为train和val。models:存放模型文件。losse原创 2022-12-23 06:00:00 · 1956 阅读 · 0 评论 -
DEiT实战:使用DEiT实现图像分类任务(一)
DEiT是FaceBook在2020年提出的一篇Transformer模型。该模型解决了Transformer难以训练的问题,三天内使用4块GPU,完成了ImageNet的训练,并且没有使用外部数据,达到了SOTA水平。DEiT提出的蒸馏策略只增加了对token的蒸馏,没有引入其他的重要架构。如下图:蒸馏令牌与类令牌的使用类似:它通过自注意力与其他嵌入交互,并在最后一层后由网络输出。蒸馏令牌允许模型从老师的输出中学习,就像在常规蒸馏中一样,同时与类令牌保持互补。原创 2022-12-15 18:45:24 · 2719 阅读 · 1 评论 -
知识蒸馏NST算法实战:使用CoatNet蒸馏ResNet18
复杂度的检测模型虽然可以取得SOTA的精度,但它们往往难以直接落地应用。模型压缩方法帮助模型在效率和精度之间进行折中。知识蒸馏是模型压缩的一种有效手段,它的核心思想是迫使轻量级的学生模型去学习教师模型提取到的知识,从而提高学生模型的性能。已有的知识蒸馏方法可以分别为三大类:今天我们就尝试用基于关系特征的NST知识蒸馏算法完成这篇实战。NST蒸馏是对模型里面的的Block最后一层Feature做蒸馏,所以需要最后一层block的值。所以我们对模型要做修改来适应NST算法,并且为了使Teacher和Studen原创 2022-11-22 09:31:10 · 2617 阅读 · 0 评论 -
知识蒸馏IRG算法实战:使用ResNet50蒸馏ResNet18
复杂度的检测模型虽然可以取得SOTA的精度,但它们往往难以直接落地应用。模型压缩方法帮助模型在效率和精度之间进行折中。知识蒸馏是模型压缩的一种有效手段,它的核心思想是迫使轻量级的学生模型去学习教师模型提取到的知识,从而提高学生模型的性能。已有的知识蒸馏方法可以分别为三大类:模型没有用pytorch官方自带的,而是参照以前总结的ResNet模型修改的。ResNet模型结构如下图:ResNet18, ResNet34模型的残差结构是一致的,结构如下:代码如下:resnet.py主要修改了输出结果,将每原创 2022-11-18 10:25:06 · 1421 阅读 · 0 评论 -
RKD知识蒸馏实战:使用CoatNet蒸馏ResNet
知识蒸馏(Knowledge Distillation),简称KD,将已经训练好的模型包含的知识(”Knowledge”),蒸馏(“Distill”)提取到另一个模型里面去。原创 2022-11-15 22:31:27 · 755 阅读 · 1 评论 -
【第54篇】知识蒸馏:Distilling the Knowledge in a Neural Network
提高几乎所有机器学习算法性能的一个非常简单的方法是用相同的数据训练许多不同的模型,然后对它们的预测[3]求平均值。不幸的是,使用整个模型集合进行预测是很麻烦的,而且可能计算成本太高,无法部署到大量用户中,特别是当单个模型是大型神经网络时。Caruana和他的合作者[1]已经证明,可以将集合中的知识压缩到一个更容易部署的单一模型中,我们使用不同的压缩技术进一步开发了这种方法。原创 2022-11-13 14:43:21 · 1131 阅读 · 1 评论 -
知识蒸馏算法汇总
知识蒸馏有两大类:一类是logits蒸馏,另一类是特征蒸馏。logits蒸馏指的是在softmax时使用较高的温度系数,提升负标签的信息,然后使用Student和Teacher在高温softmax下logits的KL散度作为loss。中间特征蒸馏就是强迫Student去学习Teacher某些中间层的特征,直接匹配中间的特征或学习特征之间的转换关系。例如,在特征No.1和No.2中间,知识可以表示为如何模做两者中间的转化,可以用一个矩阵让学习者产生这个矩阵,学习者和转化之间的学习关系。原创 2022-11-12 06:00:00 · 2757 阅读 · 2 评论 -
知识蒸馏实战:使用CoatNet蒸馏ResNet
知识蒸馏(Knowledge Distillation),简称KD,将已经训练好的模型包含的知识(”Knowledge”),蒸馏(“Distill”)提取到另一个模型里面去。原创 2022-11-10 18:14:46 · 3247 阅读 · 15 评论