Spec-Zone.ru › PyTorch 2.14

MarginRankingLoss

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

Создает функцию потерь, вычисляющую значение потерь для входных данных x1x1, x2x2 — двух одномерных мини-пакетов или скаляров Tensors размерности 0, а также метки — одномерного мини-пакета или скаляра Tensor размерности 0 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()
forward(input1, input2, target) [source]

Выполняет прямой проход.

Тип возвращаемого значения:

Tensor

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

Spec-Zone.ru

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