知识蒸馏 pytorch官网源码分析

参考连接:

Knowledge Distillation Tutorial — PyTorch Tutorials 2.2.1+cu121 documentation

方法一  :    

知识蒸馏的损失函数只接受两个相同维度的输入,所以我们需要采取措施使他们在进入损失函数之前是相同维度的。我们将使用平均池化层对在教师模型卷积运算后的logits进行池化,使得logits维度和学生保持一样。

方法二:

原来的教师模型:

只有forward函数内有调整

class DeepNN(nn.Module):

    def forward(self, x):
        x = self.features(x)
        x = torch.flatten(x, 1)
        x = self.classifier(x)
        return x

加入了池化后的教师模型:

class ModifiedDeepNNCosine(nn.Module):

    def forward(self, x):
        x = self.features(x)
        flattened_conv_output = torch.flatten(x, 1)
        x = self.classifier(flattened_conv_output)
        flattened_conv_output_after_pooling = torch.nn.functional.avg_pool1d(flattened_conv_output, 2)
        return x, flattened_conv_output_after_pooling

原来的学生模型

class LightNN(nn.Module):

    def forward(self, x):
        x = self.features(x)
        x = torch.flatten(x, 1)
        x = self.classifier(x)
        return x

更新后的学生模型:

class ModifiedLightNNCosine(nn.Module):

    def forward(self, x):
        x = self.features(x)
        flattened_conv_output = torch.flatten(x, 1)
        x = self.classifier(flattened_conv_output)
        return x, flattened_conv_output

方法三:

 

Teacher accuracy: 75.60%
Student accuracy without teacher: 70.41%
Student accuracy with CE + KD: 70.19%
Student accuracy with CE + CosineLoss: 70.87%
Student accuracy with CE + RegressorMSE: 71.40%

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

考研初试没过线怎么办?你还有这些机会!

2024年研考初试成绩已经发布。 研究生考试国家线大概率在下个月公布。 过了国家线的同学可以继续准备复试或者选择调剂。 如果初试失利没过线,也不要急着放弃! 我们还有上岸拿硕士学位的机会! 考研初试没过线,我们还可以这样入学&#x…

【JavaEE进阶】 Spring AOP详解

文章目录 🎋前言🎍Spring AOP核心概念🚩切点(Pointcut)🚩连接点(Join Point)🚩通知(Advice)🚩切面(Aspect) 🍀通知类型🚩注意事项 🌲PointCut🎄切面优先级Ord…

【JavaEE进阶】 Spring AOP快速上手

文章目录 🍃什么是AOP🌳什么是Spring AOP🌴上手Spring AOP🚩引入依赖🚩编写AOP程序 ⭕总结 🍃什么是AOP AOP是Aspect Oriented Programming的简称(又称为面向切⾯编程) 什么是面向…

面试笔记系列四之SpringBoot+SpringCloud+计算机网络基础知识点整理及常见面试题

目录 Spring Boot 什么是 Spring Boot? Spring Boot 有哪些优点? SpringBootApplication注解 Spring Boot 的启动流程 Spring Boot属性加载顺序 springboot自动配置原理是什么?(*) 如何理解springboot中的start…

ISP代理是什么?跨境账号养号为什么要选择它?

在跨境出海业务中,代理IP对于您的在线任务至关重要,尤其是对于那些运行多个帐户的人来说。为您的帐户选择正确类型的代理对于确保帐户安全非常重要,劣质的IP容易使账号遭受封号风险。IPFoxy的多种代理IP类型应用范围各有侧重,其中…

ICML 2023 | 可证明的动态多模态融合框架论文整理

主要思想 提出一种针对低质量数据的通用的动态多模态融合框架,利用多模态融合得到的泛化误差去动态更新各个单模态预测器, 使得多模态决策倾向于更多地依赖于高质量模态 ,而不是其他模态 。通过动态确定每种模态的融合权重来减轻不可靠模态的影响。&…

3月5日济南,2024生物发酵展全新起航!助力打造生物产业经济新时代

生物发酵是生物产业的重要组成部分,近年来,我国生物产业发展迅猛,生物发酵技术也已广泛应用于食品、农业、医药、饲料、日化、材料等领域,市场前景广阔。2022年5月,国家发改委发布的《“十四五”生物经济发展规划》明确…

霍格沃兹遗产显示找不到emp.dll无法继续执行此代码的多种解决方法

