tf的ExponentialMovingAverage滑动平均实现

# -*- coding: utf-8 -*-
"""
Created on Fri Jan 11 22:34:48 2019

@author: ZZL
"""
import tensorflow as tf
w = tf.Variable([1.,1.])
ema = tf.train.ExponentialMovingAverage(0.9)
update = tf.assign_add(w, [2.,2.])

with tf.control_dependencies([update]):
    #返回一个op,这个op用来更新moving_average,i.e. shadow value
    ema_op = ema.apply([w])#这句和下面那句不能调换顺序
# 以 w 当作 key, 获取 shadow value 的值
ema_val = ema.average(w)  #参数可以是list,有点蛋疼

with tf.Session() as sess:
    tf.global_variables_initializer().run()
    for i in range(3):
        sess.run(ema_op)
        print(sess.run(ema_val))
    print(sess.run(tf.get_collection(tf.GraphKeys.UPDATE_OPS)))
    print(sess.run(tf.moving_average_variables()))  # 返回的是 滑动平均变量- w的更新后的值 [array([7., 7.], dtype=float32)]
    print(sess.run(w))
# 创建一个时间序列 1 2 3 4
#输出:
#1.2      =0.9*1 + 0.1*(1+2)
#1.58     =0.9*1.2+0.1*(1+2+2) = 1.08+0.1*5= 1.58
#2.122    =

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值