概述
https://blog.csdn.net/mao_xiao_feng/article/details/53382790
# https://blog.csdn.net/zj360202/article/details/78582895
# https://blog.csdn.net/shenxiaoming77/article/details/77050642
tf.nn.softmax_cross_entropy_with_logits 计算的是 针对每一行 -ytrue*(tf.nn.softmax(ypredict)) 得到的 然后在按照行求和 即可 ,一句话就是求的是 每一个样本的损失
如果要求交叉熵,我们要再做一步tf.reduce_sum操作,就是对所有样本求和,最后才得到,如果求loss,则要做一步tf.reduce_mean操作,对样本所有的损失求均值!
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)
y.eval()
array([[0.09003057, 0.24472848, 0.66524094],
[0.09003057, 0.24472848, 0.66524094],
[0.09003057, 0.24472848, 0.66524094]], dtype=float32)
y_=tf.constant([[0.0,0.0,1.0],[0.0,0.0,1.0],[0.0,0.0,1.0]])
c=y_*tf.log(y)
c array([[-0. , -0. , -0.40760598],
[-0. , -0. , -0.40760598],
[-0. , -0. , -0.40760598]], dtype=float32)
m= tf.nn.softmax_cross_entropy_with_logits(logits=logits,labels=y_)
m.eval()
array([0.40760595, 0.40760595, 0.40760595], dtype=float32)
#求交叉熵 返回值也是一个标量
cross_entropy2=tf.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(logits, y_))
求损失 :返回值是一个标量
self.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, y_))
最后
以上就是传统机器猫为你收集整理的tf.nn.softmax_cross_entropy_with_logits的全部内容,希望文章能够帮你解决tf.nn.softmax_cross_entropy_with_logits所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复