评价此页

FeatureAlphaDropout#

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

随机屏蔽整个通道。

通道是特征图,例如,批次输入中第 ii 个样本的第 jj 个通道是输入张量 input[i,j]\text{input}[i, j]。与常规 Dropout 将激活设置为零不同,此处的激活被设置为 SELU 激活函数的负饱和值。有关更多详细信息,请参阅论文 Self-Normalizing Neural Networks

在每次前向调用时,每个元素都会根据来自伯努利分布的样本,以 p 的概率独立地被屏蔽。要被屏蔽的元素在每次前向调用时都会被随机化,并进行缩放和移位以保持零均值和单位方差。

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

正如论文 Efficient Object Localization Using Convolutional Networks 中所述,如果特征图中的相邻像素高度相关(正如早期卷积层中通常的情况),则 i.i.d. dropout 将不会正则化激活,并且只会导致有效学习率的降低。

在这种情况下,应使用 nn.AlphaDropout() 来促进特征图之间的独立性。

参数
  • p (float, optional) – 元素被置零的概率。默认为 0.5

  • inplace (bool, optional) – 如果设置为 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)