tensorflow 中檢視張量值的方法

2021-09-03 01:20:08 字數 1850 閱讀 5391

在除錯用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系統中,張量的維數來被描述為階.但是張量的階和矩陣的階並不是同乙...