注:本系列文章主要是复现北京大学TensorFlow笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的。何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈。
​​

√滑动平均: 记录了一段时间内模型中所有参数 w 和 b 各自的平均值。利用滑动平均值可以增强模型的泛化能力。
√滑动平均值(影子) 计算公式:
影子 = 衰减率 * 影子 +(1 - 衰减率) * 参数

√用 Tesnsorflow 函数表示为:

√ema = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY, global_step)```

其中, MOVING_AVERAGE_DECAY 表示滑动平均衰减率,一般会赋接近 1 的值, global_step 表示当前训练了多少轮。

√ema_op = ema.apply(tf.trainable_variables())

其中, ema.apply()函数实现对括号内参数求滑动平均, tf.trainable_variables()函数实现把所有待训练参数汇总为列表。

√with tf.control_dependencies([train_step, ema_op]):train_op = tf.no_op(name='train')

其中,该函数实现将滑动平均和训练过程同步运行。查看模型中参数的平均值,可以用 ema.average()函数。
例如:
在神经网络模型中,将 MOVING_AVERAGE_DECAY 设置为 0.99,参数 w1 设置为 0, w1 的滑动平均值设置为 0。
①开始时,轮数 global_step 设置为 0, 参数 w1 更新为 1,则 w1 的滑动平均值为:

w1 滑动平均值=min(0.99,1/10)*0+(1– min(0.99,1/10)*1 = 0.9

③ 当轮数 global_step 设置为 100 时,参数 w1 更新为 10, 以下代码 global_step 保持为 100,每
次执行滑动平均操作影子值更新, 则滑动平均值变为:

w1 滑动平均值=min(0.99,101/110)*0.9+(1– min(0.99,101/110)*10 = 0.826+0.818=1.644

③再次运行,参数 w1 更新为 1.644,则滑动平均值变为:

w1 滑动平均值=min(0.99,101/110)*1.644+(1– min(0.99,101/110)*10 = 2.328

④再次运行,参数 w1 更新为 2.328,则滑动平均值:

w1 滑动平均值=2.956

代码如下:



运行程序,结果如下:

从运行结果可知,最初参数 w1 和滑动平均值都是 0;参数 w1 设定为 1 后,滑动平均值变为 0.9;
当迭代轮数更新为 100 轮时,参数 w1 更新为 10 后,滑动平均值变为 1.644。随后每执行一次,参数
w1 的滑动平均值都向参数 w1 靠近。 可见,滑动平均追随参数的变化而变化

欢迎扫码关注我的微信公众号

TensorFlow北大公开课学习笔记-4.3滑动平均相关推荐

  1. TensorFlow北大公开课学习笔记-4.2学习率

    注:本系列文章主要是复现北京大学TensorFlow笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的.何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈. ...

  2. TensorFlow北大公开课学习笔记-4.1损失函数

    注:本系列文章主要是复现北京大学TensorFlow笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的.何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈. ...

  3. TensorFlow北大公开课学习笔记-8 复现vgg16并实现图片识别

    注:本系列文章主要是复现北京大学TensorFlow笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的.何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈. ...

  4. TensorFlow北大公开课学习笔记8-复现vgg16并实现图片识别

    https://www.cs.toronto.edu/~frossard/post/vgg16/ ]img_ready = re_img.reshape((1, 224, 224, 3)) Value ...

  5. 英宝通Unity4.0公开课学习笔记Vol.0

    英宝通Unity4.0公开课学习笔记 公开课地址 学习笔记目录 公开课地址 公开课地址:游戏蛮牛网. 源码素材:游戏蛮牛网. 公开课在官网上刷新不出来,只能去B站上找资源了.视频链接:哔哩哔哩. Un ...

  6. 深度学习与TensorFlow:FCN论文学习笔记

    七月 上海 | 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习  快速带你入门阅读全文> 正文共1708个字,5张图,预计阅读时间8分钟. 这篇文章陆陆续续看了快两周,其中也遇 ...

  7. MIT Artificial Intelligence —— Patrick H. Winston 麻省理工人工智能公开课学习笔记(一)

      本系列文章是博主对网易公开课中麻省理工人工智能课程的学习笔记,在此方便学习和分享. Lecture 1: Introduction and Scope   本节课程大概从这三方面讲述:   一.什 ...

  8. 【Algorithms公开课学习笔记3】 栈与队列

    Stack and Queue 栈和队列 0.前言 本文是对数据类型的学习笔记,将会从接口(interface),实现(implement), 客户(client)等三个角度分模块来组织文章. 接口: ...

  9. [MATLAB学习]:Matlab生成滑动平均滤波算法文件并移植到STM32单片机上运行——基于CubeMX

    前言 人生如逆旅,我亦是行人. 今天分享一个在 MATLAB 上生成C算法文件,并将其移植到 keil5上,运行至 STM32 单片机,一个很有用的方法. 准备工作: 已安装 MATLAB 的软件(注 ...

  10. 浅谈tensorflow的指数衰减学习率、正则化、滑动平均模型

    指数衰减学习率使训练迭代更加有效: 学习率决定了每一次迭代训练过程优化神经网络数的幅度,学习率的正确选取对于训练的效率.和效果均有一定的影响,如果我们学习率设定过大,则会可能导致参数在极值两侧跳动,这 ...

最新文章

  1. 2019 ICPC 南昌 K. Tree(树上启发式合并,平衡树 treap)
  2. drop truncate delete区别
  3. java删除有序数组中的重复元素_java去除已排序数组中的重复元素
  4. 无法打开文件“opencv_world410d.obj”
  5. Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TAB
  6. DevExpress控件安装和初次使用图解
  7. cmmi文档_实施CMMI过程改进的框架介绍
  8. 使用FlashFXP V3.8烈火汉化绿色版软件连接Linux
  9. feignclient对象找不到_领导同事争相介绍对象,相亲N次,我找不到一条结婚的理由...
  10. 【ACwing 95】费解的开关——枚举 + 搜索
  11. SVN日常提交工作时需要注意的事项
  12. 2019微型计算机年度显示器,「MC 2019年度评选获奖产品展播」华硕/ROG DIY精品斩获多个大奖...
  13. 蚂蚁课堂:lombok
  14. DTU服务器接收软件
  15. 计算机网络实训心得总结,计算机网络实训心得体会_计算机网络学习经验总结...
  16. 主板上集成显卡的计算机在进行显示工作,电脑显卡怎么看
  17. kali Linux的优点与缺点
  18. sqoop:File does not exist:
  19. 1、蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)
  20. 【转】使用matlab软件打开一幅图片并且分别提取其中的RGB分量并显示

热门文章

  1. 尚学堂马士兵hibernate讲义
  2. 无线网络信号测试软件WirelessMon 免费赠送
  3. 暴风影音 android 电视,暴风影音飞屏版电视端
  4. excel文件修复工具_TunesKit Video Repair下载_视频文件修复工具官方版下载[修复工具]...
  5. 【Unity3D入门教程】Unity3D简介、安装和程序发布
  6. 极客日报第 35 期:国外运营商拒为小米 10T Pro 启用双卡;苹果明年 9 月或发布电动汽车;谷歌被指与 Facebook 密谋垄断
  7. 主板检测卡c5_计算机主板检测卡检测显示C5是哪的問題?
  8. RPG游戏地图素材 2D像素风瓦片地图包 角色扮演独立游戏制作美术资源
  9. 从苏宁电器到卡巴斯基第34篇:番外篇——晒一晒病毒分析师的桌面(上)
  10. 苹果显示器(Apple Cinema Display)亮度调节方法