CosineEmbeddingLoss
-
class torch.nn.CosineEmbeddingLoss(margin=0.0, size_average=None, reduce=None, reduction='mean')[исходный код] -
Создаёт функцию потерь, вычисляющую значение потерь по входным тензорам , и метке
Tensorсо значениями 1 или -1. Используйте (), чтобы максимизировать косинусное сходство двух входных данных, и () в противном случае. Обычно используется для обучения нелинейным эмбеддингам или в обучении с частичным привлечением учителя.Функция потерь для каждого примера:
- Параметры:
-
-
margin (float, необязательный) – Должно быть числом от до ; рекомендуется значение от до . Если
marginне задан, используется значение по умолчанию . -
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, необязательный) – Должно быть числом от до ; рекомендуется значение от до . Если
- Форма:
-
- Входной тензор 1: или , где
N— размер пакета, аD— размерность эмбеддинга. - Входной тензор 2: или , той же формы, что и входной тензор 1.
- Целевой тензор: или .
- Выходные данные: если
reductionравно'none', то , иначе скаляр.
- Входной тензор 1: или , где
Примеры
>>> loss = nn.CosineEmbeddingLoss() >>> input1 = torch.randn(3, 5, requires_grad=True) >>> input2 = torch.randn(3, 5, requires_grad=True) >>> target = torch.ones(3) >>> output = loss(input1, input2, target) >>> output.backward()
-
forward(input1, input2, target)[исходный код] -
Выполняет прямой проход.
- Тип возвращаемого значения:
© 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.CosineEmbeddingLoss.html