当前位置: 首页 > news >正文

yolox-何为EMA?

何为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.lryc.cn/news/355552.html

相关文章:

  • Java:String、StringBuffer和StringBuilder的区别
  • 虚拟化技术 分布式资源调度
  • 【Element-plus】vue组合式中使用el-upload通过oss接口上传图片流程(可直接复制使用)
  • C++ 数据结构算法 学习笔记(33) -查找算法及企业级应用
  • 【Linux】在Ubuntu 16.04上安装Gerrit + PostgreSQL + Apache服务
  • 数据倾斜那些事儿
  • python考试成绩管理与分析:从列表到方差
  • Excel某列中有不连续的数据,怎么提取数据到新的列?
  • 翻译《The Old New Thing》- What does it mean when a display change is temporary?
  • 【C语言】char,short char,long char分别是多少字节,多少位,多少bit
  • 新V 系首批订单交付!苏州金龙助新疆游骏文旅集团打造旅运新标杆
  • 【Django】从零开始学Django【2】
  • 【leetcode--383赎金信(使用Counter一行代码结束战斗)】
  • pdf打开方式怎么设置默认?分享这几种设置方法
  • 杂谈|RestFul和http的区别
  • Nginx的Sub模块
  • 使用大模型做应用的一些问题
  • 2024 前端面试每日1小时
  • 2024.05.22学习记录
  • Redis与数据库同步指南:订阅Binlog实现数据一致性
  • Spring MVC+mybatis 项目入门:旅游网(二) dispatcher与controller与Spring MVC
  • 深入了解数据库与Java数据类型映射
  • 深刻解析 volatile 关键字和线程本地存储ThreadLocal
  • 羧甲基纤维素钠(CMC-Na)市场规模不断增长 我国生产企业众多
  • 网红郭有才是怎么火起来的
  • 小米8SE刷root(面具)
  • 如果创办Google
  • 邦芒职场:揭秘影响你职场收入的九大细节
  • Petalinux 制作ZYNQ镜像文件流程
  • 99%的人都不知道,微信才是真正的学习神器