1. 程式人生 > >tf.nn.in_top_k的用法

tf.nn.in_top_k的用法

轉自:https://blog.csdn.net/UESTC_C2_403/article/details/73187915

tf.nn.in_top_k組要是用於計算預測的結果和實際結果的是否相等,返回一個bool型別的張量,tf.nn.in_top_k(prediction, target, K):prediction就是表示你預測的結果,大小就是預測樣本的數量乘以輸出的維度,型別是tf.float32等。target就是實際樣本類別的標籤,大小就是樣本數量的個數。K表示每個樣本的預測結果的前K個最大的數裡面是否含有target中的值。一般都是取1。

例如:

  1. import tensorflow as tf;
  2. A = [[0.8
    ,0.6,0.3], [0.1,0.6,0.4]]
  3. B = [1, 1]
  4. out = tf.nn.in_top_k(A, B, 1)
  5. with tf.Session() as sess:
  6. sess.run(tf.initialize_all_variables())
  7. print sess.run(out)
輸出:

[False  True]

解釋:因為A張量裡面的第一個元素的最大值的標籤是0,第二個元素的最大值的標籤是1.。但是實際的確是1和1.所以輸出就是False 和True。如果把K改成2,那麼第一個元素的前面2個最大的元素的位置是0,1,第二個的就是1,2。實際結果是1和1。包含在裡面,所以輸出結果就是True 和True.如果K的值大於張量A的列,那就表示輸出結果都是true