РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
422 of 769 menu

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,
    которая выполняет локальную нормализацию ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить