Spec-Zone.ru › PyTorch 2.14

LayerNorm

class torch.nn.LayerNorm(normalized_shape, eps=1e-05, elementwise_affine=True, bias=True, device=None, dtype=None) [исходный код]

Применяет нормализацию слоя к мини-пакету входных данных.

Этот слой реализует операцию, описанную в статье Нормализация слоя

y=x−E[x]Var[x]+ϵ∗γ+βy = \frac{x - \mathrm{E}[x]}{ \sqrt{\mathrm{Var}[x] + \epsilon}} * \gamma + \beta

Среднее значение и стандартное отклонение вычисляются по последним D измерениям, где D — это размерность normalized_shape. Например, если normalized_shape — это (3, 5) (двумерная форма), среднее значение и стандартное отклонение вычисляются по последним двум измерениям входных данных (то есть input.mean((-2, -1))). γ\gamma и β\beta — это обучаемые параметры аффинного преобразования normalized_shape, если elementwise_affine — True. Дисперсия вычисляется с помощью смещённой оценки, эквивалентной torch.var(input, correction=0).

Примечание

В отличие от пакетной нормализации и нормализации экземпляров, которые применяют скалярные масштабирование и смещение ко всему каналу/плоскости при параметре affine, нормализация слоя применяет масштабирование и смещение к каждому элементу при параметре elementwise_affine.

Этот слой использует статистику, вычисленную по входным данным, как в режиме обучения, так и в режиме оценки.

Параметры:
  • normalized_shape (int or list or torch.Size) –

    форма входных данных, ожидаемых на входе, размером

    [∗×normalized_shape[0]×normalized_shape[1]×…×normalized_shape[−1]][* \times \text{normalized\_shape}[0] \times \text{normalized\_shape}[1] \times \ldots \times \text{normalized\_shape}[-1]]

    Если указано одно целое число, оно рассматривается как список из одного элемента, и этот модуль выполняет нормализацию по последнему измерению, которое, как ожидается, будет иметь указанный размер.

  • eps (float) – значение, добавляемое к знаменателю для численной устойчивости. По умолчанию: 1e-5
  • elementwise_affine (bool) – логическое значение: если оно равно True, у этого модуля есть обучаемые поэлементные аффинные параметры, инициализированные единицами (для весов) и нулями (для смещений). По умолчанию: True
  • bias (bool) – если установлено значение False, слой не будет обучать аддитивное смещение (имеет значение, только если elementwise_affine равно True). По умолчанию: True
Переменные:
  • weight – обучаемые веса модуля формы normalized_shape\text{normalized\_shape}, если elementwise_affine установлено в True. Значения инициализируются единицами.
  • bias – обучаемое смещение модуля формы normalized_shape\text{normalized\_shape}, если elementwise_affine установлено в True. Значения инициализируются нулём.
Форма:
  • Вход: (N,∗)(N, *)
  • Выход: (N,∗)(N, *) (та же форма, что и у входных данных)

Примеры:

>>> # 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)
../_images/layer_norm.jpg

© 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.LayerNorm.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API