Dropout2d¶
- class torch.nn.Dropout2d(p=0.5, inplace=False)[來源][來源]¶
隨機地將整個通道置零。
通道是一個二維特徵圖,例如,批處理輸入中第 個樣本的第 個通道是一個二維張量 。
每次前向傳播時,每個通道都會根據伯努利分佈獨立地以機率
p被置零。通常輸入來自
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)