tensorflow笔记之滑动平均模型
tensorflow使用tf.train.ExponentialMovingAverage实现滑动平均模型,在使用随机梯度下降方法训练神经网络时候,使用这个模型可以增强模型的鲁棒性(robust),可以在一定程度上提高模型在测试数据集上的表现。
滑动平均模型为每个变量维护一个影子变量,其初始值是变量的初始值,每次变量更新时,影子变量的值会更新为:
shadow_variable = shadow_variable * decay + (1-decay) * variable
其中shadow_variable为影子变量,variable为初始变量,decay为衰减率。
decay决定了模型更新的速度,decay越大,模型跟新越慢,越稳定。实际工作中,decay一般设置为非常接近1的数(0.99或0.999之类),为了在训练初期加快更新速度,可以提供num_steps参数,提供这个参数后,decay的取值变为:
min(decay, (1+num_step)/(10+num_step))
num_step表示实际的训练步数。
如果提供了num_steps那么在num_step还比较小的时候,min()会取到右边比较小的部分,也就是有一个比较小的decay,这个时候模型更新会很快,当step增大时,模型更新速度会逐渐降低。
在应用滑动平均模型后,并不会改变变量的值,但是会维护一个影子变量来记录其滑动平均值,获取变量的滑动平均值实际上就是获取变量的影子变量的值,影子变量的值是当前值和更新后的值之间的一个值,相当与限制参数的更新速度,让更新比较缓慢,比较稳妥,但是在训练初期会导致更新比较慢,所以才有提供num_steps参数使之在训练初期更新比较快。
tensorflow笔记之滑动平均模型的更多相关文章
- Tensorflow中的滑动平均模型
原文链接 在Tensorflow的教程里面,使用梯度下降算法训练神经网络时,都会提到一个使模型更加健壮的策略,即滑动平均模型. 基本思想 在使用梯度下降算法训练模型时,每次更新权重时,为每个权重维护一 ...
- Tensorflow滑动平均模型tf.train.ExponentialMovingAverage解析
觉得有用的话,欢迎一起讨论相互学习~Follow Me 移动平均法相关知识 移动平均法又称滑动平均法.滑动平均模型法(Moving average,MA) 什么是移动平均法 移动平均法是用一组最近的实 ...
- tensorflow随机梯度下降算法使用滑动平均模型
在采用随机梯度下降算法训练神经网络时,使用滑动平均模型可以提高最终模型在测试集数据上的表现.在Tensflow中提供了tf.train.ExponentialMovingAverage来实现滑动平均模 ...
- tensorflow入门笔记(二) 滑动平均模型
tensorflow提供的tf.train.ExponentialMovingAverage 类利用指数衰减维持变量的滑动平均. 当训练模型的时候,保持训练参数的滑动平均是非常有益的.评估时使用取平均 ...
- 78、tensorflow滑动平均模型,用来更新迭代的衰减系数
''' Created on 2017年4月21日 @author: weizhen ''' #4.滑动平均模型 import tensorflow as tf #定义一个变量用于计算滑动平均,这个变 ...
- 吴裕雄 PYTHON 神经网络——TENSORFLOW 滑动平均模型
import tensorflow as tf v1 = tf.Variable(0, dtype=tf.float32) step = tf.Variable(0, trainable=False) ...
- 『TensorFlow』滑动平均
滑动平均会为目标变量维护一个影子变量,影子变量不影响原变量的更新维护,但是在测试或者实际预测过程中(非训练时),使用影子变量代替原变量. 1.滑动平均求解对象初始化 ema = tf.train.Ex ...
- 理解滑动平均(exponential moving average)
1. 用滑动平均估计局部均值 滑动平均(exponential moving average),或者叫做指数加权平均(exponentially weighted moving average),可以 ...
- TensorFlow笔记之常见七个参数
对TensorFlow深度学习中常见参数的总结分析 神经网络中常见的参数有:初始学习率.学习率衰减率.隐藏层节点数量.迭代轮数.正则化系数.滑动平均衰减率.批训练数量七个参数. 对这七个参数,大部分情 ...
随机推荐
- Spark的启动进程详解
Master和Worker是执行任务之前存在的进程 (类似于公司) Driver和Excutor是任务执行之后存在的进程(类似于公司接到项目后才成立的项目小组) 启动步骤: 启动Master资源管理进 ...
- mac上安装nginx
终端执行: brew install nginx nginx 默认安装在 /usr/local/Cellar/nginx/1.12.2 conf 文件默认安装在 /usr/local/etc/ngin ...
- 【python】class之子类
父类: class AddrBookEntry(object): "address book entry class" def __init__(self, nm, ph): se ...
- 日期获取 net
项目中用到了,所以就写全了,供参考使用. DateTime dt=DateTime.Now;int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek); ...
- debian的pdf阅读器
www.foxitsoftware.cn下载deb包 或者 sudo apt-get install evince
- maven学习(3)-Maven 核心技术
第一节:Maven 仓库概念 Maven 远程仓库配置文件: $M2_HOME/lib/maven-model-builder-3.3.3.jar 文件:org\apache\maven\model\ ...
- jquery的load()事件和ajax中load()方法的区别
load事件 当图像加载时,改变 div 元素的文本: $("img").load(function(){ $("div").text("Image ...
- 操作系统-百科:Kylin (中国自主知识产权操作系统)
ylbtech-操作系统-百科:Kylin (中国自主知识产权操作系统) Kylin操作系统是国家高技术研究发展计划(863计划)的重大成果之一,是以国防科技大学为主导,与中软.联想等单位联合设计和开 ...
- Bootstrap:百科
ylbtech-Bootstrap:百科 Bootstrap (Web框架) Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.Java ...
- 亚马逊云VPS AWS更改LINUX为ROOT权限密码登陆
LINUX VPS没有ROOT权限是很难受的事,并且密码登陆也方便一些.首先用AWS证书验证的账户登录,1.修改ROOT密码sudo passwd root2.sudo chmod 777 /etc/ ...