Spec-Zone.ru › PyTorch 1

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/1.13/generated/torch.nn.MarginRankingLoss.html

Spec-Zone.ru

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