国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

TensorFlow 滑動平均的示例代碼

2020-02-15 21:54:26
字體:
來源:轉載
供稿:網友

滑動平均會為目標變量維護一個影子變量,影子變量不影響原變量的更新維護,但是在測試或者實際預測過程中(非訓練時),使用影子變量代替原變量。

1、滑動平均求解對象初始化

ema = tf.train.ExponentialMovingAverage(decay,num_updates) 

參數decay

`shadow_variable = decay * shadow_variable + (1 - decay) * variable`

參數num_updates

`min(decay, (1 + num_updates) / (10 + num_updates))`

2、添加/更新變量

添加目標變量,為之維護影子變量

注意維護不是自動的,需要每輪訓練中運行此句,所以一般都會使用tf.control_dependencies使之和train_op綁定,以至于每次train_op都會更新影子變量

ema.apply([var0, var1]) 

3、獲取影子變量值

這一步不需要定義圖中,從影子變量集合中提取目標值

sess.run(ema.average([var0, var1])) 

4、保存&載入影子變量

我們知道,在TensorFlow中,變量的滑動平均值都是由影子變量所維護的,如果你想要獲取變量的滑動平均值需要獲取的是影子變量而不是變量本身。

保存影子變量

建立tf.train.ExponentialMovingAverage對象后,Saver正常保存就會存入影子變量,命名規則是"v/ExponentialMovingAverage"對應變量”v“

import tensorflow as tf if __name__ == "__main__":   v = tf.Variable(0.,name="v")   #設置滑動平均模型的系數   ema = tf.train.ExponentialMovingAverage(0.99)   #設置變量v使用滑動平均模型,tf.all_variables()設置所有變量   op = ema.apply([v])   #獲取變量v的名字   print(v.name)   #v:0   #創建一個保存模型的對象   save = tf.train.Saver()   sess = tf.Session()   #初始化所有變量   init = tf.initialize_all_variables()   sess.run(init)   #給變量v重新賦值   sess.run(tf.assign(v,10))   #應用平均滑動設置   sess.run(op)   #保存模型文件   save.save(sess,"./model.ckpt")   #輸出變量v之前的值和使用滑動平均模型之后的值   print(sess.run([v,ema.average(v)]))   #[10.0, 0.099999905]  

載入影子變量并映射到變量

利用了Saver載入模型的變量名映射功能,實際上對所有的變量都可以如此操作『TensorFlow』模型載入方法匯總

v = tf.Variable(1.,name="v") #定義模型對象 saver = tf.train.Saver({"v/ExponentialMovingAverage":v}) sess = tf.Session() saver.restore(sess,"./model.ckpt") print(sess.run(v)) #0.0999999  

這里特別需要注意的一個地方就是,在使用tf.train.Saver函數中,所傳遞的模型參數是{"v/ExponentialMovingAverage":v}而不是{"v":v},如果你使用的是后面的參數,那么你得到的結果將是10而不是0.09,那是因為后者獲取的是變量本身而不是影子變量。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁阳县| 涡阳县| 兴业县| 清河县| 德化县| 耒阳市| 普定县| 周至县| 隆安县| 错那县| 荃湾区| 邳州市| 偏关县| 柳江县| 新丰县| 道孚县| 丰台区| 北京市| 芜湖市| 天峨县| 云南省| 定安县| 四平市| 自贡市| 临漳县| 湖州市| 称多县| 宜春市| 息烽县| 莒南县| 邵阳县| 邛崃市| 鹤峰县| 布拖县| 泰顺县| 巴青县| 灵丘县| 桑植县| 南岸区| 灵台县| 左权县|