在TensorFlow中经常会提到滑动平均模型,目的是为了控制变量更新的速度,防止变量的突然变化对变量的整体影响。
TensorFlow下的 tf.train.ExponentialMovingAverage 需要提供一个衰减率decay。该衰减率用于控制模型更新的速度。该衰减率用于控制模型更新的速度,ExponentialMovingAverage 对每一个待更新的变量(variable)都会维护一个影子变量(shadow variable)。影子变量的初始值就是这个变量的初始值,

shadow_variable=decay×shadow_variable+(1−decay)×variable```

其中

decay=min{decay,1+num_updates/10+num_updates}

经常看到这段代码:

import tensorflow as tfv1 = tf.Variable(0, dtype=tf.float32)//初始化v1变量
step = tf.Variable(0, trainable=False) //初始化step为0
ema = tf.train.ExponentialMovingAverage(0.99, step) //定义平滑类,设置参数以及step
maintain_averages_op = ema.apply([v1]) //定义更新变量平均操作with tf.Session() as sess:# 初始化init_op = tf.global_variables_initializer()sess.run(init_op)print sess.run([v1, ema.average(v1)])# 更新变量v1的取值,衰减率为min{0.99, 1+step/10+step=0.1}=0.1,所以v1的滑动平均被更新为0.1*0+0.9*5=4.5sess.run(tf.assign(v1, 5))sess.run(maintain_averages_op)print sess.run([v1, ema.average(v1)]) # 更新step和v1的取值,衰减率为0.99,所以v1的滑动平均被更新为0.99*4.5+0.01*10=4.555sess.run(tf.assign(step, 10000))  sess.run(tf.assign(v1, 10))sess.run(maintain_averages_op)print sess.run([v1, ema.average(v1)])       # 更新一次v1的滑动平均值sess.run(maintain_averages_op)print sess.run([v1, ema.average(v1)])

输出结果

[0.0, 0.0]
[5.0, 4.5]
[10.0, 4.5549998]
[10.0, 4.6094499]

TensorFlow滑动平均模型作用相关推荐

  1. tensorflow 滑动平均模型 ExponentialMovingAverage

    ____tz_zs学习笔记 滑动平均模型对于采用GradientDescent或Momentum训练的神经网络的表现都有一定程度上的提升. 原理:在训练神经网络时,不断保持和更新每个参数的滑动平均值, ...

  2. tensorflow中滑动平均模型的说明

    作用:使用滑动平均模型可以使模型在测试数据上更健壮.即如果在测试过程中,出现了一些噪声数据,滑动平均模型可以很好地应对这些数据,使这些噪声数据不会对模型的变量造成太大的影响. 1.滑动平均模型原理: ...

  3. TensorFlow模型保存和提取方法(含滑动平均模型)

    一.TensorFlow模型保存和提取方法 1. TensorFlow通过tf.train.Saver类实现神经网络模型的保存和提取.tf.train.Saver对象saver的save方法将Tens ...

  4. 深入解析TensorFlow中滑动平均模型与代码实现

    因为本人是自学深度学习的,有什么说的不对的地方望大神指出 指数加权平均算法的原理 TensorFlow中的滑动平均模型使用的是滑动平均(Moving Average)算法,又称为指数加权移动平均算法( ...

  5. 滑动平均模型(MA)—tensorflow

    在采用梯度下降的方式训练神经网络的时候,我们使用滑动平均模型会在一定的程度上提高最终模型在测试集上的表现. 在TensorFlow中提供了tf.train.ExponentialMovingAvera ...

  6. 运用自回归滑动平均模型、灰色预测模型、BP神经网络三种模型分别预测全球平均气温,并进行预测精度对比(附代码、数据)

    大家好,我是带我去滑雪,每天教你一个小技巧!全球变暖是近十年来,人们关注度最高的话题.2022年夏天,蔓延全球40℃以上的极端天气不断刷新人们对于高温的认知,人们再也不会像从前那样认为全球变暖离我们遥 ...

  7. 受控自回归滑动平均模型(ARMAX)的系统辨识

    文章目录 系统模型 似然函数 辨识过程 关于参数的梯度与海森矩阵 梯度 海森矩阵 受控自回归滑动平均模型 (Controled Auto Regression and Moving Average m ...

  8. 基于自回归整合滑动平均模型(ARIMA)的时间序列预测

    基于自回归整合滑动平均模型(ARIMA)的时间序列预测 ID:8629644191951129誩宝

  9. 深度学习中滑动平均模型的作用、计算方法及tensorflow代码示例

    滑动平均模型: 用途:用于控制变量的更新幅度,使得模型在训练初期参数更新较快,在接近最优值处参数更新较慢,幅度较小 方式:主要通过不断更新衰减率来控制变量的更新幅度 衰减率计算公式 :     dec ...

最新文章

  1. 2021年春季学期-信号与系统-第十四次作业参考答案
  2. Airtable(数据管理)
  3. LiveVideoStack 2022迎春招聘
  4. [译] SpaceAce 了解一下,一个新的前端状态管理库
  5. java嵌套类型 无法隐藏外层类型_java内部类深入详解 内部类的分类 特点 定义方式 使用...
  6. enc易能变频_ENC易能变频器故障灯亮快修收费合理
  7. 强强合体:Docker版Kali Linux发布
  8. 大众CEO迪斯承认芯片仍短缺
  9. Sharding-JDBC数据库_垂直切分_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记012
  10. 学到了!程序员大神用这招让开发效率直接提升10倍!!
  11. froala + vue + plupload替换自带上传功能
  12. KYLO的 Java 基础知识点总结(其一)
  13. CDA level 1 业务分析师 之 业务分析部分PART 5 多维数据透视分析(10%)
  14. 内网安全-常见横向移动总结
  15. 【c++】——函数的堆栈调用详细过程
  16. “StarRocks 极客营” 重磅来袭,和技术大牛一起推开数据库梦想之门!
  17. 移动互联风口频现,百度高德谁已手握地图关键钥匙
  18. 计算机主机什么硬件组成,台式电脑机箱里面有哪些硬件组成?
  19. 组合框控件Combo Box和CComboBox类
  20. 用Python求解数学规划问题

热门文章

  1. 人在国外能买阿里云服务器吗?
  2. 「解读」华为云桌面说“高清”的时候,究竟在说什么?
  3. 个人对于“初链”白皮书和黄皮书的解读
  4. Android集成友盟推送
  5. 如何检查QFN封装焊接是否正确
  6. AD10长方形通孔焊盘的画法
  7. 华为终端的野心:欲做第二个高通?
  8. linux centos 7 docker下载mysql5.7
  9. [转][osg]osg渲染引擎框架图,流程图(根据《最长一帧》整理)
  10. 拉伸流变仪VADER 1000-丹麦RHEO FILAMENT