Класс 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,
который вычисляет перекрёстную энтропию для задач классификации