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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值