РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
536 of 769 menu

Класс L1Loss

Класс L1Loss создаёт критерий, который измеряет среднюю абсолютную ошибку (MAE) между каждым элементом в входном тензоре и соответствующим элементом в целевом тензоре. Первым параметром конструктор принимает режим редукции reduction, который определяет способ агрегации ошибок по элементам. Возможные значения: 'mean', 'sum' и 'none'.

Синтаксис

torch.nn.L1Loss(reduction='mean')

Пример

Давайте создадим экземпляр класса L1Loss и вычислим потерю между двумя небольшими тензорами:

import torch import torch.nn as nn loss = nn.L1Loss() x = torch.tensor([1.0, 2.0, 3.0]) y = torch.tensor([1.5, 2.5, 3.5]) res = loss(x, y) print(res)

Результат выполнения кода:

tensor(0.5000)

Пример

Теперь рассмотрим работу с параметром reduction='sum', который суммирует абсолютные ошибки по всем элементам:

import torch import torch.nn as nn loss = nn.L1Loss(reduction='sum') x = torch.tensor([1.0, 2.0, 3.0]) y = torch.tensor([1.5, 2.5, 3.5]) res = loss(x, y) print(res)

Результат выполнения кода:

tensor(1.5000)

Пример

Если установить reduction='none', функция вернёт тензор с поэлементными абсолютными ошибками без агрегации:

import torch import torch.nn as nn loss = nn.L1Loss(reduction='none') x = torch.tensor([1.0, 2.0, 3.0]) y = torch.tensor([1.5, 2.5, 3.5]) res = loss(x, y) print(res)

Результат выполнения кода:

tensor([0.5000, 0.5000, 0.5000])

Пример

Также L1Loss поддерживает работу с двумерными батчами, что часто встречается в задачах регрессии:

import torch import torch.nn as nn loss = nn.L1Loss() x = torch.tensor([ [0.1, 0.2, 0.3], [0.4, 0.5, 0.6], ]) y = torch.tensor([ [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], ]) res = loss(x, y) print(res)

Результат выполнения кода:

tensor(0.3500)

Смотрите также

  • функцию MSELoss,
    которая вычисляет среднеквадратичную ошибку (MSE) между элементами входного и целевого тензоров
  • класс SmoothL1Loss,
    который сочетает преимущества L1 и L2 потерь для устойчивости к выбросам
  • класс HuberLoss,
    который вычисляет комбинированную потерю, устойчивую к выбросам
  • класс CrossEntropyLoss,
    который вычисляет перекрёстную энтропию для задач классификации
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить