GaussianNLLLoss
-
class torch.nn.modules.loss.GaussianNLLLoss(*, full=False, eps=1e-06, reduction='mean')[источник] -
Функция потерь на основе отрицательного логарифма правдоподобия гауссовского распределения.
Целевые значения рассматриваются как выборки из гауссовских распределений с математическими ожиданиями и дисперсиями, предсказанными нейронной сетью. Для тензора
target, моделируемого как гауссовское распределение с тензором математических ожиданийinputи тензором положительных дисперсийvar, функция потерь имеет вид:где
epsиспользуется для обеспечения численной устойчивости. По умолчанию постоянный член функции потерь не учитывается, если толькоfullне равноTrue. Если размерvarотличается от размераinput(из-за предположения о гомоскедастичности), для корректного широковещания его последняя размерность должна быть равна 1 либо он должен иметь на одну размерность меньше (при совпадении размеров всех остальных размерностей).- Параметры:
-
-
full (bool, необязательно) – включать ли постоянный член в вычисление функции потерь. По умолчанию:
False. -
eps (float, необязательно) – значение, используемое для ограничения
var(см. примечание ниже) в целях устойчивости. По умолчанию: 1e-6. -
reduction (str, необязательно) – задаёт способ сведения выходных данных:
'none'|'mean'|'sum'.'none': сведение не выполняется,'mean': выходные данные представляют собой среднее значение потерь для всех элементов пакета,'sum': выходные данные представляют собой сумму потерь для всех элементов пакета. По умолчанию:'mean'.
-
full (bool, необязательно) – включать ли постоянный член в вычисление функции потерь. По умолчанию:
- Форма:
-
- Входные данные: или , где означает любое количество дополнительных размерностей
- Целевые значения: или : той же формы, что и входные данные, или той же формы, что и входные данные, но с одной размерностью, равной 1 (для поддержки широковещания)
- Дисперсия: или : той же формы, что и входные данные, или той же формы, что и входные данные, но с одной размерностью, равной 1, или той же формы, что и входные данные, но на одну размерность меньше (для поддержки широковещания), или скалярное значение
- Выходные данные: скаляр, если
reductionравно'mean'(по умолчанию) или'sum'. Еслиreductionравно'none', то , той же формы, что и входные данные
Примеры
>>> loss = nn.GaussianNLLLoss() >>> input = torch.randn(5, 2, requires_grad=True) >>> target = torch.randn(5, 2) >>> var = torch.ones(5, 2, requires_grad=True) # heteroscedastic >>> output = loss(input, target, var) >>> output.backward()
>>> loss = nn.GaussianNLLLoss() >>> input = torch.randn(5, 2, requires_grad=True) >>> target = torch.randn(5, 2) >>> var = torch.ones(5, 1, requires_grad=True) # homoscedastic >>> output = loss(input, target, var) >>> output.backward()
Примечание
Ограничение
varне учитывается при вычислении градиентов в autograd, поэтому оно не влияет на градиенты.- Ссылка:
-
Nix, D. A. и Weigend, A. S., «Оценка среднего значения и дисперсии целевого распределения вероятностей», Материалы Международной конференции IEEE по нейронным сетям 1994 года (ICNN’94), Орландо, Флорида, США, 1994, с. 55–60, т. 1, doi: 10.1109/ICNN.1994.374138.
-
forward(input, target, var)[источник] -
Выполняет прямой проход.
- Тип возвращаемого значения:
© 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.GaussianNLLLoss.html