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