FeatureAlphaDropout¶
- class torch.nn.FeatureAlphaDropout(p=0.5, inplace=False)[原始碼][原始碼]¶
隨機遮蔽整個通道。
通道是一個特徵圖,例如,批輸入中第 個樣本的第 個通道是輸入張量 中的一個張量。與常規 Dropout 將啟用值設為零不同,啟用值被設為 SELU 啟用函式的負飽和值。更多細節可在論文 自歸一化神經網路(Self-Normalizing Neural Networks) 中找到。
在每次前向傳播呼叫時,每個元素都會使用 Bernoulli 分佈取樣,以機率
p獨立地被遮蔽。每次前向傳播呼叫時,被遮蔽的元素都是隨機的,並且會進行縮放和偏移以保持零均值和單位方差。通常,輸入來自
nn.AlphaDropout模組。正如論文 使用卷積網路進行高效目標定位(Efficient Object Localization Using Convolutional Networks) 中所述,如果特徵圖中的相鄰畫素強相關(在早期卷積層中通常如此),那麼 i.i.d. dropout 不會正則化啟用值,只會導致有效的學習率降低。
在這種情況下,
nn.AlphaDropout()將有助於促進特徵圖之間的獨立性,因此應該使用它。- 形狀
輸入: 或 。
輸出: 或 (形狀與輸入相同)。
示例
>>> m = nn.FeatureAlphaDropout(p=0.2) >>> input = torch.randn(20, 16, 4, 32, 32) >>> output = m(input)