Spec-Zone.ru › PyTorch 2.14

PoissonNLLLoss

class torch.nn.modules.loss.PoissonNLLLoss(log_input=True, full=False, size_average=None, eps=1e-08, reduce=None, reduction='mean') [исходный код]

Функция потерь отрицательного логарифмического правдоподобия для распределения Пуассона целевого значения.

Функцию потерь можно описать следующим образом:

target∼Poisson(input)loss(input,target)=input−target∗log⁡(input)+log⁡(target!)\text{target} \sim \mathrm{Poisson}(\text{input}) \text{loss}(\text{input}, \text{target}) = \text{input} - \text{target} * \log(\text{input}) + \log(\text{target!})

Последнее слагаемое можно опустить или аппроксимировать с помощью формулы Стирлинга. Аппроксимация используется для целевых значений больше 1. Для целевых значений меньше или равных 1 к функции потерь добавляются нули.

Параметры:
  • log_input (bool, необязательно) – если True, функция потерь вычисляется как exp⁡(input)−target∗input\exp(\text{input}) - \text{target}*\text{input}, если False, функция потерь равна input−target∗log⁡(input+eps)\text{input} - \text{target}*\log(\text{input}+\text{eps}).
  • full (bool, необязательно) –

    следует ли вычислять полную функцию потерь, то есть добавлять слагаемое с аппроксимацией Стирлинга

    target∗log⁡(target)−target+0.5∗log⁡(2πtarget).\text{target}*\log(\text{target}) - \text{target} + 0.5 * \log(2\pi\text{target}).
  • size_average (bool, необязательно) – Устарел (см. reduction). По умолчанию потери усредняются по каждому элементу потерь в пакете. Обратите внимание, что для некоторых функций потерь на один образец приходится несколько элементов. Если для поля size_average задано значение False, потери вместо этого суммируются для каждого мини-пакета. Игнорируется, если reduce равно False. По умолчанию: True
  • eps (float, необязательно) – Малое значение, предотвращающее вычисление log⁡(0)\log(0), когда log_input = False. По умолчанию: 1e-8
  • reduce (bool, необязательно) – Устарел (см. reduction). По умолчанию потери усредняются или суммируются по наблюдениям в каждом мини-пакете в зависимости от size_average. Если reduce равно False, вместо этого возвращается потеря для каждого элемента пакета, а size_average игнорируется. По умолчанию: True
  • reduction (str, необязательно) – Задает способ сведения выходных данных: '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', то (∗)(*), той же формы, что и входные данные.
forward(log_input, target) [исходный код]

Выполняет прямой проход.

Тип возвращаемого значения:

Tensor

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.modules.loss.PoissonNLLLoss.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API