快捷方式

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 的完整开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并解答疑问

查看资源