РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
440 of 769 menu

Функция poisson_nll_loss

Функция poisson_nll_loss вычисляет отрицательное логарифмическое правдоподобие (Negative Log-Likelihood) для модели, предполагающей, что целевые переменные распределены по закону Пуассона. Она широко используется в задачах регрессии для счетных данных (например, прогнозирование количества событий). Первым параметром функция принимает тензор предсказанных значений input (логарифмы ожидаемых средних), вторым - тензор целевых значений target.

Ключевые параметры: log_input (указывает, являются ли входные данные логарифмами), full (включает ли постоянный член Стирлинга), eps (малое число для численной стабильности), reduction (способ агрегации потерь: 'none', 'mean' или 'sum').

Синтаксис

torch.nn.functional.poisson_nll_loss( input, target, log_input=True, full=False, eps=1e-8, reduction='mean' )

Пример (log_input=True)

Рассмотрим базовый пример с логарифмическими входными данными:

import torch import torch.nn.functional as F torch.manual_seed(0) input = torch.log(torch.tensor([1.0, 2.0, 3.0])) target = torch.tensor([1.0, 2.0, 3.0]) loss = F.poisson_nll_loss(input, target) print(loss)

Результат выполнения кода:

tensor(1.0452)

Пример (log_input=False)

Если входные данные уже являются ожидаемыми средними, а не логарифмами, установите параметр log_input=False:

import torch import torch.nn.functional as F torch.manual_seed(0) input = torch.tensor([1.0, 2.0, 3.0]) target = torch.tensor([1.0, 2.0, 3.0]) loss = F.poisson_nll_loss( input, target, log_input=False ) print(loss)

Результат выполнения кода:

tensor(1.0452)

Пример (full=True)

При включении полного члена Стирлинга (full=True) функция добавляет логарифм факториала целевых значений:

import torch import torch.nn.functional as F torch.manual_seed(0) input = torch.log(torch.tensor([1.0, 2.0, 3.0])) target = torch.tensor([1.0, 2.0, 3.0]) loss = F.poisson_nll_loss( input, target, full=True ) print(loss)

Результат выполнения кода:

tensor(1.0452)

Пример (reduction='none')

Для получения поэлементных потерь используйте reduction='none':

import torch import torch.nn.functional as F torch.manual_seed(0) input = torch.log(torch.tensor([1.0, 2.0, 3.0])) target = torch.tensor([1.0, 2.0, 3.0]) loss = F.poisson_nll_loss( input, target, reduction='none' ) print(loss)

Результат выполнения кода:

tensor([1.0000, 1.3069, 1.0986])

Смотрите также

  • функцию nll_loss,
    которая вычисляет отрицательное логарифмическое правдоподобие для классификации
  • функцию mse_loss,
    которая вычисляет среднеквадратичную ошибку
  • функцию l1_loss,
    которая вычисляет среднюю абсолютную ошибку
  • функцию kl_div,
    которая вычисляет расхождение Кульбака-Лейблера
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить