LayerNorm
-
class torch.nn.LayerNorm(normalized_shape, eps=1e-05, elementwise_affine=True, bias=True, device=None, dtype=None)[source] -
Применяет слой Layer Normalization к мини-пакету входных данных, как описано в статье Layer Normalization
Среднее и стандартное отклонение вычисляются по последним
Dизмерениям, гдеDявляется размерностьюnormalized_shape. Например, еслиnormalized_shapeэто(3, 5)(двумерная форма), среднее и стандартное отклонение вычисляются по последним 2 измерениям входных данных (то естьinput.mean((-2, -1))). и — это обучаемые параметры аффинного преобразованияnormalized_shapeеслиelementwise_affineравноTrue. Стандартное отклонение вычисляется с помощью смещённого оценочного значения, эквивалентногоtorch.var(input, unbiased=False).Примечание
В отличие от Batch Normalization и Instance Normalization, которые применяют скалярное масштабирование и смещение для каждого канала/плоскости целиком с опцией
affine, Layer Normalization применяет масштабирование и смещение на каждый элемент с помощьюelementwise_affine.Этот слой использует статистику, вычисленную из входных данных как в режиме обучения, так и в режиме оценки.
- Параметры
-
-
normalized_shape (int или список или 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)
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.nn.LayerNorm.html