2017-05-24 138 views

回答

6

Variable基本上是在Tensor包裝跨多個呼叫保持狀態run,我覺得做更容易保存和恢復圖表一些事情。變量需要在運行之前進行初始化。您在定義變量時提供初始值,但必須調用其初始化函數才能在會話中實際分配此值,然後使用變量。一個常見的方法是使用tf.global_variables_initalizer()

例如:

import tensorflow as tf 
test_var = tf.Variable([111, 11, 1]) 
sess = tf.Session() 
sess.run(test_var) 

# Error! 

sess.run(tf.global_variables_initializer()) # initialize variables 
sess.run(test_var) 
# array([111, 11, 1], dtype=int32) 

至於爲什麼你使用的變量,而不是張量,基本上是一個變量與附加功能和效用張量。你可以指定一個變量爲可訓練的(實際上是默認的),這意味着你的優化器會調整它以儘量減少你的成本函數;您可以指定變量駐留在分佈式系統上的位置;您可以輕鬆保存和恢復變量和圖形。有關如何使用變量的更多信息可以在here找到。

+1

謝謝!這樣做更有意義。事實上,我沒有初始化變量。 –

相關問題