【学习】torch.nn.CrossEntropyLoss交叉熵损失函数

交叉熵损失函数torch.nn.CrossEntropyLoss

交叉熵主要是用来判定实际的输出与期望的输出的接近程度,为什么这么说呢,举个例子:

  • 在做分类的训练的时候,如果一个样本属于第K类,那么这个类别所对应的输出节点的输出值应该为1,而其他节点的输出都为0,即[0,0,1,0,….0,0],这个数组也就是样本的Label,是神经网络最期望的输出结果。也就是说用它来衡量网络的输出与标签的差异,利用这种差异经过反向传播去更新网络参数。

损失函数计算原理

交叉熵损失,是分类任务中最常用的一个损失函数。在Pytorch中是基于下面的公式实现的。
在这里插入图片描述
其中x 是真实标签, x ^是预测值。
取单个样本举例, 假设x = [ 0 , 1 , 0 ] , 模型预测样本x ^的概率为[ 0.1 , 0.5 , 0.4 ] 。(因为是分布, 所以属于各个类的和为1)。则样本的损失计算如下所示:
在这里插入图片描述

需要注意的点:

  • torch.nn.CrossEntropyLoss(input,target)中的标签target使用的是类别的序号,而不是one-hot形式。
    假设现在共有5个候选类别,当前标签是第三个。故类别序号如:2,(下标从0开始),而one-hot编码表示为:[0,0,1,0,0]

    在torch中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超好的小白

没体验过打赏,能让我体验一次吗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值