Dropout2d¶
- class torch.nn.Dropout2d(p=0.5, inplace=False)[source][source]¶
随机置零整个通道。
通道是一个二维特征图,例如,批处理输入中第 0#个样本的第 1#个通道是二维张量 。
每个通道在每次前向调用时将以概率
p
独立清零,使用伯努利分布的样本。通常输入来自
nn.Conv2d
模块。如论文《使用卷积网络的快速目标定位》所述,如果特征图内的相邻像素之间具有强相关性(如早期卷积层通常情况),则独立同分布的 dropout 将不会正则化激活,否则只会导致有效学习率降低。
在这种情况下,
nn.Dropout2d()
将有助于促进特征图之间的独立性,应使用它代替。- 参数:
p (float, 可选) - 元素为零的概率。
inplace (布尔值,可选) – 如果设置为
True
,将在此处进行此操作
警告
由于历史原因,此类将针对 3D 输入执行 1D 通道丢弃(如
nn.Dropout1d
所做)。因此,它目前不支持没有批次维度的形状 的输入。这种行为将在未来的版本中更改,以将 3D 输入解释为无批次维度的输入。为了保持旧的行为,切换到nn.Dropout1d
。- 形状:
输入: 或 。
输出: 或 (与输入形状相同)。
示例:
>>> m = nn.Dropout2d(p=0.2) >>> input = torch.randn(20, 16, 32, 32) >>> output = m(input)