Tensorflow累加的實現(xiàn)案例
由于python內(nèi)部的變量其實都是reference,而Tensorflow實現(xiàn)的時候也沒有意義去判斷輸出是否是同一變量名,從而判定是否要新建一個Tensor用于輸出。Tensorflow為了滿足所有需求,定義了兩個不同的函數(shù):tf.add和tf.assign_add。從名字即可看出區(qū)別,累加應(yīng)該使用tf.assign_add。同理的還有tf.assign_sub和tf.assign。
具體地,筆者需要一個iteration counter類似的變量,即每次使用一個batch更新參數(shù)之后都使得該變量加一,進(jìn)而控制learning rate等參數(shù)來調(diào)節(jié)學(xué)習(xí)過程。
最初的實現(xiàn)如下:
a = tf.Variable(tf.zeros(1)) a = tf.add(a,tf.ones(1)) sess = tf.Session() sess.run(tf.global_variable_initializer()) for i in range(1000): print(sess.run(a))
那因為第一行代碼輸出的a和第二行代碼輸出的a,雖然變量名相同,但是實質(zhì)指向的變量以及空間都不同,每次輸出的都是1。
更改后的代碼則是如下:
a = tf.Variable(tf.zeros(1)) a = tf.assign_add(a,tf.ones(1)) sess = tf.Session() sess.run(tf.global_variable_initializer()) for i in range(1000): print(sess.run(a))
以上這篇Tensorflow累加的實現(xiàn)案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中的pathlib.Path為什么不繼承str詳解
這篇文章主要給大家介紹了關(guān)于Python中pathlib.Path為什么不繼承str的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)對不原生支持比較操作的對象排序算法示例
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)對不原生支持比較操作的對象排序算法,結(jié)合實例形式分析了Python針對類實例進(jìn)行排序相關(guān)操作技巧,需要的朋友可以參考下2018-03-03在ironpython中利用裝飾器執(zhí)行SQL操作的例子
這篇文章主要介紹了在ironpython中利用裝飾器執(zhí)行SQL操作的例子,文章中以操作MySQL為例,需要的朋友可以參考下2015-05-05python基礎(chǔ)教程之基本內(nèi)置數(shù)據(jù)類型介紹
在Python程序中,每個數(shù)據(jù)都是對像,每個對像都有自己的一個類型。不同類型有不同的操作方法,使用內(nèi)置數(shù)據(jù)類型獨有的操作方法,可以更快的完成很多工作2014-02-02