【Pytorch】使用Pytorch进行知识蒸馏
使用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=∑jnezi/Tezi/T
T : 蒸馏温度
T = 时即为softmax
2. 知识迁移:老师知识 —> 学生知识
点击进入
【Pytorch】使用Pytorch进行知识蒸馏相关推荐
- 使用PyTorch进行知识蒸馏的代码示例
随着机器学习模型的复杂性和能力不断增加.提高大型复杂模型在小数据集性能的一种有效技术是知识蒸馏,它包括训练一个更小.更有效的模型来模仿一个更大的"教师"模型的行为. 在本文中,我们 ...
- 知识蒸馏——pytorch实现
轻量化网络 知识蒸馏可以理解为轻量化网络的一个tricks,轻量化网络是深度学习的一个大的发展趋势,尤其是在移动端,终端边缘计算这种对算力和运算时间有要求的场景中. 轻量化网络可以有以下四种方式实现: ...
- PyTorch学习笔记(二):PyTorch简介与基础知识
往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: PyTorch学习笔记(一):PyTorch环境安 ...
- 【Datawhale 组队学习Pytorch】Task01 Pytorch安装和基础知识
[项目简介] PyTorch是利用深度学习进行数据科学研究的重要工具,在灵活性.可读性和性能上都具备相当的优势,近年来已成为学术界实现深度学习算法最常用的框架.考虑到PyTorch的学习兼具理论储备和 ...
- 杂谈 | 当前知识蒸馏与迁移学习有哪些可用的开源工具?
所有参与投票的 CSDN 用户都参加抽奖活动 群内公布奖项,还有更多福利赠送 作者&编辑 | 言有三 来源 | 有三AI(ID:yanyousan_ai) [导读]知识蒸馏与迁移学习不仅仅属于 ...
- 知识蒸馏:如何用一个神经网络训练另一个神经网络
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 如果你曾经用神经网络来解决一个复杂的问题,你就会知道它们的尺寸可能 ...
- 【视频课】模型剪枝+模型量化+知识蒸馏典型实践!
前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...
- 【视频课】深度掌握模型剪枝+模型量化+知识蒸馏3大核心模型压缩技术理论!...
前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...
- 【杂谈】当前知识蒸馏与迁移学习有哪些可用的开源工具?
知识蒸馏与迁移学习不仅仅属于模型优化的重要技术之一,也是提升模型跨领域泛化能力的重要技术,那么当前有哪些可用的知识蒸馏和迁移学习开源工具呢? 作者&编辑 | 言有三 1 PaddleSlim ...
最新文章
- 如何在 CPU 上优化 GEMM
- 海量路由表能够使用HASH表存储吗-HASH查找和TRIE树查找
- python可以制作网站吗_Python大神带你用30行代码打造一个网站,爬虫+web不一样的玩法...
- 查看linux的系统位数
- TechEd2007现场侧记:TechEd的变与不变
- 牛客题霸 [连续子数组的最大和] C++题解/答案
- c语言递归求塔移动次数,c语言递归调用汉诺塔
- 1.文档数据非结构化
- 用触发器实现表的同步操作
- 股债轮动策略之行业版
- 【推荐】会被快速否决的9种求职者.
- 将vscode改成中文界面
- [附源码]Java计算机毕业设计SSM房屋租赁管理系统设计
- docker卸载mysql_Docker卸载镜像
- 练手项目2笔记之day01
- 【2】深度神经网络的损失函数/激活函数
- vue3+ts+setup语法糖
- 使用Wake On Lan远程唤醒
- 邓应海:焦点转向美国数据,央行会议!最新黄金走势分析
- java poi- 实现 word Excel pdf ppt 转 HTML
热门文章
- AC5 AC6 CMSIS符号对照表
- 磁盘显示没有初始化找到数据法子
- 中国建筑科学大会暨绿色智慧建筑博览会开幕!奥的斯新一代Gen3智慧电梯中国首发;格兰富、紫荆花重磅亮相 | 美通社头条...
- PHP Switch 语句之学习笔记
- 【C/C++】数字(int / long / long long)与字符串(string)之间的转换
- iOS上线常见问题总结
- 关于雷劈数的Java实现
- Mysql中rowid作用是什么_mysql中的_rowid
- Kubernetes 1.12.0 Kube-controller-manager之replicaset-controller源码阅读分析
- 动圈耳机振膜_首款纯铍振膜动圈入耳式耳机,惊喜来袭