Функция F.l1_loss
Функция F.l1_loss вычисляет L1-потерю (среднее абсолютное отклонение) между элементами двух тензоров. Первым параметром функция принимает тензор предсказаний, вторым параметром - тензор целевых значений. Третьим параметром можно указать режим суммирования: 'mean' (по умолчанию) или 'sum'. Четвёртым параметром можно передать размер пакета для нормализации.
Синтаксис
torch.nn.functional.l1_loss(input, target, reduction='mean')
Пример
Давайте вычислим L1-потерю между двумя одномерными тензорами с режимом 'mean':
import torch
import torch.nn.functional as F
t_input = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
t_target = torch.tensor([1.5, 2.5, 3.5, 4.5, 5.5])
res = F.l1_loss(t_input, t_target)
print(res)
Результат выполнения кода:
tensor(0.5000)
Пример
Вычислим L1-потерю в режиме 'sum':
import torch
import torch.nn.functional as F
t_input = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
t_target = torch.tensor([1.5, 2.5, 3.5, 4.5, 5.5])
res = F.l1_loss(t_input, t_target, reduction='sum')
print(res)
Результат выполнения кода:
tensor(2.5000)
Пример
Рассмотрим вычисление L1-потери для двумерных тензоров с режимом 'mean':
import torch
import torch.nn.functional as F
t_input = torch.tensor([
[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
])
t_target = torch.tensor([
[2.0, 3.0, 4.0],
[5.0, 6.0, 7.0],
])
res = F.l1_loss(t_input, t_target)
print(res)
Результат выполнения кода:
tensor(1.0000)
Пример
Используем L1-потерь при обучении модели с фиксированным зерном для воспроизводимости:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
t_input = torch.randn(3, 4)
t_target = torch.randn(3, 4)
res = F.l1_loss(t_input, t_target, reduction='mean')
print(res)
Результат выполнения кода:
tensor(1.0173)
Смотрите также
-
функцию
mse_loss,
которая вычисляет среднеквадратичную ошибку -
функцию
smooth_l1_loss,
которая вычисляет сглаженную L1-потерю -
функцию
huber_loss,
которая вычисляет потерю Хубера -
функцию
cross_entropy,
которая вычисляет перекрёстную энтропию