快捷方式

FeatureAlphaDropout

class torch.nn.FeatureAlphaDropout(p=0.5, inplace=False)[原始碼][原始碼]

隨機遮蔽整個通道。

通道是一個特徵圖,例如,批輸入中第 ii 個樣本的第 jj 個通道是輸入張量 input[i,j]\text{input}[i, j] 中的一個張量。與常規 Dropout 將啟用值設為零不同,啟用值被設為 SELU 啟用函式的負飽和值。更多細節可在論文 自歸一化神經網路(Self-Normalizing Neural Networks) 中找到。

在每次前向傳播呼叫時,每個元素都會使用 Bernoulli 分佈取樣,以機率 p 獨立地被遮蔽。每次前向傳播呼叫時,被遮蔽的元素都是隨機的,並且會進行縮放和偏移以保持零均值和單位方差。

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

正如論文 使用卷積網路進行高效目標定位(Efficient Object Localization Using Convolutional Networks) 中所述,如果特徵圖中的相鄰畫素強相關(在早期卷積層中通常如此),那麼 i.i.d. dropout 不會正則化啟用值,只會導致有效的學習率降低。

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

引數
  • p (float, 可選) – 元素被設為零的機率。預設值:0.5

  • inplace (bool, 可選) – 如果設定為 True,將進行原地操作

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

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

示例

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

文件

訪問 PyTorch 的完整開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並解答疑問

檢視資源