tf.nn.in_top_k(predictions, targets, k, name=None)
判断target 是否在top k 的预测之中。
输出batch_size 大小的bool 数组,如果对目标类的预测在所有预测的top k 中,条目 out[i]=True。注意 InTopK 和 TopK 的操作是不同的。如果多个类有相同的预测值并且跨过了top-k 的边界,所有这些类都被认为是在 top k 中。
返回值:bool类型的Tensor。计算预测的前k个值作为一个bool Tensor
#!/usr/bin/env python
# coding=utf-8
import tensorflow as tf
logits=tf.Variable(tf.truncated_normal([10,5],mean=0.0,stddev=1.0,dtype=tf.float32))
labels=tf.Variable([1,1,1,1,1,1,1,1,1,1])
eval_correct=tf.nn.in_top_k(logits,labels,1)
init=tf.initialize_all_variables()
sess=tf.Session()
sess.run(init)
print sess.run(logits)
print sess.run(labels)
print sess.run(eval_correct)
sess.close()