tf.nn.in_top_k的用法
阿新 • • 發佈:2019-02-17
轉自: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。
例如:
- import tensorflow as tf;
- A = [[0.8
- 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]
解釋:因為A張量裡面的第一個元素的最大值的標籤是0,第二個元素的最大值的標籤是1.。但是實際的確是1和1.所以輸出就是False 和True。如果把K改成2,那麼第一個元素的前面2個最大的元素的位置是0,1,第二個的就是1,2。實際結果是1和1。包含在裡面,所以輸出結果就是True 和True.如果K的值大於張量A的列,那就表示輸出結果都是true