GaussianNLLLoss
-
class torch.nn.GaussianNLLLoss(*, full=False, eps=1e-06, reduction='mean')[исходный код] -
Отрицательная логарифмическая функция правдоподобия Гаусса.
Целевые значения рассматриваются как выборки из гауссовых распределений с математическими ожиданиями и дисперсиями, предсказанными нейронной сетью. Для тензора
target, моделируемого гауссовым распределением с тензором математических ожиданийinputи тензором положительных дисперсийvarфункция потерь имеет вид:где
epsиспользуется для обеспечения стабильности. По умолчанию постоянный член функции потерь опускается, если толькоfullне равноTrue. Если размерvarне совпадает с размеромinput(в силу предположения о гомоскедастичности), для корректного broadcasting он должен иметь либо последнюю размерность, равную 1, либо на одну размерность меньше (при совпадении всех остальных размеров).- Параметры:
-
-
full (bool, необязательный) – включать ли постоянный член в вычисление функции потерь. Значение по умолчанию:
False. -
eps (float, необязательный) – значение, используемое для ограничения
var(см. примечание ниже) с целью обеспечения стабильности. Значение по умолчанию: 1e-6. -
reduction (str, необязательный) – задаёт способ сведения выходных значений:
'none'|'mean'|'sum'.'none': сведение не выполняется,'mean': выходное значение — среднее значение функции потерь по всем элементам пакета,'sum': выходное значение — сумма значений функции потерь по всем элементам пакета. Значение по умолчанию:'mean'.
-
full (bool, необязательный) – включать ли постоянный член в вычисление функции потерь. Значение по умолчанию:
- Форма:
-
- Вход: или , где означает любое количество дополнительных размерностей
- Целевое значение: или : той же формы, что и вход, либо той же формы, что и вход, но с одной размерностью, равной 1 (для поддержки broadcasting)
- Дисперсия: или : той же формы, что и вход, либо той же формы, что и вход, но с одной размерностью, равной 1, либо той же формы, что и вход, но на одну размерность меньше (для поддержки broadcasting), либо скалярное значение
- Выход: скаляр, если
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. and Weigend, A. S., “Estimating the mean and variance of the target probability distribution”, Proceedings of 1994 IEEE International Conference on Neural Networks (ICNN’94), Orlando, FL, USA, 1994, pp. 55-60 vol.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.GaussianNLLLoss.html