由於python內部的變數其實都是reference,而tensorflow實現的時候也沒有意義去判斷輸出是否是同一變數名,從而判定是否要新建乙個tensor用於輸出。tensorflow為了滿足所有需求,定義了兩個不同的函式:tf.add和tf.assign_add。從名字即可看出區別,累加應該使用tf.assign_add。同理的還有tf.assign_sub和tf.assign。
具體地,筆者需要乙個iteration counter類似的變數,即每次使用乙個batch更新引數之後都使得該變數加一,進而控制learning rate等引數來調節學習過程。
最初的實現如下:
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,雖然變數名相同,但是實質指向的變數以及空間都不同,每次輸出的都是1。
更改後的**則是如下:
a = tf.va程式設計客棧riable(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累加的實現案例
本文位址: /jiaoben/python/299628.html
矩陣累加(指標實現)
描述 程式設計計算k個整型矩陣的累加,並輸出結果。若給定的矩陣不能相加,則直接終止程式並輸出 matrix can t add 若計算機記憶體不足以計算給定矩陣的累加,則直接終止程式並輸出 not enough memory 輸入 第1行輸入1個整數k,表示待累加矩陣的個數。第2行輸入2個整數,表示...
tensorflow 異或門的實現
一段小程式 待理解 import tensorflow as tf import numpy as np 輸入訓練資料,這裡是python的list,也可以定義為numpy的ndarray x data 1.0.0.1.0.0.1.1.定義佔位符,佔位符在執行圖的時候必須feed資料 x tf.pl...
shell程式設計例項 實現累加
until的基礎結構是 until 條件 do logic done 我實現的 如下所示 sum 0 n 3 in 0 until n 0 do read in sum expr sum in n expr n 1 done echo sum 使用for迴圈,for迴圈的基礎結構是 for 條件 d...