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。

例如:

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]

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM