最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TensorFlow的權(quán)值更新方法

 更新時間:2018年06月14日 09:37:04   作者:朂嘼  
今天小編就為大家分享一篇TensorFlow的權(quán)值更新方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一. MovingAverage權(quán)值滑動平均更新

1.1 示例代碼:

def create_target_q_network(self,state_dim,action_dim,net):
  state_input = tf.placeholder("float",[None,state_dim])
  action_input = tf.placeholder("float",[None,action_dim])

  ema = tf.train.ExponentialMovingAverage(decay=1-TAU)
  target_update = ema.apply(net)
  target_net = [ema.average(x) for x in net]

  layer1 = tf.nn.relu(tf.matmul(state_input,target_net[0]) + target_net[1])
  layer2 = tf.nn.relu(tf.matmul(layer1,target_net[2]) + tf.matmul(action_input,target_net[3]) + target_net[4])
  q_value_output = tf.identity(tf.matmul(layer2,target_net[5]) + target_net[6])

  return state_input,action_input,q_value_output,target_update

def update_target(self):
  self.sess.run(self.target_update)
  

其中,TAU=0.001,net是原始網(wǎng)絡(luò)(該示例代碼來自DDPG算法,經(jīng)過滑動更新后的target_net是目標網(wǎng)絡(luò) )

第一句 tf.train.ExponentialMovingAverage,創(chuàng)建一個權(quán)值滑動平均的實例;

第二句 apply創(chuàng)建所訓練模型參數(shù)的一個復(fù)制品(shadow_variable),并對這個復(fù)制品增加一個保留權(quán)值滑動平均的op,函數(shù)average()或average_name()可以用來獲取最終這個復(fù)制品(平滑后)的值的。

更新公式為:

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

在上述代碼段中,target_net是shadow_variable,net是variable

1.2 tf.train.ExponentialMovingAverage.apply(var_list=None)

var_list必須是Variable或Tensor形式的列表。這個方法對var_list中所有元素創(chuàng)建一個復(fù)制,當其是Variable類型時,shadow_variable被初始化為variable的初值,當其是Tensor類型時,初始化為0,無偏。

函數(shù)返回一個進行權(quán)值平滑的op,因此更新目標網(wǎng)絡(luò)時單獨run這個函數(shù)就行。

1.3 tf.train.ExponentialMovingAverage.average(var)

用于獲取var的滑動平均結(jié)果。

二. tf.train.Optimizer更新網(wǎng)絡(luò)權(quán)值

2.1 tf.train.Optimizer

tf.train.Optimizer允許網(wǎng)絡(luò)通過minimize()損失函數(shù)自動進行權(quán)值更新,此時tf.train.Optimizer.minimize()做了兩件事:計算梯度,并把梯度自動更新到權(quán)值上。

此外,tensorflow也允許用戶自己計算梯度,并做處理后應(yīng)用給權(quán)值進行更新,此時分為以下三個步驟:

1.利用tf.train.Optimizer.compute_gradients計算梯度

2.對梯度進行自定義處理

3.利用tf.train.Optimizer.apply_gradients更新權(quán)值

tf.train.Optimizer.compute_gradients(loss, var_list=None, gate_gradients=1, aggregation_method=None, colocate_gradients_with_ops=False, grad_loss=None) 

返回一個(梯度,權(quán)值)的列表對。

tf.train.Optimizer.apply_gradients(grads_and_vars, global_step=None, name=None)

返回一個更新權(quán)值的op,因此可以用它的返回值ret進行sess.run(ret)

2.2 其它

此外,tensorflow還提供了其它計算梯度的方法:

• tf.gradients(ys, xs, grad_ys=None, name='gradients', colocate_gradients_with_ops=False, gate_gradients=False, aggregation_method=None)

該函數(shù)計算ys在xs方向上的梯度,需要注意與train.compute_gradients所不同的地方是,該函數(shù)返回一組dydx dydx的列表,而不是梯度-權(quán)值對。

其中,gate_gradients是在ys方向上的初始梯度,個人理解可以看做是偏微分鏈式求導中所需要的。

