Spec-Zone.ru › PyTorch 2.14

HingeEmbeddingLoss

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

Вычисляет функцию потерь для входного тензора xx и тензора меток yy (содержащего 1 или -1). Обычно эта функция используется для определения того, являются ли два входных значения похожими или различными, например, с использованием попарного L1-расстояния в качестве xx, и, как правило, применяется для обучения нелинейным встраиваниям или в обучении с частичным привлечением учителя.

Функция потерь для nn-го образца в мини-пакете имеет вид

ln={xn,еслиyn=1,max⁡{0,margin−xn},еслиyn=−1,l_n = \begin{cases} x_n, & \text{if}\; y_n = 1,\\ \max \{0, margin - x_n\}, & \text{if}\; y_n = -1, \end{cases}

а общая функция потерь равна

ℓ(x,y)={mean⁡(L),если reduction=‘mean’;sum⁡(L),если reduction=‘sum’.\ell(x, y) = \begin{cases} \operatorname{mean}(L), & \text{if reduction} = \text{`mean';}\\ \operatorname{sum}(L), & \text{if reduction} = \text{`sum'.} \end{cases}

где L={l1,…,lN}⊤L = \{l_1,\dots,l_N\}^\top.

Параметры:
  • 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'
Форма:
  • Входные данные: (∗)(*), где ∗* означает любое количество измерений. Операция суммирования выполняется по всем элементам.
  • Целевые данные: (∗)(*), той же формы, что и входные данные
  • Выходные данные: скаляр. Если 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]

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

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

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.HingeEmbeddingLoss.html

Spec-Zone.ru

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