Spec-Zone.ru › PyTorch 2

MarginRankingLoss

class torch.nn.MarginRankingLoss(margin=0.0, size_average=None, reduce=None, reduction='mean') [source]

Создаёт критерий, который измеряет потерю, учитывая входные данные x1x1, x2x2, два 1D мини-пакета или 0D Tensors, и метку 1D мини-пакет или 0D Tensor yy (содержащую 1 или -1).

Если y=1y = 1, то предполагается, что первый вход должен быть выше по рангу (иметь большее значение), чем второй вход, и наоборот для y=−1y = -1.

Функция потерь для каждой пары образцов в мини-пакете:

loss(x1,x2,y)=max⁡(0,−y∗(x1−x2)+margin)\text{loss}(x1, x2, y) = \max(0, -y * (x1 - x2) + \text{margin})
Параметры
  • margin (float, необязательно) – Значение по умолчанию 00.
  • size_average (bool, необязательно) – Устарело (см. reduction). По умолчанию потери усредняются по каждому элементу потери в пакете. Обратите внимание, что для некоторых потерь есть несколько элементов на образец. Если поле size_average установлено в False, потери суммируются для каждого мини-пакета. Игнорируется, когда reduce равно False. По умолчанию: True
  • reduce (bool, необязательно) – Устарело (см. reduction). По умолчанию потери усредняются или суммируются по наблюдениям для каждого мини-пакета в зависимости от size_average. Когда reduce равно False, возвращает потерю на элемент пакета и игнорирует size_average. По умолчанию: True
  • reduction (str, необязательно) – Указывает на применяемую редукцию к выводу: 'none' | 'mean' | 'sum'. 'none': редукция не применяется, 'mean': сумма вывода делится на количество элементов в выводе, 'sum': вывод суммируется. Примечание: size_average и reduce в процессе устаревания, и пока что указание любого из этих двух аргументов переопределит reduction. По умолчанию: 'mean'
Форма:
  • Вход 1: (N)(N) или ()() где N — размер пакета.
  • Вход 2: (N)(N) или ()(), форма такая же, как у Входа 1.
  • Цель: (N)(N) или ()(), форма такая же, как у входов.
  • Вывод: скаляр. Если reduction равно 'none' и размер входа не ()(), то (N)(N).

Примеры:

>>> loss = nn.MarginRankingLoss()
>>> input1 = torch.randn(3, requires_grad=True)
>>> input2 = torch.randn(3, requires_grad=True)
>>> target = torch.randn(3).sign()
>>> output = loss(input1, input2, target)
>>> output.backward()

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

Spec-Zone.ru

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