tf.nn.in_top_k()函数的参数如下:
1 | in_top_k(predictions, targets, k, name=None) |
predictions:预测的结果,预测矩阵大小为样本数×标注的label类的个数的二维矩阵。
targets:实际的标签,大小为样本数。
k:每个样本的预测结果的前k个最大的数里面是否包含targets预测中的标签,一般都是取1,即取预测最大概率的索引与标签对比。
name:名字。
假设有10个样本,标注为5类,10个样本实际标签均是第一类,代码如下:
1 | import tensorflow as tf |
运行结果如下:
1 | [[-0.01835343 -1.68495178 -0.67901242 -0.20486258 -0.22725371] |
top_1_op为True的地方top_2_op一定为True,top_1_op取样本的最大预测概率的索引与实际标签对比,top_2_op取样本的最大和仅次最大的两个预测概率与实际标签对比,如果实际标签在其中则为True,否则为False。其他k的取值可以类推。