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