Dropout2d#
- class torch.nn.modules.dropout.Dropout2d(p=0.5, inplace=False)[源代码]#
随机将整个通道置零。
通道是二维特征图,例如,批次输入中第 个样本的第 个通道是二维张量 。
在每次前向传播时,每个通道会以
p
的概率独立地被清零,使用来自伯努利分布的样本。通常输入来自
nn.Conv2d
模块。正如论文 Efficient Object Localization Using Convolutional Networks 中所述,如果特征图中的相邻像素强相关(这在早期卷积层中很常见),则 i.i.d. dropout 将不会正则化激活,否则只会导致有效的学习率降低。
在这种情况下,
nn.Dropout2d()
将有助于促进特征图之间的独立性,应该被使用。警告
由于历史原因,该类将对三维输入执行一维通道级(channel-wise)的 Dropout(如
nn.Dropout1d
所做的那样)。因此,它目前不支持形状为 的无批次维度的输入。此行为将在未来版本中更改,以将三维输入解释为无批次维度的输入。要保持旧行为,请切换到nn.Dropout1d
。- 形状
输入: 或 。
输出: 或 (与输入形状相同)。
示例
>>> m = nn.Dropout2d(p=0.2) >>> input = torch.randn(20, 16, 32, 32) >>> output = m(input)