日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tensorflow随笔-滑动平均模型

發布時間:2025/3/12 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tensorflow随笔-滑动平均模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

隨機梯度下降算法訓練時,使用滑動平均模型 可以提高模型健壯性。
在Tensorflow中提供了tf.train.ExponentialMovingAverage來實現滑動平均模型。在初始化ExponentialMovingAverage時,需要提供一個衰減率。控制模型更新速度,它對每個變量會維護一個影子變量,這個影子變量的初始值 就是相應變量的初始值 ,而每次運行變量更新時,影子變量的值會更新為:

tensorflow-滑動平均模型
shadow_variable為影子變量,variable為待更新變量。
decay為模型更新的速度,越大,模型越穩定,一般為0.999。
為了使模型在訓練前期可更新得更快,ExponentialMovingAverage還提供了num_updates參數來動態設置decay的大小。
如果,在ExponentialMovingAverage初始化時,提供了num_updates參數,那么每次使用衰減率將是:

tensorflow-滑動平均模型

#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Fri Sep 28 10:00:44 2018@author: myhaspl @email:myhaspl@myhaspl.com 滑動平均模型 """ from __future__ import division import tensorflow as tf import numpy as npdef averageOp(shawv,v,decay,step):nowdecay=min(decay,(1+step)/(10+step))#step即num_updatesreturn shawv*nowdecay+(1-nowdecay)*vw=tf.Variable([0.,0.],dtype=tf.float32) step=tf.Variable(0,dtype=tf.int32,trainable=False)ema=tf.train.ExponentialMovingAverage(0.99,step) maintainAverageOp=ema.apply([w])#更新w的操作,更新的方式是滑動平均算法 init=tf.global_variables_initializer() with tf.Session() as sess:sess.run(init)v,shawv,vstep=sess.run([w,ema.average(w),step])print averageOp(shawv,v,0.99,vstep)sess.run(tf.assign(w,np.array([2.,6.])))v,shawv,vstep=sess.run([w,ema.average(w),step])print averageOp(shawv,v,0.99,vstep)sess.run(maintainAverageOp)print sess.run([w,ema.average(w)])#ema.average(w)表示獲取

滑動平均值

[0. 0.] [1.8 5.3999996] [array([2., 6.], dtype=float32), array([1.8 , 5.3999996], dtype=float32)]

總結

以上是生活随笔為你收集整理的tensorflow随笔-滑动平均模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。