被TensorFlow nn.in_top_k输出所迷惑

被TensorFlow nn.in_top_k输出所迷惑,tensorflow,Tensorflow,我修改了 只训练两节课 然后,我使用 我试着去理解这本书的内容 L128 top_k_op=tf.nn.in_top_k(logits,labels,1) 打印为: in_top_k输出::: [数组([True,False,True,False,True,True,True,True,True],dtype=bool)] 而真正的标签(两个类,10个图像)是: [0110] 并且登录名为: [[ 1.45472026 -1.46666598] [-1.0181191 1.03441548

我修改了 只训练两节课

然后,我使用

我试着去理解这本书的内容

L128 top_k_op=tf.nn.in_top_k(logits,labels,1)

打印为:

in_top_k输出:::
[数组([True,False,True,False,True,True,True,True,True],dtype=bool)]

而真正的标签(两个类,10个图像)是:
[0110]

并且登录名为:

[[ 1.45472026 -1.46666598]
 [-1.0181191   1.03441548]
 [-1.02658665  1.04306769]
 [-1.19205511  1.21065331]
 [-1.22167087  1.24064851]
 [-0.89583808  0.91119087]
 [-0.17517655  0.18206072]
 [-0.09379113  0.09957675]
 [-1.05578279  1.07254183]
 [ 0.73048806 -0.73411369] ]
问题:为什么第二个和第四个
nn.in_top_k()
输出是
False
而不是
True

这不应该发生

我评估了您给出和得到的示例:

In [6]: top_k_op = tf.nn.in_top_k(logits, labels, 1)

In [7]: top_k_op.eval()
Out[7]: array([ True,  True,  True,  True,  True,  True,  True,  True,  True,  True], dtype=bool)
顺便说一句,您可以用一个简单的
argmax
替换_top_k(A,B,1)中的

In [14]: tf.equal(tf.argmax(logits, 1), labels, tf.int64).eval()
Out[14]: array([ True,  True,  True,  True,  True,  True,  True,  True,  True,  True], dtype=bool)
这不应该发生

我评估了您给出和得到的示例:

In [6]: top_k_op = tf.nn.in_top_k(logits, labels, 1)

In [7]: top_k_op.eval()
Out[7]: array([ True,  True,  True,  True,  True,  True,  True,  True,  True,  True], dtype=bool)
顺便说一句,您可以用一个简单的
argmax
替换_top_k(A,B,1)
中的

In [14]: tf.equal(tf.argmax(logits, 1), labels, tf.int64).eval()
Out[14]: array([ True,  True,  True,  True,  True,  True,  True,  True,  True,  True], dtype=bool)

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。