F.layer_norm
Функция F.layer_norm применяет нормализацию слоя
(layer normalization) к входному тензору. Она вычисляет среднее
и дисперсию по указанным размерностям и нормализует входные
данные, затем применяет масштабирование и сдвиг. Параметры
функции: input - входной тензор произвольной формы,
normalized_shape - форма нормализуемых размерностей,
weight и bias - опциональные обучаемые параметры
масштаба и сдвига, eps - константа для численной
стабильности (по умолчанию 1e-5).
Синтаксис
torch.nn.functional.layer_norm(input, normalized_shape, weight=None, bias=None, eps=1e-5)
Пример
Выполним нормализацию слоя для одномерного тензора с параметрами по умолчанию:
import torch
import torch.nn.functional as F
t = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
res = F.layer_norm(t, normalized_shape=t.shape)
print(res)
Результат выполнения кода:
tensor([-1.4142, -0.7071, 0.0000, 0.7071, 1.4142])
Пример
Выполним нормализацию слоя для двумерного тензора с указанием нормализуемой размерности:
import torch
import torch.nn.functional as F
t = torch.tensor([
[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
])
res = F.layer_norm(t, normalized_shape=(3,))
print(res)
Результат выполнения кода:
tensor([
[-1.2247, 0.0000, 1.2247],
[-1.2247, 0.0000, 1.2247],
])
Пример
Используем параметры масштаба weight и сдвига bias
для преобразования нормализованных данных:
import torch
import torch.nn.functional as F
t = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
weight = torch.tensor([0.5, 1.0, 1.5, 2.0, 2.5])
bias = torch.tensor([0.0, 1.0, 2.0, 3.0, 4.0])
res = F.layer_norm(t, normalized_shape=t.shape, weight=weight, bias=bias)
print(res)
Результат выполнения кода:
tensor([-0.7071, 0.2929, 2.0000, 4.4142, 7.5355])
Пример
Изменим значение eps для повышения численной стабильности
при работе с малыми значениями:
import torch
import torch.nn.functional as F
t = torch.tensor([1e-8, 2e-8, 3e-8, 4e-8, 5e-8])
res = F.layer_norm(t, normalized_shape=t.shape, eps=1e-10)
print(res)
Результат выполнения кода:
tensor([-1.4142, -0.7071, 0.0000, 0.7071, 1.4142])
Смотрите также
-
функцию
batch_norm,
которая выполняет пакетную нормализацию -
функцию
group_norm,
которая выполняет групповую нормализацию -
функцию
instance_norm,
которая выполняет нормализацию экземпляра -
функцию
local_response_norm,
которая выполняет локальную нормализацию ответа