Python 给出不同值的交叉熵

Python 给出不同值的交叉熵,python,tensorflow,Python,Tensorflow,我想看看交叉熵的计算结果,但下面的代码给出了不同的结果。 在一种情况下,我使用了交叉熵公式,在第二种情况下,我只使用了tf.nn.softmax\u cross\u entropy\u和\u logits labels=tf.constant([[1,0],[1,0],[0,1]],tf.float32) s = tf.Variable(tf.random_normal([3,2])) softmax = tf.nn.softmax(s) ss_prime= tf.reduce_sum(lab

我想看看交叉熵的计算结果,但下面的代码给出了不同的结果。
在一种情况下,我使用了交叉熵公式,在第二种情况下,我只使用了
tf.nn.softmax\u cross\u entropy\u和\u logits

labels=tf.constant([[1,0],[1,0],[0,1]],tf.float32)
s = tf.Variable(tf.random_normal([3,2]))

softmax = tf.nn.softmax(s)
ss_prime= tf.reduce_sum(labels* tf.log(softmax),axis=1)
cross_entropy= 
tf.nn.softmax_cross_entropy_with_logits(logits=softmax,labels=labels)
ss_素数
cross_熵
获得的结果:

[0.5116534  0.33509448 0.96646595]
[-0.35425165 -0.04023812 -1.3620787 ]

tf.nn.softmax\u cross\u entropy\u with\u logits
在内部执行softmax。您需要将未缩放的值(在softmax之前)传递给它。事实上,这就是
with_logits
的意思

这里有明确的记录:

警告:此op需要无标度登录,因为它执行softmax 为提高效率,在内部进行登录。不要将此op与 softmax的输出,因为它将产生不正确的结果


我在这里只看到一个版本的代码,你能同时显示两个版本吗,还是我有误解?此外,我只看到了一组结果。第一个版本是ss_素数,第二个版本是交叉熵。两者都在计算相同的值