BatchNorm2d
-
class torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None)[source] -
Применяет батч-нормализацию к 4D входу (минимальной партии 2D входов с дополнительным канальным измерением), как описано в статье Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift .
Среднее значение и стандартное отклонение вычисляются по каждому измерению на основе минимальных партий, а и являются настраиваемыми параметрами-векторами размером
C(гдеC— размер входных данных). По умолчанию элементы устанавливаются равными 1, а элементы — равными 0. Во время обучения в прямом проходе стандартное отклонение рассчитывается с использованием смещённой оценки, эквивалентнойtorch.var(input, unbiased=False). Однако значение, хранящееся в скользящем среднем стандартного отклонения, вычисляется с использованием несмещённой оценки, эквивалентнойtorch.var(input, unbiased=True).Также по умолчанию в процессе обучения этот слой сохраняет текущие оценки вычисленного среднего и дисперсии, которые затем используются для нормализации при оценке. Текущие оценки хранятся с заданным по умолчанию
momentumзначением 0,1.Если
track_running_statsустановлено вFalse, этот слой не сохраняет текущие оценки, а в процессе оценки вместо этого используются статистические данные партии.Примечание
Этот
momentumаргумент отличается от аргумента, используемого в классах оптимизаторов, и от общепринятого понятия импульса. Математически правило обновления для текущих статистических данных здесь имеет вид , где — оценочная статистика, а — новое наблюдаемое значение.Поскольку батч-нормализация выполняется по
Cизмерению, вычисление статистических данных на(N, H, W)слайсах, общепринято называть это пространственной батч-нормализацией.- Параметры
-
- num_features (int) – из ожидаемого входного размера
- eps (float) – значение, добавляемое к знаменателю для обеспечения числовой устойчивости. По умолчанию: 1e-5
-
momentum (float) – значение, используемое для вычисления running_mean и running_var. Может быть установлено в
Noneдля кумулятивного скользящего среднего (т.е. простого среднего). По умолчанию: 0.1 -
affine (bool) – логическое значение, которое, при установке в
True, придает этому модулю настраиваемые аффинные параметры. По умолчанию:True -
track_running_stats (bool) – логическое значение, которое, при установке в
True, этот модуль отслеживает текущее среднее и дисперсию, а при установке вFalse, этот модуль не отслеживает такие статистики и инициализирует буферы статистикиrunning_meanиrunning_varкакNone. Когда эти буферыNone, этот модуль всегда использует статистику партии в режимах обучения и оценки. По умолчанию:True
- Форма:
-
- Вход:
- Выход: (такая же форма, как у входа)
Примеры:
>>> # With Learnable Parameters >>> m = nn.BatchNorm2d(100) >>> # Without Learnable Parameters >>> m = nn.BatchNorm2d(100, affine=False) >>> input = torch.randn(20, 100, 35, 45) >>> output = m(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.BatchNorm2d.html