fn
lp_pool1d
→Tensorlp_pool1d(x: Tensor, norm_type: float, kernel_size: int | tuple[int], stride: int | tuple[int] | None = None, ceil_mode: bool = False)1-D Lp-norm pooling — .
Generalises average and max pooling under a single parameter
. recovers
sum-pooling (= |R| × avg_pool1d); is
energy / RMS-style pooling; approaches
max_pool1d. Provides a smooth, fully differentiable bridge
between the two extremes.
Parameters
xTensorInput of shape
(N, C, L).norm_typefloatExponent .
kernel_sizeint or tuple of intSize of the pooling window.
strideint or tuple of int= NoneWindow step. Defaults to
kernel_size.ceil_modebool= FalseUse ceil instead of floor in the output-size formula.
Returns
TensorOutput of shape (N, C, L_out).
Notes
Math (per window ):
Implemented as (avg_pool1d(|x|^p) · |R|)^(1/p) so the entire
operator inherits its gradient from the average-pool engine path.
Examples
>>> import lucid
>>> from lucid.nn.functional import lp_pool1d
>>> x = lucid.randn(2, 4, 12)
>>> y = lp_pool1d(x, norm_type=2.0, kernel_size=2)
>>> y.shape
(2, 4, 6)