Spec-Zone.ru › PyTorch 2

HuberLoss

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

Создаёт критерий, использующий квадратную функцию, если абсолютная элементная ошибка меньше дельта, и в противном случае — L1-функцию, масштабированную с помощью дельта. Этот критерий объединяет преимущества L1Loss и MSELoss; область L1, масштабированная с помощью дельта, делает критерий менее чувствительным к выбросам, чем MSELoss, а область L2 обеспечивает гладкость по сравнению с L1Loss вблизи 0. Подробнее об Huber loss см. 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}

Примечание

Когда дельта установлена в 1, эта потеря эквивалентна SmoothL1Loss. В общем случае эта потеря отличается от SmoothL1Loss на коэффициент дельта (также известный как бета в 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/2.1/generated/torch.nn.HuberLoss.html

Spec-Zone.ru

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