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