tf.nn.in_top_k

t f . n n . i n _ t o p _ k ( p r e d i c t i o n s , t a r g e t s , k , n a m e = N o n e ) tf.nn.in\_top\_k(predictions, targets, k, name=None) tf.nn.in_top_k(predictions,targets,k,name=None)
p r e d i c t i o n s predictions predictions:你的预测结果(一般也就是你的网络输出值)大小是预测样本的数量乘以输出的维度。
t a r g e t target target:实际样本类别的标签,大小是样本数量的个数。
k k k:每个样本中前 K K K个最大的数里面(序号)是否包含对应 t a r g e t target target中的值。

import tensorflow as tf

X=tf.Variable([[0.4,0.2,0.3,0.1],[0.1,0.1,0.2,0.6],[0.7,0.1,0.1,0.1]])
Y=tf.Variable([2,1,1])
k=tf.placeholder(tf.int32,shape=None)
result=tf.nn.in_top_k(X,Y,k)

with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    print(sess.run(X))
    print(sess.run(Y))
    print(sess.run(result,feed_dict={k:1}))
    print(sess.run(result,feed_dict={k:2}))

#结果为:
#[[0.4 0.2 0.3 0.1]
   [0.1 0.1 0.2 0.6]
   [0.7 0.1 0.1 0.1]]
#[2 1 1]
#[False False False]
#[ True False  True]

分析一下结果
k = 1 k=1 k=1时,
X X X [ 0.40.20.30.1 ] [0.4 0.2 0.3 0.1] [0.40.20.30.1]最大元素为 0.4 0.4 0.4,索引为 0 0 0,而 B B B 2 2 2,不包含 B B B,故 F a l s e False False
[ 0.10.10.20.6 ] [0.1 0.1 0.2 0.6] [0.10.10.20.6]最大元素为 0.6 0.6 0.6,索引为 3 3 3,B是 1 1 1,不包含 B B B,故 F a l s e False False
[ 0.70.10.10.1 ] [0.7 0.1 0.1 0.1] [0.70.10.10.1]最大元素为 0.7 0.7 0.7,索引为 0 0 0,B是 1 1 1,不包含 B B B,故 F a l s e False False
k = 2 k=2 k=2时,
X X X [ 0.40.20.30.1 ] [0.4 0.2 0.3 0.1] [0.40.20.30.1]最大的两个元素为 0.4 、 0.3 0.4、0.3 0.40.3,索引为 0 、 2 0、2 02 B B B 2 2 2,故 T r u e True True
[ 0.10.10.20.6 ] [0.1 0.1 0.2 0.6] [0.10.10.20.6]最大两个元素为 0.6 、 0.2 0.6、0.2 0.60.2,索引为 3 、 2 3、2 32 B B B 1 1 1,不包含 B B B,故 F a l s e False False
[ 0.70.10.10.1 ] [0.7 0.1 0.1 0.1] [0.70.10.10.1]最大元素为 0.7 , 0.1 0.7,0.1 0.70.1,索引为 0 、 1 0、1 01 B B B 1 1 1,包含 B B B,故 T r u e True True

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值