yolox-何为EMA?

news2024/11/16 8:49:31

何为EMA?
定义: 滑动平均/指数加权平均:用来估计变量的局部均值,使得变量的更新与一段时间内的历史取值有关,滑动平均可以看作是变量的过去一段时间取值的均值。
优点: 相比于直接赋值,滑动平均得到的值在图像上更加平缓光滑,抖动性更小。也可以理解为,由于model在最后收敛时,weights会在全局最优点抖动,所有在最后收敛过程中使用模型权重均值更能代表模型的最终训练结果,即仅在测试时使用。
需要注意的是 ,训练时计算EMA得到的shadow-weights更新值不在训练时使用,其使用的仍然是原始weights。而shadow-weights使用在val测试中,这部分可以通过代码理解。
yolox/core/trainer.py
在这里插入图片描述
验证是否使用了ema
在这里插入图片描述
跳转yolox/exp/yolox_base.py
在这里插入图片描述
继续回到self.ema_model,进入ModelEMA跳转至 yolox/utils/ema.py
在这里插入图片描述
通过代码,我们可以看见训练时计算EMA得到的shadow-weights更新值被存到v中,其并不会参加梯度下降,即只在测试时使用。此外,在计算时使用了.detach(),说明所得到的v是被生成的一个新的tensor,其不会影响训练时梯度求导,即weights和shadow-weights是两个分离的tensor。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索数组的最大值与最小值:从基础到进阶

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:数组的奥秘 二、基础操作:查找数组的最大值和最小值 三、…

RK平台ADB不识别问题排查

简介 ADB是Android系统的调试工具,一般用USB线连接开发板和PC,可以抓取开发板的调试日志,执行shell指令,传输文件等功能。为了调试方便,RK平台的Linux系统也默认支持ADB,其源码是从Android移植过来的。 本…

C语言——基于stm32G030的温湿度传感器项目实验

一、功能要求: 设备自检功能: 设备上电自检(检查传感器采集是否正常, DHT11有存在响应, 可以自检使用, )自检通过后,由串口打印设备状态信息。 自动控制功能: 进入自动控…

汇编原理(二)寄存器——内存访问

一个字 两个字节 双字 字节为8位 字为16位(看两格) 双子dword32位(看四格) 内存中字的存储: 0地址单元中存放的字节型数据是多少? 0地址字单元中存放的字型数据是多少? 2地址字单元中存放…

网络之再谈体系结构

大家都知道的是网络的体系结构,现代软件常用的体系结构无非是TCP/IP协议栈,OSI因为实现复杂并且效率没有TCP/IP协议栈好,所以不用OSI,但是,最近在复习网络知识的时候,发现了一些奇怪的地方,那就…

深度学习-序列模型

深度学习-序列模型 1. 定义2. 应用领域3. 典型模型4. 技术细节5. 总结 序列模型是一种处理序列数据的机器学习模型,其输入和/或输出通常为序列形式的数据。以下是关于序列模型的详细解释: 1. 定义 序列模型是输入输出均为序列数据的模型,它…

【Python】 Python中__slots__的妙用与深入解析

基本原理 在Python中,__slots__是一个特殊的类属性,它可以用来限制一个类可以拥有的属性数量。这个特性在Python中非常有用,尤其是在创建大量实例时,可以显著减少内存的使用。 通常,Python的类会为每个实例自动创建一…

linux下docker 的使用(2)

上期我们讲了网络,现在来进行最后的 docker的基础内容 java项目的部署 假如说 我们java 项目已经写好了,现在在maven中打包一下我们的项目,然后会得到一个jar包,把jar包 上传到虚拟机上 点击package 命令,会得到一个…

【ARM+Codesys案例】RK3568 +Codesys 软PLC方案在电镀生产线的应用

1 电镀生产简介 电镀是一种比较重要的工艺,产品经过电镀工艺处理后,不仅产品质量获得提高,产品性能也会大幅度提高,同时延长了产品的使用时间。电镀生产线是指按一定的电镀生产工艺要求,将有关的各种电镀处理槽、电镀行车运动装置…

ip地址更改方法有哪些类型

在互联网世界中,IP地址作为每个网络设备的唯一标识符,其重要性不言而喻。无论是为了提升网络安全、实现远程办公,还是解决地域限制等问题,我们都有可能需要更改IP地址。本文将详细介绍IP地址更改方法有哪些类型,以便在…

Android面试题之Jetpack的三大核心组件

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 ViewModel 和 LiveData 是 Android Jetpack 组件库中的两个核心组件,它们能帮助开发者更有效地管理 UI 相关的数据,并且…

009、字符串_应用场景

缓存功能 Redis作为缓存层,MySQL作 为存储层,绝大部分请求的数据都是从Redis中获取。由于Redis具有支撑高 并发的特性,所以缓存通常能起到加速读写和降低后端压力的作用。 计数 许多应用都会使用Redis作为计数的基础工具,它可…

Pycharm常见问题1

问题: ValueError at /user/users/ The view user.views.get_users didnt return an HttpResponse object. It returned None instead. 问题分析: 视图user.views.get_users未返回HttpResponse对象,它返回值为None。也就是说在视图文件没有…

[JDK工具-10] jvisualvm 多合一故障处理工具

文章目录 1. 介绍2. 查看堆的变化3. 查看堆快照4. 导出堆快照文件5. 查看class对象加载信息6. CPU分析:发现cpu使用率最高的方法7. 查看线程快照:发现死锁问题 1. 介绍 VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具&#xf…

荣耀200系列正式发布,以深度创新引领中高端市场

5月27日,荣耀召开数字系列新品发布会,正式发布荣耀200系列。 据「TMT星球」了解,在荣耀AI技术的加持下,全新荣耀200系列在影像、护眼等方面有了更进一步的创新升级,为行业带来众多开创性的技术解决方案。同时&#xf…

社交媒体数据恢复:云叙

在使用云盘的过程中,由于误操作或其他原因,我们可能会遇到数据丢失的问题。了解云盘数据恢复的原理和技巧对于确保云盘数据安全非常重要。接下来,我将为您提供一份关于云盘数据恢复的教程。 一、文件恢复 当您发现文件丢失或损坏后&#xff0…

逆向基础:软件手动脱壳技术入门

这里整合了一下之前自己学习软件手工脱壳的一些笔记和脱文,希望能给新学软件逆向和脱壳的童鞋们一点帮助。 1 一些概念 1.1 加壳 加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段。加壳过的程序可以直接运行,但是不能查看源代码…

【Flowable 7】学习笔记 01 - 初始化数据库表创建流程(源码)

文章目录 前言版本说明配置1、引擎配置初始化2、SQL 执行创建表2.0、创建表概览(创建表数目:38)2.1、基础组件表创建(以 common 组件为例)2.2、changelog 组件表创建(基于 liquibase)2.3、Engin…

Ora-32004错误处理

问题现象 处理方法 观察alert会发现报错的参数在加载spfile的阶段 按照mos的方法对其reset 重新启动无报错 观察日志无报错

人工智能在肺癌领域的最新进展|【医学AI·顶刊速递·05-28】

小罗碎碎念 2024-05-28|文献速递 今天推荐的6篇文章,质量都非常的高,都是与肺癌相关的最新进展。 看我推文的,很多来自不同的专业,研究不同的癌种。小罗友情提醒,不要只盯着自己领域的癌种,要兼…