在《霍格沃茨:遗产》这款游戏中,如果发现无法找到必要的文件emp.dll,emp.dll作为游戏运行过程中不可或缺的核心组件之一,它的缺失会导致游戏根本无法启动,玩家将无法正常进入并探索这个充满魔法与奇幻色彩的霍格沃茨世…

MySQL(基础篇)——函数、约束

一.函数 1.定义 函数是指一段可以直接被另一段程序调用的程序或代码。 2.字符串函数 常见如下: -- 字符串拼接 SELECT CONCAT(hello,MySql) AS CONCAT -- 将字符串全部转为小写 SELECT LOWER(HEllo MYSql) AS LOWER -- 将字符串全部转为大写 SELECT UPPER(Hello…

(C语言)二分查找

在⼀个升序的数组中查找指定的数字n,很容易想到的⽅法就是遍历数组,但是这种⽅法效率⽐较低。⽐如我买了⼀双鞋,你好奇问我多少钱,我说不超过300元。你还是好奇,你想知道到底多少,我就让你猜,你…

谷歌SEO推广提高网站点击率的10个秘籍-华媒舍

在当今数字化时代,拥有一个高点击率的网站对于企业和个人而言至关重要。通过谷歌SEO推广,可以帮助网站吸引更多的流量,并在搜索引擎结果页面(SERP)中获得更好的排名。本文将介绍10个谷歌SEO推广的秘籍,帮助…

ubuntu新建ap热点并分享

测试环境ubuntu16,只有一台笔记本电脑,不插网线,无线网卡既连wifi,又作为热点 1.方法1 直接手动新建ap热点 参考https://jingyan.baidu.com/article/ea24bc39b03fc6da62b331f0.html https://jingyan.baidu.com/article/363872ecd8f35d6e4ba…

基于React, Redux实现的俄罗斯方块游戏及源码

分享一个俄罗斯方块游戏游戏框架使用的是 React Redux,其中再加入了 Immutable,用它的实例来做来Redux的state。(有关React和Redux的介绍可以看 安装 npm install运行 npm start浏览自动打开 http://127.0.0.1:8080/ 打包编译 npm run …

码住!2024抖音电商爆品攻略,21个行业68个类目一文集齐

小商家,大生意。 2023年,抖音电商高歌猛进,用直播带货创造增量,以商品卡承接用户资产,跑出2万亿市场,带动万千品牌实现二次增长,无数中小商家随奔腾浪潮涌出,从无名到争先&#xff…

【element-ui】el-select multiple多选,表单校验问题解决方法

在项目开发过程中发现,el-select设置了multiple支持多选属性之后,el-select赋值之后,表单校验不通过 解决思路及解决方法: 1、首先看看v-model 、prop属性、rules校验是否正确,这里注意el-select的rules校验的trigger…

C++ 反向迭代器的设计与实现

在本文开始之前,先明晰几个 关键词 的含义(T : 模板参数): Ref : T& / const T&Ptr : T* / const T* 一、反向迭代器设计的上帝视角 我们希望将 反向迭代器 设计成一种适配器——传 list::iterator 得到 list 的反向迭代…

前端AR图像增强 + 图像追踪 + 模型渲染

文章目录 背景介绍技术介绍准备目标图片准备3D模型整合到一起演示代码地址背景介绍 本文实现web端html实现AR识别功能 在日常生活中常常看到AR虚拟现实相结合的案例 如下图的效果匹配到目标图片后展示3D模型 从而提高真实度 AR识别 技术介绍 想要达到效果有以下几步是必须的 准…

稀疏卷积Sparse Convolution

1. 为什么提出稀疏卷积?它有什么好处? 卷积神经网络已经被证明对于二维图像信号处理是非常有效的。然而,对于三维点云信号,额外的维度显著增加了计算量。 另一方面,与普通图像每个像素都有值不同的是,一般…

android开发书籍推荐,android面试复习

笼统来说,中年程序员容易被淘汰的原因其实不外乎三点。 1、输出能力已到顶点。这个人奋斗十来年了,依旧碌碌无为,很明显这人的天花板就这样了,说白了,天赋就这样。 2、适应能力越来越差。年纪大,有家庭&…

css5定位与隐藏

css 一.定位1.概念(定位定位模式边位移)2.静态位移static(不常用)3.相对定位relative(不脱标)(占位置)4.绝对定位absolute(脱标)(不占位置&#x…