FeatureAlphaDropout#
- class torch.nn.modules.dropout.FeatureAlphaDropout(p=0.5, inplace=False)[源代码]#
随机屏蔽整个通道。
一个通道(channel)是一个特征图(feature map),例如,批次输入中第 个样本的第 个通道是输入张量 。与常规的 Dropout 将激活值设置为零不同,这里将激活值设置为 SELU 激活函数的负饱和值。更多细节可在论文 Self-Normalizing Neural Networks 中找到。
每个元素将根据来自伯努利分布的样本,以
p
的概率独立地被屏蔽(mask)。被屏蔽的元素将在每次前向传播时随机化,并进行缩放和移位以保持零均值和单位方差。通常输入来自
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)