知识蒸馏中有哪些经验| 目标检测 |mobile-yolov5-pruning-distillation项目中剪枝知识分析
项目地址:https://github.com/Syencil/mobile-yolov5-pruning-distillation
项目时间:2022年
mobile-yolov5-pruning-distillation是一个以yolov5改进为主的开源项目,主要包含3中改进方向:更改backbone、模型剪枝、知识蒸馏。这里主要研究其知识蒸馏部分,根据其分享的实验数据,获取对目标检测中模型剪枝的认知。希望阅读本博文的读者,能给项目一个satr。

该项目中关于知识蒸馏首先介绍了基本分类情况,关于实验主要是分享了三种蒸馏策略下的模型效果。
蒸馏是希望将T模型学习到的知识迁移到S模型中。通常蒸馏方式大体可以分为:1)Response-based,2)Feature-based,3)Relation-based。
按照策略则可以分为1)online distillation,2)offline distillation 和3)self distillation
按照蒸馏算法可以分为1)adversarial distillation,2)multi-teacher distillation, 3)cross-modal distillation,4)graph-based distillation,5)attention-based distillation,6)data-free distillation,7)quatized Distillation,8)lifelong distillation, 9)nas distillation。
mobile-yolov5-pruning-distillation项目将采用多种不同的蒸馏方式尝试对mobilev2-yolo5s提点,每一种Strategy都对应有相关论文。并不是每一种方式都有效,可能和组合方式以及参数调节都有关。

1、Strategy 1 Output-based Distillation
以mobilev2-yolo5s作为S-model,希望能将T-model在coco和voc上学习到的知识蒸馏到mobilev2-yolo5s中。以Object detection at 200 Frames Per Second为基础方法配置蒸馏损失函数,抑制背景框带来的类别不均衡问题。 用L2 loss作为蒸馏基础函数,损失中的蒸馏dist平衡系数选择为1。
选取基于darknet为backbone的yolo5s作为T模型。这样能尽可能的保证结构上的一致。而yolo5s的参数量和计算量差不多正好是mobilev2-yolo5s的两倍, capacity gap并不是很明显。蒸馏后提了接近3个点。
这里所表明2点信息:1、参考Object detection at 200 Frames Per Second抑制背景框蒸馏,可以提示3个点的map 2、在教师模型与学生模型间gap过大,会影响蒸馏效果,反而不如gap低的低精度教师模型效果好

2、Strategy 2 Feature-based+Output-based Distillation
Strategy 1仅仅只是蒸馏最后一个输出层,属于distillation中Response-Based。考虑到特征提取也是可以进行蒸馏的,提升backbone在特征提取上的表征能力。 对于T和S特征图之间维度存在不匹配的情况,我们首先应用一个Converter网络将通道数转换成相同的 这个思想在FitNet上就提出过,实际操作中更类似于如下

实验效果一 尝试将特征图和输出层一起作为蒸馏指导。对于T和S中间特征图输出维度不匹配的问题,采用在S网络输出接一个Converter,将其升维到T网络匹配。 Converter由conv+bn+relu6组成,T网络输出单独接一个relu6,保证激活函数相同。 output层参数为1.0,feature参数为0.5。mAP0.663甚至比baseline都要低。 蒸馏效果如下所示

feature distillation居然让模型掉点了,怀疑是feature权重太大。loss与map日志如下:
1、loss降到0.1667,mAP可以提升到0.68,还是低于baseline。
2、继续下降到0.05,mAP可以回到baseline的水平,
3、在训练末期mAP还在上升,loss还在下降。最后尝试训练100个epoch,mAP才回到74。
实际上还尝试过各种变形和各种参数,但是感觉效果仍然不好。这表明进行feature distillation对于目标检测而言很大概率是一个负优化
3、Strategy 3 Teach-Assistant Distillation
在Strategy 1.2的实验中可以看出,T越强力蒸馏的S提升并不一定更多,反而更低。类似的实验在TADK也有。 用yolov5l作为T网络提升不高的原因可能有2点。1)T更复杂,S没有足够的capacity来模仿T,2)T的精度更高,模型确定性更强,输出logits(soft label)变得less soft。 但是我想让更大的yolov5l作为指导网络,那么可以利用yolov5s作为助教网络辅助蒸馏。
将yolov5l作为T网络,yolov5s作为TA网络(这里T和TA之间其实差距也是非常大的,7倍差距),mobilev2-yolo5s作为S网络。
- 首先对TA蒸馏,提升yolov5s在voc上的mAP。
- 其次利用TA对S蒸馏。
不过从TA的精度来看,由于T和TA存在显著的能力gap,蒸馏出的TA并没有精度上,故没有进行第二步蒸馏。

5、同类型蒸馏模型精度
基于项目作者分享的信息,可以发现所得到的模型效果还是较为可观的。

执行不同蒸馏策略的代码如下

