在除錯用tensorflow編寫的程式的時候,需要知道某個tensor的值是什麼。直接print只能列印輸出張量的shape,dtype等資訊,而要檢視張量的值的方法如下:
用class tf.session或 class tf.interactivesession類
import tensorflow as tf x = tf.variable(tf.constant(0.1, shape = [10])) init_op = tf.global_variables_initializer() with tf.session() as sess: sess.run(init_op) print(x.eval())
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
或者是這樣 :
import tensorflow as tf x = tf.variable(tf.constant(0.1, shape = [10])) init_op = tf.global_variables_initializer() with tf.session() as sess: sess.run(init_op) print(sess.run(x))
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
就能顯示了。
關於session 和 interactivesession的區別,別人是這麼總結的:tf.interactivesession():它能讓你在執行圖的時候,插入一些計算圖,這些計算圖是由某些操作(operations)構成的。這對於工作在互動式環境中的人們來說非常便利,比如使用ipython。
tf.session():需要在啟動session之前構建整個計算圖,然後啟動該計算圖。
意思就是在我們使用tf.interactivesession()來構建會話的時候,我們可以先構建乙個session然後再定義操作(operation),如果我們使用tf.session()來構建會話我們需要在會話構建之前定義好全部的操作(operation)然後再構建會話。
用tf.print()函式
這篇部落格寫的比較明白了,給的例子也能用。
首先給出函式說明:
tf.print(input_, data, message=none,first_n=none, summarize=none, name=none)
列印張量列表
輸入: input_:通過此op的乙個tensor.
data: 當此op被計算之後列印輸出的tensorlist。
message: 錯誤訊息的字首,是乙個string。
first_n: 只記錄first_n次. 總是記錄負數;這是個預設.
summarize: 對每個tensor只列印的條目數量。如果是none,對於每個輸入 tensor只列印3個元素。
name: op的名字.
返回:與input_相同的張量
例子:import tensorflow as tf sess = tf.interactivesession() a = tf.constant([1.0, 3.0]) sess.run(tf.print(a, [a], message="this is a: "))
能得到列印結果。
import tensorflow as tf sess = tf.interactivesession() x = tf.variable(tf.constant(0.1, shape = [10])) sess.run(x.initializer) sess.run(tf.print(x, [x], message = 'this is x:'))
這段程式能列印我定義的x變數,但是如果我把tf.print放在with tf.session()中 就 不列印,但是也不報錯。
tensorflow 中檢視張量值和張量大小
通過with tf.session assess print sess.run y 即可列印出變數的值。下面給出例子importnumpyasnp importtensorflowastf x tf.constant 1,2,3,4,5,6 y tf.reshape x,2,3 withtf.ses...
tensorflow中張量的理解
自己通過網上查詢的有關張量的解釋,稍作整理。tensorflow用張量這種資料結構來表示所有的資料.你可以把乙個張量想象成乙個n維的陣列或列表.乙個張量有乙個靜態型別和動態型別的維數.張量可以在圖中的節點之間流通.在tensorflow系統中,張量的維數來被描述為階.但是張量的階和矩陣的階並不是同乙...
tensorflow中張量的理解
自己通過網上查詢的有關張量的解釋,稍作整理。tensorflow用張量這種資料結構來表示所有的資料.你可以把乙個張量想象成乙個n維的陣列或列表.乙個張量有乙個靜態型別和動態型別的維數.張量可以在圖中的節點之間流通.在tensorflow系統中,張量的維數來被描述為階.但是張量的階和矩陣的階並不是同乙...