2017-04-20 81 views
0

使用未初始化的值當我鍵入下面的代碼:試圖在Tensorflow

x=tf.Variable([1.0, 2.0]) 
sess=tf.Session() 
sess.run(tf.initialize_all_variables()) 
print x.eval() 

它與「嘗試使用未初始化值」讓我想起了錯誤的信息。但是,當我修改上述代碼爲:

x=tf.Variable([1.0,2.0]) 
sess=tf.Session() 
sess.run(tf.initialize_all_variables()) 
x.initializer.run() 
print x.eval() 

它運作良好!我認爲tf.initialize_all_variables()已經爲tensorflow變量x初始化了。所以我對此感到困惑。有任何想法嗎?

+0

這些代碼示例都不應該像寫入一樣工作(除非在封閉範圍內構建了另一個會話)。特別是'x.initializer.run()'和'x.eval()'應該引發一個錯誤,因爲沒有默認的會話 - 你需要創建一個'tf.InteractiveSession'或者用'tf .Session():'塊。 – mrry

+0

沒錯。現在對我來說很清楚。感謝您的回答。 – yuanyuan

回答

0

tf.initialize_all_variables文檔:

該函數已過時。它將在2017-03-02之後被刪除。更新說明:改爲使用tf.global_variables_initializer。

這可能是原因。

+0

這不是答案。我仍然使用舊版本的Tensorflow。 'tf.initialize_all_variables'可以在我的其他代碼中正常工作。 – yuanyuan

+0

你是對的,它甚至不應該運行在1.0上,我在r0.12上試過了,只有當我給當前會話的eval時,第一個代碼才能正確運行:'print x.eval(session = sess)' –

+0

Got它。非常感謝。 – yuanyuan