LayerNorm
-
class torch.nn.LayerNorm(normalized_shape, eps=1e-05, elementwise_affine=True, device=None, dtype=None)[source] -
Применяет нормализацию по слою к мини-батчу входных данных, как описано в статье Layer Normalization
Среднее и стандартное отклонение вычисляются по последним
Dизмерениям, гдеD— размерностьnormalized_shape. Например, еслиnormalized_shapeравно(3, 5)(двумерная форма), среднее и стандартное отклонение вычисляются по последним двум измерениям входных данных (то есть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.
-
- Переменные:
-
-
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/1.13/generated/torch.nn.LayerNorm.html