tf.nn.softmax_cross_entropy_with_logits(logits,labels) #其中logits为神经网络最后一层输出,labels为实际的标签,该函数返回经过softmax转换之后并与实际值相比较得到的交叉熵损失函数的值,该函数返回向量
例:
import tensorflow as tf logits=tf.constant([[1.0,2.0,3.0],[1.0,2.0,3.0],[1.0,2.0,3.0]]) y=tf.nn.softmax(logits) #计算给定输入的softmax值 y_=tf.constant([[0.0,0.0,1.0],[0.0,0.0,1.0],[0.0,0.0,1.0]]) cross_entropy = -tf.reduce_sum(y_*tf.log(y)) #计算交叉熵损失函数的值,返回向量,并通过tf.reduce_sum来计算均值 cross_entropy2=tf.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y_)) #直接计算交叉熵损失函数值 init=tf.global_variables_initializer() sess=tf.Session() sess.run(init) print(sess.run(y)) print(sess.run(cross_entropy)) #输出结果和下面的一致 print(sess.run(cross_entropy2))