nn.CrossEntropyLoss是pytorch下的交叉熵损失,用于分类任务使用
下面我们看看它具体是怎么实现的
先创建一下数据
import torch.nn as nn
import torch
x = torch.rand((3,3))
y = torch.tensor([0,1,1])
#x的值
#tensor([[0.7459, 0.5881, 0.4795],
# [0.2894, 0.0568, 0.3439],
# [0.6124, 0.7558, 0.4308]])
#y的值
#tensor([0, 1, 1])
①先经过softmax函数,求出每个类别的概率值,取值到0-1之间
softmax = nn.Softmax()
x_softmax = softmax(x

这篇博客详细介绍了PyTorch中交叉熵损失函数nn.CrossEntropyLoss的实现过程,包括数据预处理(通过softmax和log函数)、损失计算(使用nn.NLLLoss)等步骤,并通过实例展示了nn.LogSoftmax和nn.NLLLoss的等效性,最后验证了nn.CrossEntropyLoss的正确性。内容适合于希望理解该函数工作原理的PyTorch初学者。

5947

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



