Spec-Zone.ru › PyTorch 2.14

MarginRankingLoss

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

Создаёт функцию потерь, которая вычисляет значение потерь для входных данных x1x1, x2x2, двух одномерных мини-пакетов или скалярных Tensors и целевой метки в виде одномерного мини-пакета или скалярного 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()
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.modules.loss.MarginRankingLoss.html

Spec-Zone.ru

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