FeatureAlphaDropout#
- class torch.nn.FeatureAlphaDropout(p=0.5, inplace=False)[原始碼]#
隨機遮蔽整個通道。
通道是特徵圖,例如批次輸入中第 個樣本的第 個通道是一個張量 )。與常規 Dropout 將啟用設定為零不同,它會將啟用設定為 SELU 啟用函式的負飽和值。更多細節可以在論文 Self-Normalizing Neural Networks 中找到。
每次前向呼叫時,每個元素都會以
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)