TensorFlow优化之滑动平均模型
来源:互联网 发布:logo编程软件 编辑:程序博客网 时间:2024/05/20 07:19
一、滑动平均模型
滑动平均模型,它可以使得模型在测试数据上更健壮,在使用随机梯度下降算法训练神经网络时,通过滑动平均模型可以在很多的应用中在一定程度上提高最终模型在测试数据上的表现。其实滑动平均模型,主要是通过控制衰减率来控制参数更新前后之间的差距,从而达到减缓参数的变化值(如,参数更新前是5,更新后的值是4,通过滑动平均模型之后,参数的值会在4到5之间),如果参数更新前后的值保持不变,通过滑动平均模型之后,参数的值仍然保持不变。
二、ExponentialMovingAverage函数
TensorFlow中的ExponentialMovingAverage函数实现了滑动平均模型,下面对该函数进行简单的介绍。
tf.train.ExponentialMovingAverage(decay, num_updates=None, zero_debias=False,name="ExponentialMovingAverage")
参数:
decay:实数类型,衰减率。
num_updates:可选,设置这个参数之后,将会通过min(decay, (1 + num_updates) / (10 + num_updates))函数,从中选择最小值做为衰减率。
返回值:ExponentialMovingAverage对象,通过对象调用apply方法可以通过滑动平均模型来更新参数。
计算公式:shadow_variable = decay * shadow_variable + (1-decay) * variable
计算公式中的shadow_variable为影子变量,也就是变量在更新之前的值,variable是变量现在的值,可能这样说不是很明白,下面用TensorFlow的程序来实现滑动平均模型。
三、TensorFlow实现滑动平均模型
import tensorflow as tfif __name__ == "__main__": #定义一个变量用于计算滑动平均,变量的初始值为0,变量的类型必须是实数 v1 = tf.Variable(5,dtype=tf.float32) #定义一个迭代轮数的变量,动态控制衰减率,并设置为不可训练 step = tf.Variable(10,trainable=False) #定义一个滑动平均类,初始化衰减率为0.99和衰减率的变量step ema = tf.train.ExponentialMovingAverage(0.99,step) #定义每次滑动平均所更新的列表 maintain_average_op = ema.apply([v1]) #初始化上下文会话 with tf.Session() as sess: #初始化所有变量 init = tf.initialize_all_variables() sess.run(init) #更新v1的滑动平均值 ''' 衰减率为min(0.99,(1+step)/(10+step)=0.1}=0.1 ''' sess.run(maintain_average_op) #[5.0, 5.0] print(sess.run([v1,ema.average(v1)])) sess.run(tf.assign(v1,4)) sess.run(maintain_average_op) #[4.0, 4.5500002],5*(11/20) + 4*(9/20) print(sess.run([v1, ema.average(v1)]))
- TensorFlow优化之滑动平均模型
- TensorFlow滑动平均模型
- tensorflow 滑动平均模型
- tensorflow--滑动平均模型
- tensorflow 滑动平均模型 ExponentialMovingAverage
- Tensorflow深度学习之九:滑动平均模型
- TensorFlow中滑动平均模型介绍
- Tensorflow滑动平均模型tf.train.ExponentialMovingAverage解析
- 9、Tensorflow: 移动平均法又称滑动平均法、滑动平均模型法(Moving average,MA)
- 滑动平均模型
- 时间序列之MA(滑动平均模型)
- tensorflow07 《TensorFlow实战Google深度学习框架》笔记-04-05滑动平均模型
- tensorflow 下的滑动平均模型 —— tf.train.ExponentialMovingAverage
- Tensorflow中提供tf.train.ExponentialMovingAverage函数实现(滑动平均模型)
- 78、tensorflow滑动平均模型,用来更新迭代的衰减系数
- TensorFlow优化模型之正则化
- 【TensorFlow】MNIST(使用LeNet5+滑动平均+正则化+指数衰减法+激活函数+模型持久化)
- 深层神经网络——滑动平均模型
- ABP官方文档(八)【会话管理】
- 语义标签和w3c标准
- 机器学习实战笔记(4) 形象线性回归的理解和实现
- axel 命令-网络应用之一
- 那些年错过的蓝桥杯(四)
- TensorFlow优化之滑动平均模型
- ABP官方文档(九)【缓存管理】
- SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
- 一个exe程序用cmd运行可以,但是用sysem()函数调用执行却出错的问题的解决方案
- ABP官方文档(十)【日志管理】
- ABP官方文档(十一)【设置管理】
- Array 对象方法
- 转载!Tensorflow函数——tf.set_random_seed(seed)
- ABP官方文档(十二)【时间与时区设置】