2017-03-23 65 views
1

通過我的網絡中的正向傳遞,我想記錄特定tf.variable所需的值。有沒有簡單的方法來做到這一點?Tensorflow:跟蹤張量需要的值

+0

看看[TensorBoard](https://www.tensorflow.org/get_started/summaries_and_tensorboard)。這在很大程度上取決於你對變量做什麼。如果它只是一個標量變量,你可以繪製它。要獲得確切的值,請將張量引用傳遞給'session.run()'並獲取完整輸出。 – golmschenk

回答

0

您可以在tensorflow變量需要的每一步調試值。

+0

你能否詳細說明我該怎麼做? – fragman

1

有幾種方法可以在TensorFlow中記錄或調試數據。

最簡單的是在會話中運行它,或者eval。例如

import tensorflow as tf 
sess = tf.InteractiveSession() 

v = tf.Variable([0.0]) 
# you can do other graph things here. 

print sess.run(v) 
# alternatively 
print v.eval() 

這通常是不可能的,所以另一種方法是將tf.Print ops放入圖中。以下是如何在使用變量時打印變量的方法。

import tensorflow as tf 

v = tf.Variable([0.0], name="the_var") 
v = tf.Print(v, [v], "the_var = ") 

# ... do things with 'v' as if it was the variable op 

tf.Print運算將只打印前幾個項目,如果你有一個大的張量,因此檢查文檔的summarizefirst_n參數來控制多少記錄。

您也可以使用TensorBoard在圖形執行過程中記錄變量的摘要。如果您還沒有使用它,那麼您應該在之前,TensorFlow中的許多高級API已經在TensorBoard上執行過程中記錄了很多關於模型變量的信息。要在TensorBoard中執行自己的日誌記錄,請使用類似tf.summary.scalartf.summary.histogram的東西。

v = tf.Variable([0.0]) 
# this will log to the 'distributions' tab in tensorboard too 
tf.summary.scalar(v) 
tf.summary.histogram(v) 

退房的文檔,瞭解如何執行過程中保存這些彙總到磁盤的詳細信息:https://www.tensorflow.org/get_started/summaries_and_tensorboard

最後,還有一個調試器可用於TensorFlow,tfdbg,您可以用來逐步執行圖形執行並轉儲張量的內容。