相关文章:
知识蒸馏中有哪些经验| 目标检测 |mobile-yolov5-pruning-distillation项目中剪枝知识分析
项目地址:https://github.com/Syencil/mobile-yolov5-pruning-distillation 项目时间:2022年 mobile-yolov5-pruning-distillation是一个以yolov5改进为主的开源项目,主要包含3中改进方向:更改backbone、模型剪枝、知识蒸馏。这里…...
Oracle 19c RAC单节点停机维护硬件
背景 RAC 环境下一台主机硬件光纤卡不定时重启,造成链路会间断几秒,期间数据库会话响应时间随之变长,该光纤卡在硬件厂商的建议下,决定停机更换备件,为保证生产影响最小,决定停掉该节点,另外节…...
Linux系统 进程
Linux系统 进程 进程私有地址空间用户模式和内核模式上下文切换 进程控制系统调用错误处理进程控制函数获取进程 ID创建和终止进程回收子进程让进程休眠加载并运行程序 进程 异常是允许操作系统内核提供进程(process)概念的基本构造块,进程是…...
机载视频流回传+编解码方案
无线网络,低带宽场景。不能直接转发ROS raw image(10MB/s),而要压缩(编码)后再传输。可以用rtsp的udp传输或者直接传输话题,压缩方法有theora(ROS image_transport默认支持ÿ…...
Ubuntu 20.04 Server版连接Wifi
前言 有时候没有网线口插网线或者摆放电脑位置不够时,需要用Wifi联网。以下记录Wifi联网过程。 环境:Ubuntu 20.04 Server版,无UI界面 以下操作均为root用户,如果是普通用户,请切换到root用户,或者在需要权…...
【VRChat 改模】开发环境搭建:VCC、VRChat SDK、Unity 等环境配置
一、配置 Unity 相关 1.下载 UnityHub 下载地址:https://unity.com/download 安装打开后如图所示: 2.下载 VRChat 官方推荐版本的 Unity 跳转界面(VRChat 官方推荐页面):https://creators.vrchat.com/sdk/upgrade/…...
人工智能的微积分基础
目录 编辑 引言 微积分的基本概念 1. 导数 2. 积分 3. 微分方程 微积分在人工智能中的应用 1. 机器学习中的优化 2. 反向传播算法 3. 概率与统计 4. 控制理论 5. 自然语言处理中的梯度 6. 计算机视觉中的积分 7. 优化算法中的微积分 8. 微分几何在深度学习中的…...
Android 基础类(01)- Thread类 - readyToRun和threadLoop
一、前言: 在阅读AOSP代码过程中,我们经常会看到Thread子类重写两个方法:readyToRun和threadLoop,不清楚的同学,可能在这儿连调用逻辑都搞不清楚了,因为找不到谁调用了它。我这儿先不去深究Thread内部逻辑…...
C++设计模式之构造器
动机 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。 如何…...
红日靶场-5
环境搭建 这个靶场相对于前几个靶场来说较为简单,只有两台靶机,其中一台主机是win7,作为我们的DMZ区域的入口机,另外一台是windows2008,作为我们的域控主机,所以我们只需要给我们的win7配置两张网卡&#…...
做异端中的异端 -- Emacs裸奔之路3: 上古神键Hyper
谈一下快捷捷冲突的问题。 Emacs几乎穷尽所有组合键 我用下面命令,在Fundamental模式下,枚举所有绑定。 (defun keymap-lookup-test-fn(); printable keys(setq printable-chars (number-sequence 33 126))(setq i 0)(while (< i (length printable…...
Java多线程介绍及使用指南
“多线程”:并发 要介绍线程,首先要区分开程序、进程和线程这三者的区别。 程序:具有一定功能的代码的集合,但是是静态的,没有启动运行 进程:启动运行的程序【资源的分配单位】 线程:进程中的…...
HarmonyOS 5.0应用开发——列表(List)
【高心星出品】 文章目录 列表(List)列表介绍列表布局设置主轴方向设置交叉轴方向 列表填充分组列表填充 滚动条位置设置滚动位置滚到监听 列表项侧滑 列表(List) 列表介绍 列表作为一种容器,会自动按其滚动方向排列…...
自动化电气行业的优势和劣势是什么
优势 市场需求广泛: 自动化电气技术广泛应用于电力系统、制造业、交通、农业等多个领域,随着智能化、数字化趋势的加强,其市场需求持续增长。在智能制造、智能电网等领域,自动化电气技术更是发挥着关键作用,推动了行业…...
第 42 章 - Go语言 设计模式
在Go语言中,设计模式是一种被广泛接受的解决常见问题的最佳实践。这些模式可以分为三类:创建型模式、结构型模式和行为型模式。下面我将结合案例以及源代码对这三种类型的设计模式进行详细讲解。 创建型模式 创建型模式主要关注对象的创建过程…...
【机器学习】---大语言模型
引言:开启大语言模型的奇幻旅程 近年来,人工智能(AI)领域正在经历一场前所未有的技术革命,而其中最耀眼的明星莫过于大语言模型(Large Language Models, LLMs)。这些模型,犹如现代科…...
挑战用React封装100个组件【002】
项目地址 https://github.com/hismeyy/react-component-100 组件描述 组件适用于需要展示图文信息的场景,比如产品介绍、用户卡片或任何带有标题、描述和可选图片的内容展示 样式展示 代码展示 InfoCard.tsx import ./InfoCard.cssinterface InfoCardProps {t…...
MarkDown-插入图片-图片url地址的生成获取方法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、url地址是什么二、如何获取图片的url地址1.了解图床2.使用图床获取图片URL地址2.1进入网站后,点击右下角“Select Image.”按钮,即可…...
插值、拟合和回归分析的相关知识
目录 0 序言 1 分段线性插值 2 多项式插值 3 样条插值 4 最小二乘拟合 5 多元线性回归 0 序言 在生产实践和科学研究中,常常有这些问题: 插值问题:由实验或测量得到变量间的一批离散样点,要求得到变量之间的函数关系或得到样点之外的…...
【小白学机器学习42】进行多次抽样,样本的分布参数和总体的分布参数的关系
目录 1 进行多次抽样,样本的分布参数和总体的分布参数的关系 2 样本容量越大,多次抽样的样本的分布参数和总体的分布参数的关系 3 随着样本容量增大,多次抽样均值的 平均值,方差的变化 4 随着样本容量增大,多次抽…...
赛美特冲刺港股:年营收7亿,刚完成8亿融资,估值73亿
雷递网 雷建平 3月31日赛美特信息集团股份有限公司(简称:“赛美特”)日前更新招股书,准备在港交所上市。赛美特成立以来获得多次融资,其中,2023年4月完成2.33亿元融资,投后估值62.33亿ÿ…...
基于西门子PLC的空压机组储气风冷机组自动控制系统:“手动自动切换、多机控制及实时监测报警系统
基于西门子plc的空压机组储气风冷机组自动控制系统 可以实现手动自动切换 三组空压机分别自动控制,自动检测三路压力 风冷机运行实时检测 报警查寻,参数设置等上周刚把车间那套跑了快十年的空压机组控制系统给换了,用的是西门子S7-1200&#…...
Windows ISO制作与补丁集成自动化工具实战指南:从手动操作到批量部署的效率革命
Windows ISO制作与补丁集成自动化工具实战指南:从手动操作到批量部署的效率革命 【免费下载链接】Win_ISO_Patching_Scripts Win_ISO_Patching_Scripts 项目地址: https://gitcode.com/gh_mirrors/wi/Win_ISO_Patching_Scripts 在数字化时代,系统…...
Z-Image Turbo实际作品分享:城市风光生成效果
Z-Image Turbo实际作品分享:城市风光生成效果 本文所有内容均为技术效果展示,不涉及任何政治敏感内容,所有案例均为技术演示用途。 1. 效果概览:城市风光的AI艺术呈现 Z-Image Turbo作为基于Gradio和Diffusers构建的高性能AI绘图…...
AI报告文档审核助力生态数据可信化:IACheck提升生物多样性调查报告物种识别准确性
在生态环境保护逐渐走向精细化管理的背景下,生物多样性调查数据的重要性不断提升。从自然保护区评估到生态修复项目,从环境影响评价到长期生态监测,物种数据已成为支撑决策的重要基础。而在这些数据中,“物种识别的准确性”&#…...
5分钟掌握:PowerToys Image Resizer让图片批量处理效率提升10倍
5分钟掌握:PowerToys Image Resizer让图片批量处理效率提升10倍 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/…...
自动药片装瓶机 No.360 三菱 组态王 基于PLC的药片装瓶自动控制系统 我们主要的后发送...
自动药片装瓶机 No.360 三菱 组态王 基于PLC的药片装瓶自动控制系统 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面车间里那些药片装瓶机,以前人工摆瓶子、数药片,慢就算了,…...
实战指南:运用快马平台与mcp协议构建企业级智能数据分析系统
今天想和大家分享一个最近用InsCode(快马)平台实现的实战项目——基于MCP协议的企业级智能数据分析系统。这个项目特别适合需要整合多源数据的企业场景,整个过程让我深刻体会到MCP协议在复杂系统中的桥梁作用,以及快马平台如何让这类应用的开发部署变得异…...
Java边缘容器化部署卡顿难题(2024最新LTS版HotSpot深度调优白皮书)
第一章:Java边缘容器化部署卡顿难题(2024最新LTS版HotSpot深度调优白皮书)在边缘计算场景下,资源受限的ARM64设备(如Jetson Orin、Raspberry Pi 5)运行JDK 21.0.3 LTS(2024年4月发布)…...
Linux下CMake多版本共存实战:不卸载旧版也能用上新功能
Linux下CMake多版本共存实战:不卸载旧版也能用上新功能 在软件开发的世界里,版本管理就像一场永不停歇的舞蹈。想象一下这样的场景:你正在维护一个历史悠久的C项目,突然客户要求你同时开发一个全新的模块,而这个模块需…...
