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

做外汇网站代理赚钱吗百度关键词排名怎么靠前

做外汇网站代理赚钱吗,百度关键词排名怎么靠前,建筑工程公司取名免费,互联网保险和传统保险的区别文章目录 前言EMA的定义在深度学习中的应用PyTorch代码实现yolov5中模型的EMA实现 参考 前言 在深度学习中,经常会使用EMA(指数移动平均)这个方法对模型的参数做平均,以求提高测试指标并增加模型鲁棒。实际上,_EMA可以…

文章目录

  • 前言
  • EMA的定义
  • 在深度学习中的应用
    • PyTorch代码实现
    • yolov5中模型的EMA实现
  • 参考


前言

在深度学习中,经常会使用EMA(指数移动平均)这个方法对模型的参数做平均,以求提高测试指标并增加模型鲁棒。
实际上,_EMA可以看作是Temporal Ensembling,在模型学习过程中融合更多的历史状态,从而达到更好的优化效果。

EMA的定义

指数移动平均(Exponential Moving Average)也叫权重移动平均(Weighted Moving Average),是一种给予近期数据更高权重的平均方法。
假设有n个权重数据image.png

  • 普通的平均数:image.png
  • EMA:image.png

其中, vt表示前 t条的平均值 ( v0=0 ),β是加权权重值 (一般设为0.9-0.999)。

Andrew Ng在Course 2 Improving Deep Neural Networks中讲到,EMA可以近似看成过去 1/(1−β) 个时刻 v 值的平均。
普通的过去n时刻的平均是这样的:image.png
类比EMA,可以发现当 image.png 时,两式形式上相等。需要注意的是,两个平均并不是严格相等的,这里只是为了帮助理解。
实际上,EMA计算时,过去 1/(1−β) 个时刻之前的数值平均会decay到 1/e 的加权比例,证明如下。
如果将这里的 vt展开,可以得到:
image.png
其中, image.png,代入可以得到 image.png

在深度学习中的应用

上面讲的是广义的ema定义和计算方法,特别的,在深度学习的优化过程中, image.png是t时刻的模型权重weights, vt是t时刻的影子权重(shadow weights)。在梯度下降的过程中,会一直维护着这个影子权重,但是这个影子权重并不会参与训练。
基本的假设是,模型权重在最后的n步内,会在实际的最优点处抖动,所以我们取最后n步的平均,能使得模型更加的鲁棒。

PyTorch代码实现

下面是一个简单的指数移动平均(EMA)的PyTorch实现:

import torchclass EMA():def __init__(self, alpha):self.alpha = alpha    # 初始化平滑因子alphaself.average = None   # 初始化平均值为空self.count = 0        # 初始化计数器为0def update(self, x):if self.average is None:  # 如果平均值为空,则将其初始化为与x相同大小的全零张量self.average = torch.zeros_like(x)self.average = self.alpha * x + (1 - self.alpha) * self.average  # 更新平均值self.count += 1   # 更新计数器def get(self):return self.average / (1 - self.alpha ** self.count)   # 根据计数器和平滑因子计算EMA值,并返回平均值除以衰减系数的结果

在这个类中,我们定义了三个方法,分别是__init__、update和get。

  • __init__方法用于初始化平滑因子alpha、平均值average和计数器count
  • update方法用于更新EMA值
  • get方法用于获取最终的EMA值。

使用这个类时,我们可以先实例化一个EMA对象,然后在每个时间步中调用update方法来更新EMA值,最后调用get方法来获取最终的EMA值。
例如:

ema = EMA(alpha=0.5)
for value in data:ema.update(torch.tensor(value))
smoothed_data = ema.get()

在这个例子中,我们使用alpha=0.5来初始化EMA对象,然后遍历数据集data中的每个数据点,调用update方法更新EMA值。最后我们调用get方法来获取平滑后的数据。

yolov5中模型的EMA实现

如下:

class ModelEMA:""" Updated Exponential Moving Average (EMA) from https://github.com/rwightman/pytorch-image-modelsKeeps a moving average of everything in the model state_dict (parameters and buffers)For EMA details see https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage"""def __init__(self, model, decay=0.9999, tau=2000, updates=0):# Create EMAself.ema = deepcopy(de_parallel(model)).eval()  # FP32 EMAself.updates = updates  # number of EMA updatesself.decay = lambda x: decay * (1 - math.exp(-x / tau))  # decay exponential ramp (to help early epochs)for p in self.ema.parameters():p.requires_grad_(False)def update(self, model):# Update EMA parametersself.updates += 1d = self.decay(self.updates)msd = de_parallel(model).state_dict()  # model state_dictfor k, v in self.ema.state_dict().items():if v.dtype.is_floating_point:  # true for FP16 and FP32v *= dv += (1 - d) * msd[k].detach()# assert v.dtype == msd[k].dtype == torch.float32, f'{k}: EMA {v.dtype} and model {msd[k].dtype} must be FP32'def update_attr(self, model, include=(), exclude=('process_group', 'reducer')):# Update EMA attributescopy_attr(self.ema, model, include, exclude)

参考

https://zhuanlan.zhihu.com/p/68748778


如果有用,请点个三连呗 点赞、关注、收藏
你的鼓励是我最大的动力

http://www.zhongyajixie.com/news/16029.html

相关文章:

  • 上海闵行网站制作公司东莞关键词自动排名
  • 做sorry动图的网站淘宝指数查询工具
  • 广州营销型网站建设搜索引擎营销案例
  • 深圳办公室装修招标优化网站排名公司
  • 做网站怎么不被找到网络营销的特征
  • 商城网站开发报价网络服务器的功能
  • 网站怎么加内容吗淘宝关键词挖掘工具
  • 互联网招商项目什么是seo如何进行seo
  • 英文网站建设方案模板高校企业推广方案
  • 做网站的越来越少了宁波seo外包快速推广
  • 济宁企业做网站东莞seoseo关键词排名优化
  • 兰州注册公司代办机构哪家好china东莞seo
  • 做静态网站用什么软件西安霸屏推广
  • 中外政府网站建设比较哪个公司网站设计好
  • 做nba直播网站好推广引流平台app大全
  • 做网站安全认证刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • wordpress网站建设教程视频百度推广费用
  • 网站备案方法nba交易最新消息
  • 做哪类视频网站需要视频牌照海外广告投放渠道
  • 即买即送的网站有哪些交易平台官网
  • 网站做淘宝客需要什么网站建设是干嘛的
  • 门户网站建设文案传统营销方式有哪些
  • 做网站要到公安局去备案么百度浏览器下载官方免费
  • 手机体验网站网络推广发展
  • 哪家做的网站有利于百度推广百度统计app下载
  • 住房建设部官方网站办事大厅优化网站搜索
  • 网站建设推广招代理加盟苏州新闻今天最新消息新闻事件
  • wordpress 站点换域名百度推广的方式有哪些
  • 基于iview的网站开发模板优秀网站设计案例
  • 做vi 设计国外网站明星百度指数排行