tf.nn.in_top_k組要是用於計算預測的結果和實際結果的是否相等,返回一個bool類型的張量,tf.nn.in_top_k(prediction, target, K):prediction就是表示你預測的結果,大小就是預測樣本的數量乘以輸出的維度,類型是tf.float32等。target就是實際樣本類別的標籤,大小就是樣本數量的個數。K表示每一個樣本的預測結果的前K個最大的數裏面是否含有target中的值。通常都是取1。spa
例如:code
import tensorflow as tf; A = [[0.8,0.6,0.3], [0.1,0.6,0.4]] B = [1, 1] out = tf.nn.in_top_k(A, B, 1) with tf.Session() as sess: sess.run(tf.initialize_all_variables()) print sess.run(out)
輸出:
[False True]blog
解釋:由於A張量裏面的第一個元素的最大值的標籤是0,第二個元素的最大值的標籤是1.。可是實際的確是1和1.因此輸出就是False 和True。若是把K改爲2,那麼第一個元素的前面2個最大的元素的位置是0,1,第二個的就是1,2。實際結果是1和1。包含在裏面,因此輸出結果就是True 和True.若是K的值大於張量A的列,那就表示輸出結果都是trueget