快捷方式

Dropout2d

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

隨機將整個通道歸零。

通道是一個 2D 特徵圖,例如,批次輸入中第 jj 個樣本的第 ii 個通道是一個 2D 張量 input[i,j]\text{input}[i, j]

在每次前向呼叫時,每個通道將以機率 p 獨立地歸零,並使用來自 Bernoulli 分佈的樣本。

通常,輸入來自 nn.Conv2d 模組。

如論文 Efficient Object Localization Using Convolutional Networks 中所述,如果特徵圖中相鄰的像素強烈相關(通常在早期的卷積層中),則 i.i.d. dropout 不會正規化激活,而只會導致有效的學習率降低。

在這種情況下,nn.Dropout2d() 將有助於促進特徵圖之間的獨立性,因此應改用它。

參數
  • p (float, optional) – 元素被歸零的機率。

  • inplace (bool, optional) – 如果設定為 True,將執行原地 (in-place) 操作

警告

由於歷史原因,這個類別將對 3D 輸入執行 1D 通道式 dropout (如同 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)

文件

存取 PyTorch 的完整開發者文件

檢視文件

教學

取得為初學者和進階開發者提供的深入教學

檢視教學

資源

尋找開發資源並取得問題解答

檢視資源