tf.nn.in_top_k函数 用来判断目标值 是否包含在预测值的 前 K个最大的值中,返回bool类型。
tf.nn.in_top_k(
predictions,
targets,
k,
name=None
)
参数:
- predictions:float32类型的Tensor.batch_size x classes张量.
- targets:一个Tensor,必须是以下类型之一:int32,int64.类ids的batch_size向量.
- k:int类型,要计算精度的顶级元素数.
- name:操作的名称(可选).
返回:
bool类型的Tensor.以bool Tensor计算k处的精度.
实例:
import tensorflow as tf
A = [[1,7,6,4,9],[3,2,1,4,3]]
B = [2,3]
ret = tf.nn.in_top_k(A,B,1)
sess = tf.Session()
print(sess.run(ret))
#[False True]
# 当K为1时, A中的最大值向量分别为[4,3] , B为目标值[2,3],第一个值不包含,第二个值包含 所以结果为[false,true]
ret2 = tf.nn.in_top_k(A,B,k=3)
print(sess.run(ret2))
#[ True True]
# 当K为1时, A中的最大值向量分别为[[1,2,4],[0,3,4]] , B为目标值[2,3],B的第一个值包含,第二个值包含 所以结果为[ True True]