当前位置: 移动技术网 > IT编程>脚本编程>Python > tf.nn.in_top_k的用法

tf.nn.in_top_k的用法

2019年11月21日  | 移动技术网IT编程  | 我要评论

任东远,徐琼霜,建元鹿业

tf.nn.in_top_k组要是用于计算预测的结果和实际结果的是否相等,返回一个bool类型的张量,tf.nn.in_top_k(prediction, target, k):prediction就是表示你预测的结果,大小就是预测样本的数量乘以输出的维度,类型是tf.float32等。target就是实际样本类别的标签,大小就是样本数量的个数。k表示每个样本的预测结果的前k个最大的数里面是否含有target中的值。一般都是取1。

例如:

import tensorflow as tf;
 
a = [[0.8,0.6,0.3], [0.1,0.6,0.4]]
b = [1, 1]
out = tf.nn.in_top_k(a, b, 1)
with tf.session() as sess:
    sess.run(tf.initialize_all_variables())
    print sess.run(out)

输出:
[false  true]

 

解释:因为a张量里面的第一个元素的最大值的标签是0,第二个元素的最大值的标签是1.。但是实际的确是1和1.所以输出就是false 和true。如果把k改成2,那么第一个元素的前面2个最大的元素的位置是0,1,第二个的就是1,2。实际结果是1和1。包含在里面,所以输出结果就是true 和true.如果k的值大于张量a的列,那就表示输出结果都是true

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网