我對自己在tensorflow隨機變量的一個問題。假設我需要一個隨機變量在我的損失函數中。 在張量流程教程中,我發現用於初始化變量的隨機函數,如第二次通過訓練過程修改的權重。 在我的情況下,我需要一個隨機向量的浮點數(假設有128個值),它遵循特定的分佈(統一或高斯),但可以更改每個損失計算。 定義在我的損失函數這個變量,是我需要做簡單的事情,因爲在每一個時期我得到新的值(即反正按照選定的分配),或者我得到的總是在所有迭代相同的價值觀?Tensorflow和隨機變量
感謝,
丹尼爾
我對自己在tensorflow隨機變量的一個問題。假設我需要一個隨機變量在我的損失函數中。 在張量流程教程中,我發現用於初始化變量的隨機函數,如第二次通過訓練過程修改的權重。 在我的情況下,我需要一個隨機向量的浮點數(假設有128個值),它遵循特定的分佈(統一或高斯),但可以更改每個損失計算。 定義在我的損失函數這個變量,是我需要做簡單的事情,因爲在每一個時期我得到新的值(即反正按照選定的分配),或者我得到的總是在所有迭代相同的價值觀?Tensorflow和隨機變量
感謝,
丹尼爾
在tensorflow隨機節點每次調用時總是採取不同的價值,你可以通過調用幾次
import tensorflow as tf
x = tf.random_uniform(shape=())
sess = tf.Session()
sess.run(x)
# 0.79877698
sess.run(x)
# 0.76016617
這不是驗證因爲您可以從上面的代碼中檢查,其運行時無需調用變量初始化。
如果分配隨機生成的Variable
然後,直到更新此變量此值將保持固定的值。
如果相反,放在數字的損失函數直接在「一代」(tf.random_*
),那麼他們將在每次調用不同。
剛剛嘗試了這一點:
import tensorflow as tf
# generator
x = tf.random_uniform((3,1), minval=0, maxval=10)
# variable
a = tf.get_variable("a", shape=(3,1), dtype=tf.float32)
# assignment
b = tf.assign(a, x)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(5):
# 5 different values
print(sess.run(x))
# assign the value
sess.run(b)
for i in range(5):
# 5 equal values
print(sess.run(a))
您可能還需要檢查tf.set_random_seed),他們隨機討論如何在圖形級別和級別更細緻的控制文檔(:https://開頭WWW .tensorflow.org/api_docs /蟒/ TF/set_random_seed –