FeatureAlphaDropout
-
class torch.nn.modules.dropout.FeatureAlphaDropout(p=0.5, inplace=False)[исходный код] -
Случайным образом маскирует целые каналы.
Канал — это карта признаков, например, -й канал -го образца во входном пакете — это тензор входного тензора). В отличие от обычного Dropout, который обнуляет активации, здесь активации устанавливаются в отрицательное значение насыщения функции активации SELU. Подробнее об этом можно узнать из статьи Нормализующие себя нейронные сети .
При каждом прямом проходе каждый элемент независимо маскируется для каждого образца с вероятностью
p; для этого используются выборки из распределения Бернулли. Маскируемые элементы случайным образом выбираются при каждом прямом проходе, а затем масштабируются и сдвигаются для сохранения нулевого среднего и единичной дисперсии.Обычно входные данные поступают из модулей
nn.AlphaDropout.Как описано в статье Эффективная локализация объектов с помощью сверточных сетей , если соседние пиксели внутри карт признаков сильно коррелируют (как обычно бывает в ранних сверточных слоях), то i.i.d. dropout не будет регуляризовать активации и лишь приведет к эффективному снижению скорости обучения.
В этом случае
nn.AlphaDropout()поможет повысить независимость карт признаков, и вместо него следует использовать этот метод.- Параметры:
- Форма:
-
- Вход: или .
- Выход: или (такая же форма, как у входных данных).
Примеры:
>>> m = nn.FeatureAlphaDropout(p=0.2) >>> input = torch.randn(20, 16, 4, 32, 32) >>> output = m(input)
-
forward(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.dropout.FeatureAlphaDropout.html