知识蒸馏 knowledge distill 相关论文理解

1.FitNets : Hints For Thin Deep Nets (ICLR2015)

论文目的:
蒸馏训练中,为了训练更加深的网络,在某个层中设置hint(暗示),再与老师网络中的hint对比。 这样做是使训练更加快,好。

在这里插入图片描述
在这里插入图片描述

实验:
分别在 CIFAR-10 和 CIFAR-100 SVHN MNIST AFLW进行了实验

在这里插入图片描述

2.A Gift from Knowledge Distillation:Fast Optimization, Network Minimization and Transfer Learning (CVPR 2017)

论文链接
论文目的:
发现蒸馏可以用来

  1. 对模型快速训练, 训练更少的时间就能达到效果。
  2. 对模型进行初始化,
  3. 对模型进行转移学习(老师网络用于猫狗分类,学生网络用于马和斑马分类)

主要贡献:
1.提出了一蒸馏训练方法,认为教学生网络不同层输出的feature之间的关系比教学生网络结果好
The student DNN does not necessarily have to learn the intermediate output when the specific question is input but can learn the solution method when a specific type of question is encountered
在这里插入图片描述

论文内容:

1.定义了FSP matrix矩阵 来表明两个层之间的关系流
The FSP matrix is generated by the features from two layers
在这里插入图片描述
网络模型
在这里插入图片描述
在这里插入图片描述

2.训练过程
先训练FSPloss ,然后再用数据集训练学生网络进行微调。

3.Matching Guided Distillation(ECCV2020)

论文链接

论文目的:
提出了一种新方法用于解决老师网络和学生网络输出feature维度不一致问题,进而导致对比的时候有一定误差。其中,其他老的方法是新增一个卷积,或者attention 去匹配维度。

本文提出三个方法去裁剪老师网络生成的feature通道数,进而与学生网络进行匹配,不需要增加一个桥梁(1*1卷积)去解决features不匹配的情况。

在这里插入图片描述

论文内容:
1.通道匹配
寻找一个矩阵M建立S和T特征的联系,
其中S是预训练学生网络输出的feature
T是预训练老师网络输出的feature
S=MTS = MT S=MT
S∈RS×N,M∈RS×C,T∈RC×NS\in \mathcal{R}^{S \times N},M\in \mathcal{R}^{S \times C},T\in \mathcal{R}^{C\times N}SRS×N,MRS×C,TRC×N

M 还要满足以下条件
在这里插入图片描述
2.通道裁剪
找到M之后进行裁剪,裁剪分为三个方法。
(1)sparse matching
在这里插入图片描述
(2)random drop
(3) max pooling

论文不足 :使用的预训练的student模型,然后再利用teacher微调。其中M是两者的相关程度,可以直接对teacher生成的feature进行运算,找到有代表性的。

4.A Comprehensive Overhaul of Feature Distillation(ICCV2019)

论文链接

论文目的:
设计一种蒸馏方法,对teacher transform, student transform, distillation feature position and distance function 进行了设计

论文内容:
teacher transform 加了a new ReLU activation
student transform 加了1*1conv
distillation feature position 在pre-RELU
distance function 提出了新的 partial L2 distance
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.Knowledge Transfer via Distillation of Activation Boundaries Formed by Hidden Neurons (AAAI2019)

提供了一个新思路:让老师网络层的神经元的激活平面尽量和学生网络的一样

6.Compressing GANs using Knowledge Distillation

论文链接

上面几篇都是对普通的卷积网络进行压缩,这个文章是对gan进行压缩。

贡献:
1.认为一个超参数的老师网络去蒸馏有更好的效果
2.全文证明了学生网络的参数越多,效果越好

论文内容

在这里插入图片描述
在这里插入图片描述

7.GhostNet: More Feature from Cheap Operation(CVPR2020)

主要内容;
使用线性操作,复制更多地feature maps,以此代替卷积操作,这样可以简化模型

