tensorflow 滑动平均模型
2017-08-30 15:23
393 查看
注:
1.影子变量的功能是记录滑动平均值,滑动平均值并不会改变原始变量的值
2.decay的更新并不是递归...
import tensorflow as tf v1 = tf.Variable(0, dtype = tf.float32)#定义变量用来计算滑动平均,初始化为0,shadow_variable = 0 step = tf.Variable(0, trainable = False)#定义滑动平均的step,初始化为0 #定义滑动平均的类,初始化时给定衰减率0.99,step为0 ema = tf.train.ExponentialMovingAverage(0.99, step) maintain_average_op = ema.apply([v1]) with tf.Session() as sess: #初始化变量 init_op = tf.initialize_all_variables() sess.run(init_op) #获取初始化之后的滑动平均值 print(sess.run([v1, ema.average(v1)])) #输出[0.0, 0.0] sess.run(tf.assign(v1, 5))#更新v1的值到5 sess.run(maintain_average_op)#更新v1的滑动平均值,decay = min{0.99, (1 + 0) / (10 + 0)} = 0.1, shadow_variable = 0.1 * 0 + 0.9 * 5 = 4.5 print(sess.run([v1, ema.average(v1)])) #输出[5.0, 4.5] sess.run(tf.assign(step, 1000))#更新step为1000 sess.run(tf.assign(v1, 10))#更新v1的值为10 sess.run(maintain_average_op) # 更新v1的滑动平均值,decay = min{0.99, (1 + 1000) / (10 + 1000)} = 0.99, shadow_variable = 0.99 * 4.5 + 0.01 * 10 = 4.555 print(sess.run([v1, ema.average(v1)])) # 输出[10, 4.5549998] sess.run(maintain_average_op) # 更新v1的滑动平均值,decay = min{0.99, (1 + 1000) / (10 + 1000)} = 0.99, shadow_variable = 0.99 * 4.555 + 0.01 * 10 = 4.60945 print(sess.run([v1, ema.average(v1)])) # 输出[10, 4.6094499]
相关文章推荐
- tensorflow--滑动平均模型
- Tensorflow中提供tf.train.ExponentialMovingAverage函数实现(滑动平均模型)
- Tensorflow深度学习之九:滑动平均模型
- Tensorflow 实战google深度学习框架 07 滑动平均模型
- TensorFlow优化之滑动平均模型
- TensorFlow实战系列8--滑动平均模型
- TensorFlow中滑动平均模型介绍
- 78、tensorflow滑动平均模型,用来更新迭代的衰减系数
- 78、tensorflow滑动平均模型,用来更新迭代的衰减系数
- tensorflow 下的滑动平均模型 —— tf.train.ExponentialMovingAverage
- 滑动平均模型
- 滑动平均模型
- 神经网络的滑动平均模型
- 金融时间序列分析:7. MA滑动平均模型
- tensorflow07 《TensorFlow实战Google深度学习框架》笔记-04-05滑动平均模型
- Tensorflow 实战 google 深度学习框架 笔记(一)滑动模型
- TensorFlow 滑动平均的示例代码
- (Tensorflow之六)滑动平均模型ExponentialMovingAverage
- TensorFlow 深度学习框架(9)-- 经典卷积网络模型 : LeNet-5 模型 & Inception-v3 模型
- tensorflow模型保存