nn.NLLLoss()的参数是经过logsoftmax加工的,而CrossEntropyLoss的是原始输出数据
-
target = torch.tensor([1, 2])
-
entropy_out = F.cross_entropy(data, target)
-
nll_out = F.nll_loss(log_soft, target)
-
注意这里的代价函数的特点,无论是采用cross_entropy 还是nll_loss,预测结果与目标值都看起来是两路数据。但是并不影响梯度求导更新过程,最终调整成预测与target目标函数越来越接近
https://zengwenqi.blog.youkuaiyun.com/article/details/96282788

本文深入探讨了PyTorch中NLLLoss与CrossEntropyLoss两种损失函数的使用场景与区别。通过实例说明了NLLLoss适用于logsoftmax处理后的数据,而CrossEntropyLoss直接用于原始输出数据。对比了两种函数在预测与目标值匹配过程中的梯度求导与更新机制。
1289

被折叠的 条评论
为什么被折叠?



