BatchNorm3d
-
class torch.nn.BatchNorm3d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None, *, bias=True)[исходный код] -
Применяет пакетную нормализацию к входным данным размерности 5.
Входные данные размерности 5 представляют собой мини-пакет трёхмерных данных с дополнительным измерением каналов, как описано в статье Пакетная нормализация: ускорение обучения глубоких сетей за счёт уменьшения внутреннего ковариационного сдвига .
Среднее значение и стандартное отклонение вычисляются отдельно для каждого измерения по мини-пакетам, а и — обучаемые векторы параметров размера
C(гдеC— размер входных данных). По умолчанию элементы равны 1, а элементы равны 0. Во время прямого прохода при обучении стандартное отклонение вычисляется с использованием смещённой оценки, эквивалентнойtorch.var(input, correction=0). Однако значение, сохраняемое в скользящем среднем стандартного отклонения, вычисляется с использованием несмещённой оценки, эквивалентнойtorch.var(input, correction=1).Кроме того, по умолчанию во время обучения этот слой сохраняет скользящие оценки вычисленных среднего значения и дисперсии, которые затем используются для нормализации при оценке. Скользящие оценки хранятся с коэффициентом по умолчанию
momentum, равным 0.1.Если
track_running_statsустановлено вFalse, этот слой не сохраняет скользящие оценки, и при оценке также используются статистики пакета.Примечание
Этот аргумент
momentumотличается от аргумента, используемого в классах оптимизаторов, и от общепринятого понятия импульса. Математически правило обновления скользящих статистик здесь имеет вид , где — оценённая статистика, а — новое наблюдаемое значение.Поскольку пакетная нормализация выполняется по измерению
C, вычисляя статистики для(N, D, H, W)срезов, принято называть её объёмной пакетной нормализацией или пространственно-временной пакетной нормализацией.- Параметры:
-
- num_features (int) – для ожидаемого входного размера
- eps (float) – значение, добавляемое к знаменателю для численной устойчивости. Значение по умолчанию: 1e-5
-
momentum (float | None) – значение, используемое при вычислении running_mean и running_var. Для вычисления кумулятивного скользящего среднего (то есть простого среднего) можно задать
None. Значение по умолчанию: 0.1 -
affine (bool) – логическое значение: если оно установлено в
True, у этого модуля есть обучаемые аффинные параметры. Значение по умолчанию:True -
track_running_stats (bool) – логическое значение: если оно установлено в
True, модуль отслеживает скользящие среднее и дисперсию; если оно установлено вFalse, модуль не отслеживает эти статистики и инициализирует буферы статистикrunning_meanиrunning_varзначениемNone. Если эти буферы равныNone, модуль всегда использует статистики пакета как в режиме обучения, так и в режиме оценки. Значение по умолчанию:True -
bias (bool) – Если установлено в
False, слой не будет обучать аддитивное смещение (имеет значение, только еслиaffineустановлено вTrue). Значение по умолчанию:True
- Форма:
-
- Вход:
- Выход: (такая же форма, как у входных данных)
Примеры:
>>> # With Learnable Parameters >>> m = nn.BatchNorm3d(100) >>> # Without Learnable Parameters >>> m = nn.BatchNorm3d(100, affine=False) >>> input = torch.randn(20, 100, 35, 45, 10) >>> 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.BatchNorm3d.html