捷徑

FeatureAlphaDropout

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

隨機遮罩整個通道。

通道 (channel) 是一種特徵圖 (feature map),例如,批次輸入 (batch input) 中第 ii 個樣本的第 jj 個通道是一個張量 input[i,j]\text{input}[i, j] (輸入張量 (input tensor) 的一部分)。與常規 Dropout 將激活值 (activations) 設為零不同,Alpha Dropout 將激活值設為 SELU 激活函數的負飽和值。更多詳細資訊請參考論文 Self-Normalizing Neural Networks

在每次前向呼叫 (forward call) 中,每個元素會以機率 p 獨立地遮罩 (masked) 每個樣本,該機率是使用來自白努利分布 (Bernoulli distribution) 的樣本。 要遮罩的元素在每次前向呼叫時都會隨機化,並且會進行縮放 (scaled) 和偏移 (shifted) 以維持零均值和單位變異數 (unit variance)。

通常輸入來自 nn.AlphaDropout 模組。

如同論文 Efficient Object Localization Using Convolutional Networks 中所述,如果特徵圖中的相鄰像素高度相關(早期卷積層中通常如此),那麼獨立同分布 (i.i.d.) 的 Dropout 將無法正規化 (regularize) 激活值,只會導致有效學習率 (effective learning rate) 降低。

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

參數 (Parameters)
  • p (float, optional) – 元素歸零的機率。預設值:0.5

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

形狀 (Shape)
  • 輸入 (Input): (N,C,D,H,W)(N, C, D, H, W)(C,D,H,W)(C, D, H, W).

  • 輸出 (Output): (N,C,D,H,W)(N, C, D, H, W)(C,D,H,W)(C, D, H, W) (與輸入相同形狀)。

範例 (Examples)

>>> m = nn.FeatureAlphaDropout(p=0.2)
>>> input = torch.randn(20, 16, 4, 32, 32)
>>> output = m(input)

文件

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

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

查看資源