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) – 其中 C = 類別數量 或 (如果是 2D Loss 的情況) 或 (如果是 K 維度 loss 的情況)。 input 預期為對數機率 (log-probabilities)。
target (Tensor) – 其中每個值是 ,或是 ,其中 ,適用於 K 維度的損失。
weight (Tensor, 可選) – 手動調整每個類別的權重。如果提供,則必須是大小為 C 的 Tensor
size_average (bool, 可選) – 已棄用 (請參閱
reduction
)。預設情況下,損失會針對批次中的每個損失元素進行平均。請注意,對於某些損失,每個樣本有多個元素。如果欄位size_average
設定為False
,則會將每個小批次的損失加總。當 reduce 為False
時會忽略。預設值:True
ignore_index (int, 可選) – 指定一個要忽略的目標值,且不影響輸入梯度。當
size_average
為True
時,損失會對非忽略的目標進行平均。預設值:-100reduce (bool, 可選) – 已棄用 (請參閱
reduction
)。預設情況下,會根據size_average
,對每個小批次的觀察值進行平均或加總。當reduce
為False
時,會改為傳回每個批次元素的損失,並忽略size_average
。預設值:True
reduction (str, 可選) – 指定要套用至輸出的 reduction 方式:
'none'
|'mean'
|'sum'
。'none'
:不會套用 reduction,'mean'
:輸出的總和會除以輸出中的元素數量,'sum'
:輸出會被加總。注意:size_average
和reduce
正在逐步淘汰中,在此期間,指定這兩個參數中的任何一個都會覆寫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()