PoissonNLLLoss¶
- class torch.nn.PoissonNLLLoss(log_input=True, full=False, size_average=None, eps=1e-08, reduce=None, reduction='mean')[source][source]¶
使用泊松分佈作為目標負對數似然損失。
損失可以描述為
最後一項可以省略,或者用斯特林公式近似。對於目標值大於 1 的情況,使用近似值。對於小於或等於 1 的目標,損失中會加上零。
- 引數
log_input (bool, optional) – 如果為
True,則損失計算為 ,如果為False,則損失計算為 。full (bool, optional) –
是否計算完整損失,即新增斯特林近似項
size_average (bool, optional) – 已棄用(參見
reduction)。預設情況下,損失會平均到批次中的每個損失元素上。請注意,對於某些損失,每個樣本有多個元素。如果size_average欄位設定為False,則損失將改為對每個小批次求和。當reduce為False時忽略此引數。預設值:Trueeps (float, optional) – 一個用於避免在
log_input = False時計算 的小值。預設值:1e-8reduce (bool, optional) – 已棄用(參見
reduction)。預設情況下,根據size_average對每個小批次的觀測值求平均或求和。當reduce為False時,返回每個批次元素的損失,並忽略size_average。預設值:Truereduction (str, optional) – 指定應用於輸出的歸約方式:
'none'|'mean'|'sum'。'none':不應用歸約,'mean':輸出的總和將除以輸出中的元素數量,'sum':輸出將求和。注意:size_average和reduce正在被棄用,同時,指定這兩個引數中的任何一個將覆蓋reduction。預設值:'mean'
示例
>>> loss = nn.PoissonNLLLoss() >>> log_input = torch.randn(5, 2, requires_grad=True) >>> target = torch.randn(5, 2) >>> output = loss(log_input, target) >>> output.backward()
- 形狀
輸入:,其中 表示任意維度數。
目標:,與輸入形狀相同。
輸出:預設為標量。如果
reduction是'none',則形狀為 ,與輸入形狀相同。