2017-09-23 43 views
0

我使用恆定的,但無法通過tf.VariableTensorflow tf.Variable不能執行另外

執行

下面的代碼工作正常,當我使用相加常數是能夠執行加法。

import tensorflow as tf 

a = tf.constant(5) 
b = tf.constant(6) 

sess = tf.Session() 
result = sess.run(a + b) 
print(result) 

但是,當我與tf.Variable試過它不工作,這是我的代碼

import tensorflow as tf 

a = tf.Variable(5) 
b = tf.Variable(6) 

sess = tf.Session() 
result = sess.run(a + b) 
print(result) 

有人可以幫我嗎?謝謝 !!!

回答

1

您需要首先初始化變量:

import tensorflow as tf 
​ 
a = tf.Variable(5) 
b = tf.Variable(6) 
​ ​ 
sess = tf.Session() 

初始化變量:

sess.run(tf.global_variables_initializer())  

result = sess.run(a + b) 

print(result) 
11 

你可以閱讀更多關於變量初始化here,它說不像tf.Tensor對象,一個tf.Variable存在於單個會話的上下文之外。運行。所以在你使用變量之前,它必須被初始化爲。初始化是特定於Session的,這意味着無論何時開始一個新會話,並且想要使用這些變量,都必須先初始化它們。

+0

謝謝,但你能告訴我這行會做什麼sess.run(tf.global_variables_initializer())。如果你簡單解釋它會很好。謝謝 !!! –

+0

您可以在這裏閱讀[初始化變量](https://www.tensorflow.org/programmers_guide/variables#initializing_variables),其中說*與tf.Tensor對象不同,tf.Variable存在於單個會話的上下文之外。運行調用。*因此,在使用變量之前,必須對其進行初始化。初始化是特定於Session的,這意味着無論何時開始一個新會話,並且想要使用這些變量,都必須先初始化它們。 – Psidom