tf.nn.in_top_k的用法

原型:

tf.nn.in_top_k(predictions, targets, k, name=None)

'''
    predictions: 你的预测结果(一般也就是你的网络输出值)大小是预测样本的数量乘以输出的维度
    target:      实际样本类别的标签,大小是样本数量的个数
    k:           每个样本中前K个最大的数里面(序号)是否包含对应target中的值
    
'''
import tensorflow as tf
A = tf.Variable([[0.8, 0.4, 0.5, 0.6],[0.1, 0.9, 0.2, 0.4],[0.1, 0.9, 0.4, 0.2]])
B = tf.Variable([1, 1, 2])
result = tf.nn.in_top_k(A, B, 2)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(A))
    print(sess.run(B))
    print(sess.run(result))
#   k=1 [False True False]
# k=2 [False True True]
''' 解释: k取1的时候: 因为A中第一个元素的最大值为0.8,索引(序号)是0,而B是1,不包含B,所以返回False. A中第二个元素的最大值为0.9,索引(序号)是1,而B是1,包含B,所以返回True. A中第三个元素的最大值为0.9,索引(序号)是1,而B是2,不包含B,所以返回False. k取2的时候: 因为A中前两个元素的最大值为0.8,0.6,索引(序号)是0,3,而B是1,不包含B,所以返回False. A中前两个元素的最大值为0.9,0.4,索引(序号)是1,3,而B是1,包含B,所以返回True. A中前两个元素的最大值为0.9,0.4,索引(序号)是1,2,而B是2,包含B,所以返回True. '''

非学无以广才,非志无以成学! 【Magic_chao

原文地址:https://www.cnblogs.com/logo-88/p/9099383.html