LayerNorm
-
class torch.nn.modules.normalization.LayerNorm(normalized_shape, eps=1e-05, elementwise_affine=True, bias=True, device=None, dtype=None)[исходный код] -
Применяет нормализацию слоя к мини-пакету входных данных.
Этот слой реализует операцию, описанную в статье Layer Normalization
Среднее значение и стандартное отклонение вычисляются по последним
Dизмерениям, гдеD— это размерностьnormalized_shape. Например, еслиnormalized_shape— это(3, 5)(двумерная форма), среднее значение и стандартное отклонение вычисляются по последним 2 измерениям входных данных (т. е.input.mean((-2, -1))). и — обучаемые параметры аффинного преобразования дляnormalized_shape, еслиelementwise_affine— этоTrue. Дисперсия вычисляется с помощью смещённой оценки, эквивалентнойtorch.var(input, correction=0).Примечание
В отличие от пакетной нормализации и нормализации экземпляров, которые применяют скалярные масштабирование и смещение ко всему каналу/плоскости при параметре
affine, нормализация слоя применяет масштабирование и смещение к каждому элементу при параметреelementwise_affine.Этот слой использует статистику, вычисленную по входным данным, как в режиме обучения, так и в режиме оценки.
- Параметры:
-
-
normalized_shape (int или list или torch.Size) –
форма входных данных для ожидаемого входа размера
Если используется одно целое число, оно рассматривается как список из одного элемента, и этот модуль выполняет нормализацию по последнему измерению, которое, как ожидается, будет иметь указанный размер.
- eps (float) – значение, добавляемое к знаменателю для численной устойчивости. Значение по умолчанию: 1e-5
-
elementwise_affine (bool) – логическое значение; если задано
True, модуль имеет обучаемые поэлементные аффинные параметры, инициализированные единицами (для весов) и нулями (для смещений). Значение по умолчанию:True -
bias (bool) – Если задано
False, слой не будет обучать аддитивное смещение (имеет значение, только еслиelementwise_affine—True). Значение по умолчанию:True
-
- Переменные:
-
-
weight – обучаемые веса модуля формы , если
elementwise_affineзадано какTrue. Значения инициализируются единицей. -
bias – обучаемое смещение модуля формы , если
elementwise_affineзадано какTrue. Значения инициализируются нулём.
-
weight – обучаемые веса модуля формы , если
- Форма:
-
- Вход:
- Выход: (та же форма, что и у входа)
Примеры:
>>> # NLP Example >>> batch, sentence_length, embedding_dim = 20, 5, 10 >>> embedding = torch.randn(batch, sentence_length, embedding_dim) >>> layer_norm = nn.LayerNorm(embedding_dim) >>> # Activate module >>> layer_norm(embedding) >>> >>> # Image Example >>> N, C, H, W = 20, 5, 10, 10 >>> input = torch.randn(N, C, H, W) >>> # Normalize over the last three dimensions (i.e. the channel and spatial dimensions) >>> # as shown in the image below >>> layer_norm = nn.LayerNorm([C, H, W]) >>> output = layer_norm(input)
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.modules.normalization.LayerNorm.html