Shortcuts

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 中找到。

每个元素将在每次前向调用时,以概率 p 独立地为每个样本进行掩码处理,使用来自伯努利分布的样本。要掩码的元素在每次前向调用时随机化,并进行缩放和偏移以保持零均值和单位方差。

通常输入来自 nn.AlphaDropout 模块。

如论文中所述 使用卷积网络进行高效目标定位, 如果特征图中的相邻像素高度相关 (通常在早期的卷积层中就是这种情况),那么独立同分布的dropout 将不会对激活进行正则化,否则只会导致 有效学习率的降低。

在这种情况下,nn.AlphaDropout() 将有助于促进特征图之间的独立性,应该使用它来代替。

Parameters
  • p (float, 可选) – 元素被置零的概率。默认值:0.5

  • inplace (bool, 可选) – 如果设置为 True,将就地执行此操作

Shape:
  • 输入: (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)
优云智算