Focal loss代码实现补充:NLLLoss损失函数

torch.nn.NLLLOSS官方链接:NLLLoss — PyTorch 1.12 documentation

  • 首先对比Log_softmax, Nllloss,CrossEntropyLoss函数的表达式

log_softmax:

Softmax() 函数的值域是 [ 0 , 1 ] 公式:
σ ( z ) j = e z j ∑ k = 1 n e z k \sigma(z)_{j} = \frac{e^{z_{j}}}{\sum_{k=1}^ne^{z_{k}}} σ(z)j=k=1nezkezj
Log_Softmax() 函数的值域是 ( − ∞ , 0 ] ,公式:
l o g —— s o f t m a x = ln ⁡ σ ( z ) j log——softmax = \ln{\sigma(z)_{j}} log——softmax=lnσ(z)j
NLLLoss() ,即负对数似然损失函数(Negative Log Likelihood),公式:
n l l l o s s = − 1 N ∑ k = 1 N y k ( l o g —— s o f t m a x ) nllloss = - \frac{1}{N}\sum_{k=1}^Ny_{k}(log——softmax) nllloss=N1k=1Nyk(log——softmax)
公式上来看:nllloss的结果就是yk与经过log_softmax函数激活后的数据相乘,然后累加求平均值并取反

实际使用NLLLoss()损失函数时,传入的标签,无需进行 one_hot 编码。

CrossEntropyLoss() = log_softmax + nllloss

------好像也没啥了,可以见参考资料,有现成代码注解,自己试验的也没意义

  • ref:

Log_Softmax()激活函数、NLLLoss()损失函数、CrossEntropyLoss()损失函数浅析_嘿嘿骑士的博客-优快云博客_logsoftmax是损失函数吗

吃透torch.nn.CrossEntropyLoss() - 知乎 (zhihu.com)

详解torch.nn.NLLLOSS - 知乎 (zhihu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

矮人三等

秀儿,是你吗秀儿?

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

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

打赏作者

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

抵扣说明:

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

余额充值