tf.nn.in_top_k原理探究

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]

原文地址:https://www.cnblogs.com/Mufasa/p/8728439.html