HingeEmbeddingLoss
-
class torch.nn.HingeEmbeddingLoss(margin=1.0, size_average=None, reduce=None, reduction='mean')[source] -
Вычисляет функцию потерь для входного тензора и тензора меток (содержащего 1 или -1). Обычно эта функция используется для определения того, являются ли два входных значения похожими или различными, например, с использованием попарного L1-расстояния в качестве , и, как правило, применяется для обучения нелинейным встраиваниям или в обучении с частичным привлечением учителя.
Функция потерь для -го образца в мини-пакете имеет вид
а общая функция потерь равна
где .
- Параметры:
-
-
margin (float, необязательно) – Значение по умолчанию:
1. -
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'
-
margin (float, необязательно) – Значение по умолчанию:
- Форма:
-
- Входные данные: , где означает любое количество измерений. Операция суммирования выполняется по всем элементам.
- Целевые данные: , той же формы, что и входные данные
- Выходные данные: скаляр. Если
reductionравно'none', то имеет ту же форму, что и входные данные
Примеры
>>> loss = nn.HingeEmbeddingLoss() >>> input = torch.randn(3, 5, requires_grad=True) >>> target = torch.randn(3, 5).sign() >>> output = loss(input, target) >>> output.backward()
-
forward(input, 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.HingeEmbeddingLoss.html