使用Pytorch进行知识蒸馏

  • 一、知识蒸馏原理
    • 1. 使用 `softmax` 进行蒸馏:
    • 2. 知识迁移:老师知识 —> 学生知识
  • 二、知识蒸馏实现
    • 1. 导入各种包
    • 2. 设置随机种子
    • 3. 加载 MNIST 数据集
    • 4. 定义教师模型
    • 5. 设置模型
    • 6. 开始训练教师模型
    • 7. 定义并训练学生模型
    • 8. 预测前准备和设置
    • 9. 开始训练
  • 附录
    • 1. 关于 `import torch.nn as nn`
    • 2. 关于 `nn.functional`
    • 3. 关于`from torch.utils.data import DataLoader`
    • 4. 关于`model.train()`
    • 5. 关于`optimizer.zero_grad()`
    • 6. 关于 tqdm 库
    • 7. 关于 Python numpy.indices()
    • 7. 关于 loss.backward()
  • 源代码
  • 下一篇:[【Pytorch】使用Pytorch进行知识蒸馏_2](https://blog.csdn.net/weixin_47160526/article/details/123581995)

一、知识蒸馏原理

1. 使用 softmax 进行蒸馏:

softmax : qi=ezi/T∑jnezi/Tq_i=\frac{e^{z_i/T}}{ {\textstyle \sum_{j}^{n}e^{z_i/T}} }qi​=∑jn​ezi​/Tezi​/T​
T : 蒸馏温度
T = 时即为softmax

2. 知识迁移:老师知识 —> 学生知识


点击进入

【Pytorch】使用Pytorch进行知识蒸馏相关推荐

  1. 使用PyTorch进行知识蒸馏的代码示例

    随着机器学习模型的复杂性和能力不断增加.提高大型复杂模型在小数据集性能的一种有效技术是知识蒸馏,它包括训练一个更小.更有效的模型来模仿一个更大的"教师"模型的行为. 在本文中,我们 ...

  2. 知识蒸馏——pytorch实现

    轻量化网络 知识蒸馏可以理解为轻量化网络的一个tricks,轻量化网络是深度学习的一个大的发展趋势,尤其是在移动端,终端边缘计算这种对算力和运算时间有要求的场景中. 轻量化网络可以有以下四种方式实现: ...

  3. PyTorch学习笔记(二):PyTorch简介与基础知识

    往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: PyTorch学习笔记(一):PyTorch环境安 ...

  4. 【Datawhale 组队学习Pytorch】Task01 Pytorch安装和基础知识

    [项目简介] PyTorch是利用深度学习进行数据科学研究的重要工具,在灵活性.可读性和性能上都具备相当的优势,近年来已成为学术界实现深度学习算法最常用的框架.考虑到PyTorch的学习兼具理论储备和 ...

  5. 杂谈 | 当前知识蒸馏与迁移学习有哪些可用的开源工具?

    所有参与投票的 CSDN 用户都参加抽奖活动 群内公布奖项,还有更多福利赠送 作者&编辑 | 言有三 来源 | 有三AI(ID:yanyousan_ai) [导读]知识蒸馏与迁移学习不仅仅属于 ...

  6. 知识蒸馏:如何用一个神经网络训练另一个神经网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 如果你曾经用神经网络来解决一个复杂的问题,你就会知道它们的尺寸可能 ...

  7. 【视频课】模型剪枝+模型量化+知识蒸馏典型实践!

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  8. 【视频课】深度掌握模型剪枝+模型量化+知识蒸馏3大核心模型压缩技术理论!...

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  9. 【杂谈】当前知识蒸馏与迁移学习有哪些可用的开源工具?

    知识蒸馏与迁移学习不仅仅属于模型优化的重要技术之一,也是提升模型跨领域泛化能力的重要技术,那么当前有哪些可用的知识蒸馏和迁移学习开源工具呢? 作者&编辑 | 言有三 1 PaddleSlim ...

最新文章

  1. 如何在 CPU 上优化 GEMM
  2. 海量路由表能够使用HASH表存储吗-HASH查找和TRIE树查找
  3. python可以制作网站吗_Python大神带你用30行代码打造一个网站,爬虫+web不一样的玩法...
  4. 查看linux的系统位数
  5. TechEd2007现场侧记:TechEd的变与不变
  6. 牛客题霸 [连续子数组的最大和] C++题解/答案
  7. c语言递归求塔移动次数,c语言递归调用汉诺塔
  8. 1.文档数据非结构化
  9. 用触发器实现表的同步操作
  10. 股债轮动策略之行业版
  11. 【推荐】会被快速否决的9种求职者.
  12. 将vscode改成中文界面
  13. [附源码]Java计算机毕业设计SSM房屋租赁管理系统设计
  14. docker卸载mysql_Docker卸载镜像
  15. 练手项目2笔记之day01
  16. 【2】深度神经网络的损失函数/激活函数
  17. vue3+ts+setup语法糖
  18. 使用Wake On Lan远程唤醒
  19. 邓应海:焦点转向美国数据,央行会议!最新黄金走势分析
  20. java poi- 实现 word Excel pdf ppt 转 HTML

热门文章

  1. AC5 AC6 CMSIS符号对照表
  2. 磁盘显示没有初始化找到数据法子
  3. 中国建筑科学大会暨绿色智慧建筑博览会开幕!奥的斯新一代Gen3智慧电梯中国首发;格兰富、紫荆花重磅亮相 | 美通社头条...
  4. PHP Switch 语句之学习笔记
  5. 【C/C++】数字(int / long / long long)与字符串(string)之间的转换
  6. iOS上线常见问题总结
  7. 关于雷劈数的Java实现
  8. Mysql中rowid作用是什么_mysql中的_rowid
  9. Kubernetes 1.12.0 Kube-controller-manager之replicaset-controller源码阅读分析
  10. 动圈耳机振膜_首款纯铍振膜动圈入耳式耳机,惊喜来袭