TensorFlow函数:tf.nn.in_top_k()
2018-03-18 15:47
1011 查看
in_top_k(predictions, targets, k, name=None)
函数的输入:
predictions:预测的输出结果,预测矩阵的大小为样本数×类别的个数的二维矩阵。换句话说,矩阵的值就是每个样本属于各个类别的概率值。
targets:真实标注的类别值,大小为样本个数,即每个样本对应一个唯一的类别。
k:当k=1时,即就是某一样本预测属于某一最大概率的类,与该样本真实标注的targets**类**进行对比,是否一致,一致则输出true,反之输出false。当k不等于1时,每个样本的预测结果的前k个最大概率的类里面是否包含targets预测中的标签,也就是多对一。
函数的输出:
bool型变量。即predictions预测标签和targets实际标签进行对比,是否一致,一致则输出true,反之输出false。
假设有10个样本,标注为5类,10个样本实际标签均是第一类,代码如下:
运行结果
top_1_op为True的地方top_2_op一定为True,top_1_op取样本的最大预测概率的索引与实际标签对比,top_2_op取样本的最大和仅次最大的两个预测概率与实际标签对比,如果实际标签在其中则为True,否则为False。其他k的取值可以类推。
参考:http://blog.csdn.net/Enchanted_ZhouH/article/details/77200592
函数的输入:
predictions:预测的输出结果,预测矩阵的大小为样本数×类别的个数的二维矩阵。换句话说,矩阵的值就是每个样本属于各个类别的概率值。
targets:真实标注的类别值,大小为样本个数,即每个样本对应一个唯一的类别。
k:当k=1时,即就是某一样本预测属于某一最大概率的类,与该样本真实标注的targets**类**进行对比,是否一致,一致则输出true,反之输出false。当k不等于1时,每个样本的预测结果的前k个最大概率的类里面是否包含targets预测中的标签,也就是多对一。
函数的输出:
bool型变量。即predictions预测标签和targets实际标签进行对比,是否一致,一致则输出true,反之输出false。
假设有10个样本,标注为5类,10个样本实际标签均是第一类,代码如下:
import tensorflow as tf logits = tf.Variable(tf.truncated_normal(shape=[10,5],stddev=1.0)) labels = tf.constant([0,0,0,0,0,0,0,0,0,0]) top_1_op = tf.nn.in_top_k(logits,labels,1) top_2_op = tf.nn.in_top_k(logits,labels,2) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print(logits.eval()) print(labels.eval()) print(top_1_op.eval()) print(top_2_op.eval())
运行结果
[[-0.01835343 -1.68495178 -0.67901242 -0.20486258 -0.22725371] [ 1.84425163 -1.25509632 0.07132829 -1.81082523 -0.44123012] [-0.4354656 0.1805554 0.81912154 0.04202025 -1.99823892] [ 0.53393573 0.91522688 -1.88455033 -0.44571343 0.07805539] [ 0.01253182 0.16593859 0.0918197 0.8079409 0.13442524] [ 0.08205117 -0.26857412 0.02542082 0.38249066 -0.01555154] [-1.02280331 0.18952899 0.49389341 0.58559865 0.80859423] [ 0.35019293 -1.17765355 0.66553122 1.91787696 0.5998978 ] [ 0.81723028 0.92895705 0.86031818 1.57651412 0.94040418] [-0.83766556 -1.75260925 0.13499574 -0.06683849 -0.99427927]] [0 0 0 0 0 0 0 0 0 0] [ True True False False False False False False False False] [ True True False True False True False False False False]
top_1_op为True的地方top_2_op一定为True,top_1_op取样本的最大预测概率的索引与实际标签对比,top_2_op取样本的最大和仅次最大的两个预测概率与实际标签对比,如果实际标签在其中则为True,否则为False。其他k的取值可以类推。
参考:http://blog.csdn.net/Enchanted_ZhouH/article/details/77200592
相关文章推荐
- [tensorflow] 得出预测结果 tf.nn.in_top_k()
- tf.nn.in_top_k()
- tf.nn.in_top_k()的用法
- tf.nn.top_k() tf.nn.in_top_k()
- tensorflow 笔记10:tf.nn.sparse_softmax_cross_entropy_with_logits 函数
- tensorflow中的tf.nn这类函数
- Tensorflow tf.nn.in_top_k Error targets[0] is out of range
- TensorFlow 学习(七) — 常用函数 api、tf.nn 库
- tensorflow下的局部响应归一化函数tf.nn.lrn
- tensorflow的tf.in_top_k()错误
- 对 tensorflow 中 tf.nn.embedding_lookup 函数的解释
- tensorflow-激活函数及tf.nn.dropout
- tf.nn.in_top_k的用法
- Tensorflow函数:tf.nn.softmax_cross_entropy_with_logits 讲解
- tf.nn.in_top_k的用法
- tf.nn.conv3d和tf.nn.max_pool3d这两个tensorflow函数的功能和参数
- tf.nn.top_k函数
- tf.nn.in_top_k的用法
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
- TensorFlow学习---tf.nn.dropout防止过拟合