Spec-Zone.ru › PyTorch 2

Dropout2d

class torch.nn.Dropout2d(p=0.5, inplace=False) [source]

Случайным образом обнуляет целые каналы (канал — это 2D карта признаков, например, jj-й канал ii-й выборки в пакетном входном данных — это 2D тензор input[i,j]\text{input}[i, j]). Каждый канал будет независимо обнуляться при каждом вызове прямой функции с вероятностью p, используя выборки из распределения Бернулли.

Обычно вход поступает из nn.Conv2d модулей.

Как описано в статье Efficient Object Localization Using Convolutional Networks, если соседние пиксели в картах признаков сильно коррелированы (как обычно бывает в ранних слоях свёрток), то независимый дропаут не будет регулировать активации и просто приведёт к уменьшению эффективной скорости обучения.

В этом случае, nn.Dropout2d() поможет повысить независимость между картами признаков и следует использовать вместо него.

Параметры
  • p (float, необязательно) – вероятность обнуления элемента.
  • inplace (bool, необязательно) – Если установлено True, выполнит эту операцию на месте

Предупреждение

По историческим причинам, этот класс выполнит дропаут по каналам в 1D для входных данных 3D (как выполняет nn.Dropout1d). Таким образом, он в настоящее время НЕ поддерживает входные данные без размерности пакета формы (C,H,W)(C, H, W). Это поведение изменится в будущей версии, чтобы интерпретировать 3D входные данные как входные данные без размерности пакета. Чтобы сохранить старое поведение, переключитесь на nn.Dropout1d.

Форма:
  • Вход: (N,C,H,W)(N, C, H, W) или (N,C,L)(N, C, L).
  • Выход: (N,C,H,W)(N, C, H, W) или (N,C,L)(N, C, L) (такая же форма, как у входных данных).

Примеры:

>>> 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API