代码
import tensorflow as tf
# 预测值
logits = tf.constant([[0.5, 0.4, 0.1],
[0.1, 0.2, 0.3]])
# 真实值
labels = tf.constant([[1.0, 0.0, 0.0],
[0.0, 0.0, 1.0]])
# 交叉熵方式一
cross_entropy1 = ( labels * tf.log(tf.nn.softmax(logits)) )
# 交叉熵方式二
cross_entropy2 = ( tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=labels) )
#交叉熵方式三
cross_entropy3 = ( tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=tf.argmax(labels, 1)) )
with tf.Session() as sess:
print("交叉熵方式一", sess.run(cross_entropy1))
print("交叉熵方式二", sess.run(cross_entropy2))
print("交叉熵方式三", sess.run(cross_entropy3))
输出结果