Pytorch常用损失函数nn.BCEloss();nn.BCEWithLogitsLoss();nn.CrossEntropyLoss();nn.L1Loss(); nn.MSELoss();

nn.BCEloss()

  • 衡量输出与目标之间的二分类交叉熵
  • 功能:二分类交叉熵,输入值取值在[0,1]
    在这里插入图片描述
torch.torch.nn.BCELoss(weight=None, reduction='mean')
  • weight: 默认None,用于计算损失的手动尺度化的权重、张量
  • reduction:默认mean, 指定用于输出的缩减方式,另可选:none、sum;none:不应用缩减,mean:输出的和除以输出内元素数;sum:输出加和
  • 输入:input – 形状为 ( N , ∗ ) \left ( N,* \right ) (N,),N为样本数量,*为任意其他维度
  • 输入:target – 形状 ( N , ∗ ) \left ( N,* \right ) (N,),形状同input
  • 输出:output – 标量(reduction若为none,则形状同input)

nn.BCEWithLogitsLoss()

  • 此损失函数将 Sigmoid 层和 BCELoss 整合在一起

  • 比简单地将 Sigmoid 层加上 BCELoss 损失更稳定,因为使用了 log-sun-exp 技巧获得数值稳定性
    在这里插入图片描述

torch.nn.BCEWithLogitsLoss(
				weight=None, 
				reduction='mean', 
				pos_weight=None
			)
  • weight:默认 None,用于计算损失的手动尺度化的权重,张量

  • reduction:默认 ‘mean’,指定应用于输出的缩减方式,另可选 ‘none’,‘sum’;‘none’:不应用缩减;‘mean’:输出的和除以输出内元素数;‘sum’:输出加和

  • pos_weight:默认 None,正例的权重,需为长度为类别数的向量;

  • 输入:input – 形状为,为样本数量,为任意其他维度

  • 输入:target – 形状,形状同input

  • 输出:output – 标量(reduction若为none,则形状同input)

nn.CrossEntropyLoss

nn.CrossEntropyLoss(
		weight=None,
		size_average=None,
		ignore_index=-100,
		reduce=None,
		reduction=‘mean’
		)
  • weight:各类别的loss设置权值
  • ignore_index:忽略某个类别
  • reduction :计算模式,可为none/sum/mean,none- 逐个元素计算,sum- 所有元素求和,返回标量,mean- 加权平均,返回标量

在这里插入图片描述

nn.L1Loss

  • 功能: 计算inputs与target之差的绝对值
    在这里插入图片描述

nn.MSELoss

  • 功能: 计算inputs与target之差的平方
    在这里插入图片描述

nn.KLDivLoss

  • 功能:计算KLD(divergence),KL散度,相对熵
  • 注意事项:需提前将输入计算 log-probabilities,如通过nn.logsoftmax()
    在这里插入图片描述
  • 11
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值