交叉熵损失函数

交 叉 熵 损 失 函 数 交叉熵损失函数

Pytorch实现


nn.CrossEntropyLoss(weight=None,
size_average=None,
ignore_index=-100,
reduce=None,
reduction='mean')
功能:nn.LogSoftmax()与nn.NLLLoss()结合,进行交叉嫡计算

主要参数:
weight:各类别的loss设置权值
ignore_index:忽略某个类别
reduction :计算模式,可为none/sum/mean
		none-逐个元素计算
		sum-所有元素求和,返回标量
		mean-加权平均,返回标量

交叉熵 = 信息熵+相对熵

由于训练数据集是固定的,所以信息熵是固定的
所以优化信息熵就是优化相对熵,相对熵就是指两个分布的距离,优化相对熵就是缩进两个分布的距离,就是将预测分布逼近真实分布。

在这里插入图片描述

import torch
from torch import nn
outputs = torch.tensor([[1,2,3],[1,2,3],[1,2,3],[1,2,3]],dtype=torch.float)
lables = torch.tensor([0,1,2,1],dtype=torch.long) # 注意在torch中的labels需要设置为torch.long

[1,2,3]三个维度代表了3类,labal也只能设置为0,1,2来表示3类的标签

# 默认 reduction='mean'
LossFunction = nn.CrossEntropyLoss()
loss  =  LossFunction(outputs,lables)
loss

在这里插入图片描述

LossFunction_None = nn.CrossEntropyLoss(reduction='none')
LossFunction_Sum = nn.CrossEntropyLoss(reduction='sum')
LossFunction_Mean = nn.CrossEntropyLoss(reduction='mean')
print("loss_none:",loss_none)
print("loss_sum:",loss_sum)
print("loss_mean:",loss_mean)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值