评价此页

Dropout3d#

class torch.nn.Dropout3d(p=0.5, inplace=False)[source]#

随机将整个通道置零。

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

在每次前向传播时,每个通道会以 p 的概率独立地被清零,使用来自伯努利分布的样本。

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

正如论文 Efficient Object Localization Using Convolutional Networks 中所述,如果特征图中的相邻像素强相关(正如卷积层早期情况那样),那么 i.i.d. dropout 将不会对激活进行正则化,并且除此之外只会导致学习率有效降低。

在这种情况下,应使用 nn.Dropout3d() 来帮助促进特征图之间的独立性。

参数
  • p (float, optional) – 元素被置零的概率。

  • inplace (bool, optional) – 如果设置为 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.Dropout3d(p=0.2)
>>> input = torch.randn(20, 16, 4, 32, 32)
>>> output = m(input)