MarginRankingLoss
-
class torch.nn.MarginRankingLoss(margin=0.0, size_average=None, reduce=None, reduction='mean')[source] -
Создает функцию потерь, вычисляющую значение потерь для входных данных , — двух одномерных мини-пакетов или скаляров
Tensorsразмерности 0, а также метки — одномерного мини-пакета или скаляраTensorразмерности 0 (содержащего 1 или -1).Если , предполагается, что первый вход должен иметь более высокий ранг (то есть большее значение), чем второй, и наоборот для .
Функция потерь для каждой пары образцов в мини-пакете:
- Параметры:
-
- margin (float, необязательно) – Значение по умолчанию — .
-
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— размер пакета. - Вход 2: или , той же формы, что и Вход 1.
- Целевое значение: или , той же формы, что и входные данные.
- Выходные данные: скаляр. Если
reductionравно'none', а размер входных данных не равен , форма выходных данных — .
- Вход 1: или , где
Примеры
>>> 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] -
Выполняет прямой проход.
- Тип возвращаемого значения:
© 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