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]