1. 程式人生 > >tf.nn.in_top_k原理探究

tf.nn.in_top_k原理探究

() int ssi orf cti ble variable 最大的 clas

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

tf.nn.in_top_k組要是用於計算預測的結果和實際結果的是否相等,返回一個bool類型的張量,

tf.nn.in_top_k(prediction, target, K):

prediction就是表示你預測的結果,大小就是預測樣本的數量乘以輸出的維度,類型是tf.float32等。

target就是實際樣本類別的標簽,大小就是樣本數量的個數。

K表示每個樣本的預測結果的前K個最大的數裏面是否含有target中的值。一般都是取1。

當k為1時:

預測值為[0,1,2]

真實值為[0,2,1]

輸出為[True,False,False]

當k為2時:

預測值為

# 0,1
# 1,2
# 0,2

真實值為[0,0,1]

輸出為[True,True,False]

tf.nn.in_top_k原理探究