Pytroch常用损失函数总结

Pytroch自带了很多损失函数,在阅读相关代码时总是只看到一个调用就感到很迷,故在此进行常用的损失函数公式和代码总结。

一、nn.CrossEntropyLoss()

参考链接:关于pytorch中的CrossEntropyLoss()的理解

这篇博客用通俗的例子对交叉熵损失进行了计算过程说明。在该函数中先通过softmax函数将得到的类别归一化,然后送入交叉熵损失函数进行处理。看公式感觉输入函数中的预测值和label维度不统一,nn.CrossEntropyLoss()自动将label转化为one-hot形式。

在这里插入图片描述

二、Focal loss

参考链接:focal loss详解

这几篇文章详细介绍了Focal
loss的设计理念是为了使得损失函数专注于这些难分辨的样本上。同时添加了一个系数用来解决类别不平衡问题。三个字不平衡

三、 Dice loss

参考链接:
损失函数 DiceLoss 的 Pytorch 实现

该链接介绍了DiceLoss操作的直观演示,并且包含了多分类如何使用Dice
loss。但是关于分母的处理只给出了直接元素相加的方法,没有给出平方后相加的方法

在这里插入图片描述

语义分割任务多分类Focal loss与Dice loss pytorch实现\

这篇文章给出了常见的Focal loss和Dice loss的pytorch实现方法。

交叉熵损失 & Dice系数和IOU之间的区别和联系

四、其它常用损失函数总结

参考链接:简单粗暴PyTorch之18个损失函数
该博客简单的介绍了pytroch实现常见的18个损失函数的代码和公式介绍。18个损失函数如下:
1.nn.CrossEntropyLoss
2.nn.NLLLoss
3.nn.BCELoss
4.nn.BCEWithLogitsLoss
5.nn.L1Loss
6.nn.MSELoss
7.nn.SmoothL1Loss
8.nn.PoissonNLLLoss
9.nn.KLDivLoss
10.nn.MarginRankingLoss
11.nn.MultiLabelMarginLoss
12.nn.SoftMarginLoss
13.nn.MultiLabelSoftMarginLoss
14.nn.MultiMarginLoss
15.nn.TripletMarginLoss
16.nn.HingeEmbeddingLoss
17.nn.CosineEmbeddingLoss
18.nn.CTCLoss
其中:

nn.CrossEntropyLoss为nn.LogSoftmax()与nn.NLLLoss()结合,进行 交叉熵计算.
nn.NLLLoss:实现负对数似然函数中的负号功能
nn.BCELoss:二分类交叉熵
BCEWithLogitsLoss:结合Sigmoid与二分类交叉熵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值