sigmoid_cross_entropy_with_logits

本文深入解析TensorFlow中softmax_cross_entropy_with_logits函数的工作原理,包括其参数logits与labels的含义,以及如何通过该函数计算实际输出与期望输出之间的交叉熵距离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

result = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits)

se_ntinel: 这个参数一般情况不使用,直接设置为None就好

logits: 一个没有缩放的对数张量。labels和logits具有相同的数据类型(type)和尺寸(shape)

labels: 每一行 labels[i] 必须是一个有效的概率分布值。

name: 为这个操作取个名字
--------------------- 
 
原文:https://blog.youkuaiyun.com/u013555719/article/details/77602899 

这个函数的功能就是计算labels和logits之间的交叉熵(cross entropy)。

第一个参数基本不用。此处不说明。
第二个参数label的含义就是一个分类标签,所不同的是,这个label是分类的概率,比如说[0.2,0.3,0.5],labels的每一行必须是一个概率分布(即概率之合加起来为1)。

现在来说明第三个参数logits,logit的值域范围[-inf,+inf](即正负无穷区间)。我们可以把logist理解为原生态的、未经缩放的,可视为一种未归一化的l“概率替代物”,如[4, 1, -2]。它可以是其他分类器(如逻辑回归等、SVM等)的输出。
--------------------- 
原文:https://blog.youkuaiyun.com/yhily2008/article/details/80262321 
 

 

交叉熵就是用来判定实际的输出与期望的输出的接近程度。

二、公式

1.softmax回归

假设神经网络的原始输出为y1,y2,….,yn,那么经过Softmax回归处理之后的输出为:

这里写图片描述

单个节点的输出变成的一个概率值。

2.交叉熵的原理

交叉熵刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。假设概率分布p为期望输出,概率分布q为实际输出,H(p,q)为交叉熵,则:

除此之外,交叉熵还有另一种表达形式,还是使用上面的假设条件:

函数定义:def softmax_cross_entropy_with_logits(_sentinel=None, labels=None, logits=None, dim=-1, name=None)

示例:计算batch = 2,num_labels = 3的2*3矩阵

实际输出(概率):

[[0.2,0.1,0.9],

[0.3,0.4,0.6]]

这个函数最后的输出是一个向量,如果我们想计算损失,就需要求平均值。

tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(_sentinel=None,labels=None, logits=None, dim=-1, name=None))
原文:https://blog.youkuaiyun.com/zlrai5895/article/details/80382076 
 

期望输出(概率)label

[[0,0,1],

[1,0,0]]
--------------------- 
原文:https://blog.youkuaiyun.com/qq_33373858/article/details/82735302 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值