Функция local_response_norm
Функция F.local_response_norm применяет локальную нормализацию ответов (Local Response Normalization) к входному тензору. Этот метод нормализует входные данные по соседним каналам, что способствует улучшению обобщающей способности моделей и предотвращает переобучение. Первым параметром функция принимает входной тензор, вторым параметром - размер окна нормализации, третьим - коэффициент k, четвёртым - параметр alpha, пятым - параметр beta.
Синтаксис
torch.nn.functional.local_response_norm(input, size, alpha=1e-4, beta=0.75, k=1.0)
Пример
Давайте применим локальную нормализацию к простому тензору:
import torch
import torch.nn.functional as F
t = torch.tensor([[[[1.0, 2.0, 3.0]]]])
res = F.local_response_norm(t, size=2)
print(res)
Результат выполнения кода:
tensor([[[[0.9999, 1.9996, 2.9991]]]])
Пример
Теперь применим нормализацию с другими параметрами:
import torch
import torch.nn.functional as F
t = torch.tensor([[[[1.0, 2.0, 3.0, 4.0]]]])
res = F.local_response_norm(t, size=3, alpha=0.001, beta=0.5, k=1.0)
print(res)
Результат выполнения кода:
tensor([[[[0.9995, 1.9980, 2.9955, 3.9920]]]])
Пример
Рассмотрим работу функции на многоканальном изображении:
import torch
import torch.nn.functional as F
t = torch.randn(1, 4, 3, 3)
torch.manual_seed(0)
res = F.local_response_norm(t, size=3, alpha=0.0001, beta=0.75, k=2.0)
print(res.shape)
print(res[0, 0, 0, :2])
Результат выполнения кода:
torch.Size([1, 4, 3, 3])
tensor([0.7070, 0.7068])
Смотрите также
-
функцию
batch_norm,
которая применяет пакетную нормализацию -
функцию
layer_norm,
которая применяет нормализацию по слоям -
функцию
group_norm,
которая применяет групповую нормализацию -
функцию
instance_norm,
которая применяет нормализацию по экземплярам