快捷键

torch.nn.functional.nll_loss

torch.nn.functional.nll_loss(input, target, weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean')[source][source] ¶

计算负对数似然损失。

详细内容请见 NLLLoss

参数:
  • 输入(张量)- (N,C)(N, C) 其中 C = 类别数量,或 (N,C,H,W)(N, C, H, W) 在 2D 损失的情况下,或 (N,C,d1,d2,...,dK)(N, C, d_1, d_2, ..., d_K)K1K \geq 1 的情况下,即 K 维损失。输入应为对数概率。

  • 目标(张量)- (N)(N) 其中每个值是 0targets[i]C10 \leq \text{targets}[i] \leq C-1 ,或 (N,d1,d2,...,dK)(N, d_1, d_2, ..., d_K)K1K \geq 1 的情况下,即 K 维损失。

  • weight (Tensor, 可选) – 每个类分配的手动缩放权重。如果提供,则必须是一个大小为 C 的 Tensor。

  • size_average(布尔值,可选)- 已弃用(参见 reduction )。默认情况下,损失在批次的每个损失元素上平均。注意,对于某些损失,每个样本可能有多个元素。如果字段 size_average 设置为 False ,则损失将改为每个小批量求和。当 reduce 为 False 时忽略。默认值: True

  • ignore_index(整数,可选)- 指定一个被忽略的目标值,该值不参与输入梯度。当 size_averageTrue 时,损失将在非忽略的目标上平均。默认:-100

  • reduce(布尔值,可选)- 已弃用(参见 reduction )。默认情况下,损失会在每个 minibatch 的观测上平均或求和,具体取决于 size_average 。当 reduceFalse 时,将返回每个批次的损失,并忽略 size_average 。默认: True

  • reduction(字符串,可选)- 指定应用于输出的缩减方式: 'none' | 'mean' | 'sum''none' :不应用缩减, 'mean' :输出总和将除以输出中的元素数量, 'sum' :输出将被求和。注意: size_averagereduce 正在被弃用,在此期间,指定这两个参数之一将覆盖 reduction 。默认: 'mean'

返回类型:

张量

示例:

>>> # input is of size N x C = 3 x 5
>>> input = torch.randn(3, 5, requires_grad=True)
>>> # each element in target has to have 0 <= value < C
>>> target = torch.tensor([1, 0, 4])
>>> output = F.nll_loss(F.log_softmax(input, dim=1), target)
>>> output.backward()

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源