思想很简单
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8.Data-Free Adversarial Distillation

动机:

  1. 原始的训练数据不存在,
    2.训练S时,使用一些具有代表性特征的数据 (hard sample)
    方法:
    1.利用G随机生成数据,尽量拉远S和T的距离
    2.训练S,使S和T的距离变小

在这里插入图片描述

9.Data-Free Learning of Student Networks (ICCV2020)

动机:
1.不使用原数据集

内容:
1.迭代训练 G 和 S
2.学习原始数据集的分布,更快的生成图片
3.设置了三个损失函数去限制生成器,生成更加好的图片

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模型压缩 相关文章解读

模型压缩相关文章Learning both Weights and Connections for Efficient Neural Networks (NIPS2015)Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding(ICLR2016)Learning both Weights and …

Latex 生成的PDF增加行号 左右两边

增加行号 \usepackage[switch]{lineno}\linenumbers \begin{document} \end{document}

Linux 修改用户名的主目录 家目录

首先root 登陆 sudo -i 输入密码然后 vim /etc/passwd 找到用户名 然后修改后面的路径即可

ubunt16.04 安装3090显卡驱动 cuda cudnn pytorch

安装驱动 需要的安装包 30系列显卡是新一代架构,新驱动不支持cuda9以及cuda10,所以必须安装cuda11、而pytorch现在稳定版为1.6,最高仅支持到cud10.2。所以唯一的办法就是使用上处于beta测试的1.7或1.8。这也是为啥一开始就强调本文的写作时…

测试项目:车牌检测,行人检测,红绿灯检测,人流检测,目标识别

本项目为2020年中国软件杯A组第一批赛题"基于计算机视觉的交通场景智能应用".项目用python实现,主要使用YOLO模型实现道路目标如人、车、交通灯等物体的识别,使用开源的"中文车牌识别HyperLPR&a…

linux 安装python3.8的几种方法

1.命令行搞定 git clone https://github.com/waketzheng/carstino cd carstino python3 upgrade_py.py2.离线安装 自己在官网下载安装包 https://www.python.org/ftp/python/3.8.0/ 解压: tar -zvf Python-3.8.0.tgz安装 cd Python-3.8.0 ./configure --prefix/u…

面试题目:欠拟合、过拟合及如何防止过拟合

对于深度学习或机器学习模型而言,我们不仅要求它对训练数据集有很好的拟合(训练误差),同时也希望它可以对未知数据集(测试集)有很好的拟合结果(泛化能力),所产生的测试误…

LaTeX:equation, aligned 书写公式换行,顶部对齐

使用aligined 函数,其中aligned就是用来公式对齐的,在中间公式中,\ 表示换行, & 表示对齐。在公式中等号之前加&,等号介绍要换行的地方加\就可以了。 \begin{equation} \begin{aligned} L_{task} &\lamb…

Latex: 表格中 自动换行居中

1、在导言区添加宏包: \usepackage{makecell}2、环境:tabular 命令: \makecell[居中情况]{第1行内容 \\ 第2行内容 \\ 第3行内容 ...} \makecell [c]{ResNet101\\ (11.7M)}参数说明: [c]是水平居中,[l]水平左居中&am…

在服务器上远程使用tensorboard查看训练loss和准确率

本人使用的是vscode 很简单 from torch.utils.tensorboard import SummaryWriter writer SummaryWriter(./logs)writer.add_scalar(train_loss,loss.val(),iteration) # 名字,数据,迭代次数训练的过程中会产生一个./logs的文件夹,里面存放的…

pytorch:固定部分层参数,固定单个模型

文章目录固定部分层参数固定指定层的参数不同层设置不同的学习率固定部分层参数 class RESNET_attention(nn.Module):def __init__(self, model, pretrained):super(RESNET_attetnion, self).__init__()self.resnet model(pretrained) # 这个model被固定for p in self.parame…

