MultiLabelSoftMarginLoss
-
class torch.nn.modules.loss.MultiLabelSoftMarginLoss(weight=None, size_average=None, reduce=None, reduction='mean')[source] -
Создает функцию потерь, оптимизирующую многометочную функцию потерь по принципу «один против всех» на основе максимальной энтропии между входом и целевым значением размера . Для каждого образца в мини-пакете:
где , .
- Параметры:
-
-
weight (Tensor, необязательно) – вес ручного масштабирования, назначаемый каждому классу. Если указан, это должен быть тензор размера
C. В противном случае считается, что все его элементы равны единице. -
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'
-
weight (Tensor, необязательно) – вес ручного масштабирования, назначаемый каждому классу. Если указан, это должен быть тензор размера
- Форма:
-
- Вход: , где
N— размер пакета, аC— количество классов. - Целевое значение: , целевые метки должны иметь ту же форму, что и входные данные.
- Выход: скаляр. Если
reductionравно'none', то .
- Вход: , где
Примеры
>>> loss = nn.MultiLabelSoftMarginLoss() >>> input = torch.randn(3, 5, requires_grad=True) >>> target = torch.empty(3, 5).random_(2) >>> 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.modules.loss.MultiLabelSoftMarginLoss.html