Shortcuts

Dropout2d

class torch.nn.Dropout2d(p=0.5, inplace=False)[源代码]

随机将整个通道置零。

通道是一个二维特征图, 例如,jj通道在批量输入的第ii样本中是一个二维张量input[i,j]\text{input}[i, j]

每个通道将在每次前向调用时独立地以概率 p 被清零,使用从伯努利分布中抽取的样本。

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

如论文中所述 使用卷积网络进行高效目标定位, 如果特征图中的相邻像素高度相关 (通常在早期的卷积层中就是这种情况),那么独立同分布的dropout 将不会对激活进行正则化,否则只会导致 有效学习率的降低。

在这种情况下,nn.Dropout2d() 将有助于促进特征图之间的独立性,应该使用它来代替。

Parameters
  • p (float, 可选) – 元素被置为零的概率。

  • inplace (bool, 可选) – 如果设置为 True,将就地执行此操作

警告

由于历史原因,此类将对 3D 输入执行 1D 通道方向的 dropout(如 nn.Dropout1d 所做的那样)。因此,它目前不支持形状为 (C,H,W)(C, H, W) 的无批次维度输入。此行为将在未来的版本中更改,以将 3D 输入解释为无批次维度输入。要维持旧行为,请切换到 nn.Dropout1d

Shape:
  • 输入: (N,C,H,W)(N, C, H, W)(N,C,L)(N, C, L)

  • 输出: (N,C,H,W)(N, C, H, W)(N,C,L)(N, C, L) (与输入形状相同)。

示例:

>>> m = nn.Dropout2d(p=0.2)
>>> input = torch.randn(20, 16, 32, 32)
>>> output = m(input)
优云智算