Pytorch中的损失函数Loss Function

由于Pytorch中使用mini-batch进行计算,因此其损失函数的计算结果会对mini-batch取平均

常见的Pytorch中内置的损失函数有:

nn.L1Loss

计算input与output的差的绝对值,input与output应该是同一维度,得到的loss也是相应维度

1

nn.NLLLoss

Negative Log Likelihood

class torch.nn.NLLLoss(weight=None, size_average=None, ignore_index=-100, 
					   reduce=None, reduction='mean')

常用于多分类任务。在NLLLoss输入input之前,我们需要对input进行log_softmax处理(即将input转换成概率分布的形式,并且取对数,底数为e)

计算公式

loss(input, class) = -input[class]

NLLLoss中如果传递了weight参数,会对损失进行加权,公式就变成了

loss(input, class) = -weight[class] * input[class]

nn.MSELoss

Mean Square Error

计算input与ouput之间的均方差

2

nn.CrossEntropyLoss

多分类用的交叉熵损失合函数,将LogSoftMaxnn.NLLLoss集成到一个类中,nn.CrossEntropyLoss可以自动对input进行logSoftMax操作,可以理解为CrossEntropyLoss()=log_softmax() + NLLLoss()

3

传入weight参数后

4

一般多分类的情况会使用这个损失函数

nn.BCELoss

Binary Cross Entropy

计算input与output之间的二进制交叉熵

5

添加weight后

6

用的时候需要在该层前面加上 Sigmoid 函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值