Spec-Zone.ru › PyTorch 2.14

GroupNorm

class torch.nn.GroupNorm(num_groups, num_channels, eps=1e-05, affine=True, device=None, dtype=None, *, bias=True) [исходный код]

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

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

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

Входные каналы разделяются на num_groups групп, каждая из которых содержит num_channels / num_groups каналов. num_channels должно делиться на num_groups. Среднее значение и стандартное отклонение вычисляются отдельно для каждой группы. γ\gamma и β\beta — обучаемые векторы параметров аффинного преобразования для каждого канала размером num_channels, если affine равно True. Дисперсия вычисляется с помощью смещённой оценки, эквивалентной torch.var(input, correction=0).

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

Параметры:
  • num_groups (int) – количество групп, на которые разделяются каналы
  • num_channels (int) – количество каналов, ожидаемое на входе
  • eps (float) – значение, добавляемое к знаменателю для численной устойчивости. Значение по умолчанию: 1e-5
  • affine (bool) – логическое значение; если оно равно True, модуль содержит обучаемые аффинные параметры для каждого канала, инициализированные единицами (для весов) и нулями (для смещений). Значение по умолчанию: True
  • bias (bool) – Если установлено значение False, слой не будет обучать аддитивное смещение (имеет значение только если affine равно True). Значение по умолчанию: True
Форма:
  • Вход: (N,C,∗)(N, C, *), где C=num_channelsC=\text{num\_channels}
  • Выход: (N,C,∗)(N, C, *) (такая же форма, как у входных данных)

Примеры:

>>> input = torch.randn(20, 6, 10, 10)
>>> # Separate 6 channels into 3 groups
>>> m = nn.GroupNorm(3, 6)
>>> # Separate 6 channels into 6 groups (equivalent with InstanceNorm)
>>> m = nn.GroupNorm(6, 6)
>>> # Put all 6 channels into a single group (equivalent with LayerNorm)
>>> m = nn.GroupNorm(1, 6)
>>> # Activating the module
>>> output = m(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.GroupNorm.html

Spec-Zone.ru

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