• tf.stop_gradient(input, name=None)

該函數(shù)告知整個graph圖中,對input不進行梯度計算,將其偽裝成一個constant常量。比如,可以用在類似于DQN算法中的目標函數(shù):

cost=|r+Q next −Q current | cost=|r+Qnext−Qcurrent|

可以事先聲明

y=tf.stop_gradient(r+Q next r+Qnext)

以上這篇TensorFlow的權(quán)值更新方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • videocapture庫制作python視頻高速傳輸程序

    videocapture庫制作python視頻高速傳輸程序

    python視頻高速傳輸程序,大家參考使用吧
    2013-12-12
  • Django發(fā)送html郵件的方法

    Django發(fā)送html郵件的方法

    這篇文章主要介紹了Django發(fā)送html郵件的方法,涉及Django框架操作郵件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Pytorch數(shù)據(jù)拼接與拆分操作實現(xiàn)圖解

    Pytorch數(shù)據(jù)拼接與拆分操作實現(xiàn)圖解

    這篇文章主要介紹了Pytorch數(shù)據(jù)拼接與拆分操作實現(xiàn)圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 基于python實現(xiàn)cdn日志文件導入mysql進行分析

    基于python實現(xiàn)cdn日志文件導入mysql進行分析

    這篇文章主要介紹了基于python實現(xiàn)cdn日志文件導入mysql進行分析,本文以阿里云CDN日志作為輔助查詢數(shù)據(jù)展開主題內(nèi)容,其它云平臺大同小異,需要的小伙伴可以參考一下
    2022-05-05
  • Python實現(xiàn)二分查找與bisect模塊詳解

    Python實現(xiàn)二分查找與bisect模塊詳解

    二分查找又叫折半查找,二分查找應(yīng)該屬于減治技術(shù)的成功應(yīng)用。python標準庫中還有一個灰常給力的模塊,那就是bisect。這個庫接受有序的序列,內(nèi)部實現(xiàn)就是二分。下面這篇文章就詳細介紹了Python如何實現(xiàn)二分查找與bisect模塊,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 基于Python實現(xiàn)身份證信息識別功能

    基于Python實現(xiàn)身份證信息識別功能

    身份證是用于證明個人身份和身份信息的官方證件,在現(xiàn)代社會中,身份證被廣泛應(yīng)用于各種場景,如就業(yè)、教育、醫(yī)療、金融等,它包含了個人的基本信息,本文給大家介紹了如何基于Python實現(xiàn)身份證信息識別功能,感興趣的朋友可以參考下
    2024-01-01
  • python使用yield壓平嵌套字典的超簡單方法

    python使用yield壓平嵌套字典的超簡單方法

    這篇文章主要給大家介紹了關(guān)于python使用yield壓平嵌套字典的超簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • python繪制堆疊條形圖介紹

    python繪制堆疊條形圖介紹

    大家好,本篇文章主要講的是python繪制堆疊條形圖介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python學習之名字,作用域,名字空間

    Python學習之名字,作用域,名字空間

    這篇文章主要介紹了Python學習之名字,作用域,名字空間,文章圍繞主題展開詳細內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考以一下
    2022-05-05
  • 使用IPython或Spyder將省略號表示的內(nèi)容完整輸出

    使用IPython或Spyder將省略號表示的內(nèi)容完整輸出

    這篇文章主要介紹了使用IPython或Spyder將省略號表示的內(nèi)容完整輸出,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論

佳木斯市| 兴隆县| 正宁县| 闸北区| 寻甸| 元谋县| 确山县| 萨嘎县| 宁德市| 保定市| 襄汾县| 大荔县| 北川| 潢川县| 吴桥县| 迁安市| 怀集县| 巫山县| 松原市| 靖边县| 清水河县| 平阳县| 广安市| 宣武区| 桦南县| 金门县| 大庆市| 同心县| 台安县| 即墨市| 昌江| 嫩江县| 五华县| 金平| 建阳市| 平邑县| 信丰县| 竹溪县| 崇信县| 威远县| 开远市|