我是靠谱客的博主 传统机器猫,最近开发中收集的这篇文章主要介绍tf.nn.softmax_cross_entropy_with_logits,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部