Spec-Zone.ru › PyTorch 1

HuberLoss

class torch.nn.HuberLoss(reduction='mean', delta=1.0) [source]

Создаёт критерий, который использует квадратный член, если абсолютная элементная ошибка меньше дельта, и член L1, масштабированный на дельта, в противном случае. Этот критерий объединяет преимущества и L1Loss, и MSELoss; область L1, масштабированная на дельта, делает критерий менее чувствительным к выбросам, чем MSELoss, а область L2 обеспечивает гладкость по сравнению с L1Loss вблизи 0. См. Huber loss для получения дополнительной информации.

Для пакета размером NN нео́б́ра́ботанная функция потерь может быть описана как:

ℓ(x,y)=L={l1,...,lN}T\ell(x, y) = L = \{l_1, ..., l_N\}^T

с

ln={0.5(xn−yn)2,если ∣xn−yn∣<deltadelta∗(∣xn−yn∣−0.5∗delta),в противном случае l_n = \begin{cases} 0.5 (x_n - y_n)^2, & \text{если } |x_n - y_n| < delta \\ delta * (|x_n - y_n| - 0.5 * delta), & \text{в противном случае } \end{cases}

Если reduction не none, то:

ℓ(x,y)={mean⁡(L),если reduction=‘mean’;sum⁡(L),если reduction=‘sum’.\ell(x, y) = \begin{cases} \operatorname{mean}(L), & \text{if reduction} = \text{`mean';}\\ \operatorname{sum}(L), & \text{if reduction} = \text{`sum'.} \end{cases}

Примечание

Когда delta установлено в 1, эта функция потерь эквивалентна SmoothL1Loss. В общем случае, эта функция потерь отличается от SmoothL1Loss на множитель дельта (также известный как beta в Smooth L1). См. SmoothL1Loss для дополнительного обсуждения различий в поведении между двумя функциями потерь.

Параметры:
  • reduction (str, необязательно) – Указывает операцию агрегирования, применяемую к результату: 'none' | 'mean' | 'sum'. 'none': не применяется агрегирование, 'mean': сумма результата делится на количество элементов в результате, 'sum': результат суммируется. По умолчанию: 'mean'
  • delta (float, необязательно) – Указывает порог, по которому меняется между L1 и L2 потерями, масштабированными на дельта. Значение должно быть положительным. По умолчанию: 1.0
Форма:
  • Вход: (∗)(*), где ∗* означает любое количество измерений.
  • Цель: (∗)(*), форма такая же, как у входа.
  • Вывод: скаляр. Если reduction является 'none', то (∗)(*), форма такая же, как у входных данных.

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.nn.HuberLoss.html

Spec-Zone.ru

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