``` criterion = nn.NLLLoss() ```
时间: 2024-05-09 17:12:50 浏览: 138
cargo-criterion:用于运行Criterion.rs基准测试的货运扩展
`nn.NLLLoss()`是PyTorch中的一个损失函数(loss function),全称Negative Log-Likelihood Loss。它通常用于多分类问题中,特别是在输出层使用了`nn.LogSoftmax()`函数的情况下。在这种情况下,模型的输出是每个类别的对数概率(log probability)。`nn.NLLLoss()`的作用是将模型输出的对数概率与真实标签之间的差异最小化,从而使模型更好地拟合数据。
具体地,`nn.NLLLoss()`计算的是负对数似然损失(negative log-likelihood loss),即将模型预测值对数概率取负并求和后的结果,公式如下:
$$\text{NLLLoss}=-\sum_{i=1}^ny_i\log(\hat{y_i})$$
其中,$y_i$表示真实标签的one-hot编码,$\hat{y_i}$表示模型输出的对数概率。这个公式也可以写成矩阵形式:
$$\text{NLLLoss}=-\frac{1}{N}\sum_{i=1}^N\sum_{j=1}^C y_{ij}\log(\hat{y_{ij}})$$
其中,$N$表示样本数量,$C$表示类别数量,$y_{ij}$表示第$i$个样本属于第$j$个类别的one-hot编码,$\hat{y_{ij}}$表示模型输出的第$i$个样本属于第$j$个类别的对数概率。
总之,`nn.NLLLoss()`是一个非常常用的损失函数,特别适用于多分类问题中。
阅读全文