最近一直在用TF做CNN的圖像分類,當softmax層得到預(yù)測結(jié)果后,我希望能夠看到預(yù)測結(jié)果,以便和標簽之間進行比較。特此補上,以便自己記憶。
我現(xiàn)在通過softmax層得到變量train_logits,如果我直接執(zhí)行print(train_logits)時,得到的結(jié)果如下(因為我是134類分類,所以結(jié)果是(1,134)維):
這貌似什么都看不出來。
其實tensorflow提供輸出中間值方法方便debug。
這個函數(shù)就是[tf.Print]。
tf.Print( input_, data, message=None, first_n=None, summarize=None, name=None )
參數(shù):
input_: 通過此op的一個tensor.
data: 當此op被計算之后打印輸出的tensor list。
message: 錯誤消息的前綴,是一個string。
first_n: 只記錄first_n次. 總是記錄負數(shù);這是個缺省.
summarize: 對每個tensor只打印的條目數(shù)量。如果是None,對于每個輸入tensor只打印3個元素。
name: op的名字.
返回值:
和input_相同的tensor.
將print(train_logits)修改為sess.run(tf.Print(train_logits,[train_logits]))后,得到的結(jié)果如下圖:
發(fā)現(xiàn)值已經(jīng)能夠打印啦!但是只能輸出3個條目,這是因為參數(shù)summarize默認只打印3個參數(shù)!
將sess.run(tf.Print(train_logits,[train_logits]))修改為sess.run(tf.Print(train_logits,[train_logits],summarize=134))后(我是134類分類),得到的結(jié)果如下圖:
這樣就能成功地打印tensor的中間結(jié)果了!以后調(diào)參、查看模型效果就直觀多了!
以上這篇TensorFlow打印tensor值的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選