各种损失损失函数的使用场景和使用方法:KL散度

KL 散度的使用场景 KL散度( Kullback–Leibler divergence),又称相对熵,是描述两个概率分布 P 和 Q 差异的一种方法 torch.nn.functional.kl_div(input, target, size_averageNone, reduceNone, reductionmean) torch.nn.KLDivLoss(input, target, si…

RNN,LSTM,GRU的理解

RNN x 为当前状态下数据的输入, h 表示接收到的上一个节点的输入。 y为当前节点状态下的输出,而h′h^\primeh′为传递到下一个节点的输出. LSTM #定义网络 lstm nn.LSTM(input_size20,hidden_size50,num_layers2) #输入变量 input_data Variable(tor…

常用的loss函数,以及在训练中的使用

文章目录KL 散度L2 loss做标准化处理CElossCTCLossAdaptiveAvgPool2dKL 散度 算KL散度的时候要注意前后顺序以及加log import torhch.nn as nn d_loss nn.KLDivLoss(reductionreduction_kd)(F.log_softmax(y / T, dim1),F.softmax(teacher_scores / T, dim1)) * T * T蒸馏lo…

windows, 放方向键设置为vim格式,autohotkey-windows

安装 Autohotkey https://www.autohotkey.com/download/ 设置快捷键 随便找个目录,鼠标右键新建一个autohotkey的脚本。 映射一个键——上左下右 经常打字的人都知道,我们编辑文本时要上下左右移动光标,难免要将手移到方向键再移回来打字。对我这样的懒癌后期患者,这简直不能…

Hbase数据模型及Hbase Shell

目录 1 数据模型 1.1 相关名词概念 1.2 模型分析 2 Hbase Shell操作 2.1 命名空间 2.2 表操作 2.2.1 创建表 2.2.2 更改表结构 2.2.3 表的其他操作 2.3 数据操作 2.3.1 添加数据(put) 2.3.2 删除数据(delete) 2.3.3 获取数据(get|scan) 3 过滤器 3.1 比较运算符…

非关型数据库之Hbase

目录 1 Hbase简介 1.1 初识Hbase 1.2 Hbase的特性 2 HDFS专项模块 2.1 HDFS的基本架构 2.1.1 HDFS各组件的功能: 2.2 HFDFS多种机制 2.2.1 分块机制 2.2.2 副本机制 2.2.3 容错机制 2.2.4 读写机制 3 Hbase组件及其功能 3.1 客户端 3.2 Zookeeper 3.3 …

MongoDB Shell操作

目录 1 数据库操作 2 集合操作 3 文档操作 3.1 插入文档(insert|insertOne|insertMany) 3.2插入、删除的循环操作 3.2 删除文档(remove|deleteOne|deleteMany) 3.3 更新文档(update|save) 3.4 查询文档(find) 4 游标 5 索引 6 聚合 1 数据库操作 当新创建的数据库里…

MongoDB副本集、分片集的伪分布式部署(保姆级教程)

目录 1 集群架构(概念篇) 1.1 MongoDB核心组件 1.2 主从复制 1.3 副本集 1.4 分片集 2 集群搭建 2.1 部署副本集(伪分布式) 2.2 分片集部署(伪分布式) 2.3 副本集与分片集区别 1 集群架构(概念篇) MongoDB有三种集群部署模式,分别是主从复制(Master-Slave)…

【手把手 脑把脑】教会你使用idea基于MapReduce的统计数据分析(从问题分析到代码编写)

目录 1 编程前总分析 1.1 数据源 1.2 需要掌握的知识 1.2.1 Hadoop对比java的数据类型 1.2.2 MapReduce流程简介 1.3.3 MapReduce流程细分 2 编码阶段 2.1 导入依赖 2.2 mapper 2.3 reducer 2.4 main 1 编程前总分析 1.1 数据源 英语,李沐,85,男,20 数学,李沐,54,男…