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