快捷方式

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]

計算負對數概似損失 (negative log likelihood loss)。

詳情請參閱 NLLLoss

參數
  • input (Tensor) – (N,C)(N, C) 其中 C = 類別數量(N,C,H,W)(N, C, H, W) (如果是 2D Loss 的情況) 或 (N,C,d1,d2,...,dK)(N, C, d_1, d_2, ..., d_K) (如果是 K 維度 loss 的情況)。 input 預期為對數機率 (log-probabilities)。

  • target (Tensor) – (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 (bool, 可選) – 已棄用 (請參閱 reduction)。預設情況下,損失會針對批次中的每個損失元素進行平均。請注意,對於某些損失,每個樣本有多個元素。如果欄位 size_average 設定為 False,則會將每個小批次的損失加總。當 reduce 為 False 時會忽略。預設值:True

  • ignore_index (int, 可選) – 指定一個要忽略的目標值,且不影響輸入梯度。當 size_averageTrue 時,損失會對非忽略的目標進行平均。預設值:-100

  • reduce (bool, 可選) – 已棄用 (請參閱 reduction)。預設情況下,會根據 size_average,對每個小批次的觀察值進行平均或加總。當 reduceFalse 時,會改為傳回每個批次元素的損失,並忽略 size_average。預設值:True

  • reduction (str, 可選) – 指定要套用至輸出的 reduction 方式:'none' | 'mean' | 'sum''none':不會套用 reduction,'mean':輸出的總和會除以輸出中的元素數量,'sum':輸出會被加總。注意:size_averagereduce 正在逐步淘汰中,在此期間,指定這兩個參數中的任何一個都會覆寫 reduction。預設值:'mean'

傳回類型

Tensor

範例

>>> # 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 的完整開發人員文件

檢視文件

教學課程

取得針對初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得您的問題解答

檢視資源