dropout1d
根据丢弃概率 p
,在训练过程中随机将某些 1D 通道置 0(对一个形状为 [N, C, L]
的 3D Tensor 或 [C, L]
的 2D Tensor,1D 通道指的是其中的形状为 L
的 1 维特征图)。
基于 paddle.nn.functional.dropout
实现,如您想了解更多,请参见 dropout 。
参数
x (Tensor) - 形状为
[N, C, L]
的 3D Tensor 或[C, L]
的 2D Tensor,数据类型为 float16、float32 或 float64。p (float,可选) - 将输入通道置 0 的概率,即丢弃概率,默认值为 0.5。
training (bool,可选) - 标记是否为训练阶段,默认值为 True。
inplace (bool,可选) - 是否原地操作。当前版本暂未实现(行为等同于 False),未来版本将支持,默认值为 False。
返回
经过 dropout1d 之后的结果,与输入 x
形状相同的 Tensor
。
代码示例
>>> import paddle
# Case 1: 3D input (batched)
>>> x = paddle.randn([2, 3, 10]) # [N, C, L]
>>> y_train = paddle.nn.functional.dropout1d(x, p=0.2) # Training mode
>>> y_test = paddle.nn.functional.dropout1d(x, p=0.2, training=False) # Test mode
>>> print("Original first channel:", x[0, 0, :])
>>> print("Train output (may be zeroed):", y_train[0, 0, :])
>>> print("Test output (always unchanged):", y_test[0, 0, :])
# Case 2: 2D input (single sample)
>>> x = paddle.randn([3, 8]) # [C, L]
>>> y = paddle.nn.functional.dropout1d(x, p=0.5)
>>> print("Input shape:", x.shape)
>>> print("Output shape:", y.shape)
>>> print("Zeroed channels count:", paddle.sum(y == 0).item())