知识蒸馏 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 …

Linux 杀死进程

kill -9 进程名 杀死进程

计算图片相似度的方法

文章目录1.余弦相似度计算2.哈希算法计算图片的相似度3.直方图计算图片的相似度4.SSIM(结构相似度度量)计算图片的相似度5.基于互信息(Mutual Information)计算图片的相似度1.余弦相似度计算 把图片表示成一个向量,通…

.size .shape .size() type的运用

.size ndarray.size 数组元素的总个数,相当于 .shape 中 n*m 的值 a np.array([2,2]) print(a.size)2.shap ndarray.shape 数组的维度,对于矩阵,n 行 m 列 a np.array([2,2]) print(a.shape) (1,2)torch.tensor 数组的维度 x torch.r…

矩阵相加

tensor 类型 a torch.randn(1,3,3) b torch.randn(1,3,3) c a b numpy.array 类型 a np.array([2,2]) b np.array([2,2]) print(type(a)) print(ab)[4,4]

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

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

pytorh .to(device) 和.cuda()的区别

原理 .to(device) 可以指定CPU 或者GPU device torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 单GPU或者CPU model.to(device) #如果是多GPU if torch.cuda.device_count() > 1:model nn.DataParallel(model,devic…

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。这也是为啥一开始就强调本文的写作时…

3090显卡 torch.cuda.is_available()返回false的解决办法

问题 1.执行Nvidia-smi 命令没有报错,能够显示驱动信息; 2.执行 torch.backends.cudnn.enabled is TRUE 3.torch.cuda.is_available()一直返回False 解决 把torch,torchvision等相关安装包全部删除,安装适合版本的torch。 30系…

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

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

pytorch: 在训练中保存模型,加载模型

文章目录1. 保存整个模型2.仅保存和加载模型参数(推荐使用)3. 保存其他参数到模型中,比如optimizer,epoch 等1. 保存整个模型 torch.save(model, model.pkl) model torch.load(model.pkl)2.仅保存和加载模型参数(推荐使用) torch.save(model_object.state_dict()…

Pytorch:保存图片

1. 直接保存Tensor #!/usr/bin/env python # _*_ coding:utf-8 _*_ import torch from torchvision import utils as vutilsdef save_image_tensor(input_tensor: torch.Tensor, filename):"""将tensor保存为图片:param input_tensor: 要保存的tensor:param fi…

Python List:合并多个list,listd的合并

第一种方法 a [1,3,3] b [2,3,3] a a b print(a) [1,3,3,2,3,3]第二种方法 a [1,3,3] b [2,3,3] a.extend(b) print(a) [1,3,3,2,3,3]

挂载硬盘问题:mount: wrong fs type, bad option, bad superblock on /dev/sdb,

mount: wrong fs type, bad option, bad superblock on /dev/sdb,missing codepage or helper program, or other error 解决方案: # create mount dir sudo mkdir /hdd6T# new file system sudo mkfs.ext4 /dev/sdc# mount drive sudo mount /dev/sdc /hdd6T/# c…

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…

argparse:shell向Python中传参数

一般是 python train.py --bath_size 5利用argparse解析参数 import argparse parser argparse.ArgumentParser() parser.add_argument(integer, typeint, helpdisplay an integer) args parser.parse_args()参数类型 可选参数 import argparse parser argparse.Argumen…