GaussianNLLLoss
-
class torch.nn.GaussianNLLLoss(*, full=False, eps=1e-06, reduction='mean')[source] -
Функция потерь гауссова отрицательного логарифма правдоподобия.
Целевые значения рассматриваются как выборки из гауссовых распределений с математическими ожиданиями и дисперсиями, предсказанными нейронной сетью. Для тензора
target, моделируемого как имеющий гауссово распределение с тензором ожиданийinputи тензором положительных дисперсийvar, функция потерь имеет вид:где
epsиспользуется для повышения устойчивости. По умолчанию постоянная часть функции потерь опущена, еслиfullне равноTrue. Еслиvarне совпадает по размеру сinput(из-за гомоскедастического предположения), оно должно либо иметь конечную размерность 1, либо на одну размерность меньше (при сохранении всех других размеров) для правильного вещания.- Параметры
-
-
full (bool, optional) – включать постоянную часть в вычисление потерь. По умолчанию:
False. -
eps (float, optional) – значение, используемое для ограничения
var(см. примечание ниже), для устойчивости. По умолчанию: 1e-6. -
reduction (str, optional) – определяет способ понижения размерности результата:
'none'|'mean'|'sum'.'none': понижение размерности не применяется,'mean': результат — среднее значение потерь для всех элементов пакета,'sum': результат — сумма потерь для всех элементов пакета. По умолчанию:'mean'.
-
full (bool, optional) – включать постоянную часть в вычисление потерь. По умолчанию:
- Форма:
-
- Вход: или , где означает любое количество дополнительных измерений
- Цель: или , та же форма, что и вход, или такая же форма, что и вход, но с одним измерением равным 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 по нейронным сетям (ICNN’94), Орландо, ФЛ, США, 1994, с. 55-60 т.1, doi: 10.1109/ICNN.1994.374138.
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.nn.GaussianNLLLoss.html