Dropout2d¶
- class torch.nn.Dropout2d(p=0.5, inplace=False)[source][source]¶
隨機將整個通道歸零。
通道是一個 2D 特徵圖,例如,批次輸入中第 個樣本的第 個通道是一個 2D 張量 。
在每次前向呼叫時,每個通道將以機率
p
獨立地歸零,並使用來自 Bernoulli 分佈的樣本。通常,輸入來自
nn.Conv2d
模組。如論文 Efficient Object Localization Using Convolutional Networks 中所述,如果特徵圖中相鄰的像素強烈相關(通常在早期的卷積層中),則 i.i.d. dropout 不會正規化激活,而只會導致有效的學習率降低。
在這種情況下,
nn.Dropout2d()
將有助於促進特徵圖之間的獨立性,因此應改用它。警告
由於歷史原因,這個類別將對 3D 輸入執行 1D 通道式 dropout (如同
nn.Dropout1d
所做的一樣)。 因此,它目前不支援沒有批次維度的 形狀的輸入。 此行為將在未來的版本中更改,以將 3D 輸入解釋為無批次維度的輸入。 若要維持舊的行為,請切換到nn.Dropout1d
。- 形狀
輸入: 或 。
輸出: 或 (與輸入形狀相同)。
範例
>>> m = nn.Dropout2d(p=0.2) >>> input = torch.randn(20, 16, 32, 32) >>> output = m(input)