MultiLabelMarginLoss
-
class torch.nn.MultiLabelMarginLoss(size_average=None, reduce=None, reduction='mean')[source] -
Создаёт критерий, который оптимизирует потерю отсечения для многоклассовой многоклассовой классификации (потеря на основе отступа) между входом (двумерная мини-группа
Tensor) и выходом (который является двумернымTensorиндексов целевого класса). Для каждого образца в мини-группе:где , , , и для всех и .
и должны иметь одинаковый размер.
Критерий рассматривает только непрерывный блок неотрицательных целевых значений, который начинается с начала.
Это позволяет различным образцам иметь переменное количество целевых классов.
- Parameters
-
-
size_average (bool, optional) – Deprecated (see
reduction). По умолчанию потери усредняются по каждому элементу потерь в пакете. Обратите внимание, что для некоторых потерь существует несколько элементов на образец. Если полеsize_averageустановлено вFalse, потери суммируются для каждой мини-группы. Игнорируется, когдаreduceравноFalse. По умолчанию:True -
reduce (bool, optional) – Deprecated (see
reduction). По умолчанию потери усредняются или суммируются по наблюдениям для каждой мини-группы в зависимости отsize_average. КогдаreduceравноFalse, возвращает потерю на элемент пакета и игнорируетsize_average. По умолчанию:True -
reduction (str, optional) – Указывает на применение уменьшения к выводу:
'none'|'mean'|'sum'.'none': уменьшение не будет применено,'mean': сумма вывода будет разделена на количество элементов в выводе,'sum': вывод будет суммирован. Примечание:size_averageиreduceнаходятся в процессе устаревания, и пока что указание любого из этих двух аргументов переопределитreduction. По умолчанию:'mean'
-
size_average (bool, optional) – Deprecated (see
- Shape:
-
- Input: или , где
N— размер пакета, аC— количество классов. - Target: или , целевые метки, дополненные -1, обеспечивая одинаковую форму с входом.
- Output: скаляр. Если
reductionравно'none', то .
- Input: или , где
Примеры:
>>> loss = nn.MultiLabelMarginLoss() >>> x = torch.FloatTensor([[0.1, 0.2, 0.4, 0.8]]) >>> # for target y, only consider labels 3 and 0, not after label -1 >>> y = torch.LongTensor([[3, 0, -1, 1]]) >>> # 0.25 * ((1-(0.1-0.2)) + (1-(0.1-0.4)) + (1-(0.8-0.2)) + (1-(0.8-0.4))) >>> loss(x, y) tensor(0.85...)
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.nn.MultiLabelMarginLoss.html