class torch.nn.AvgPool1d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)[source]

Applies a 1D average pooling over an input signal composed of several input planes.

In the simplest case, the output value of the layer with input size (N,C,L)(N, C, L), output (N,C,Lout)(N, C, L_{out}) and kernel_size kk can be precisely described as:

out(Ni,Cj,l)=1km=0k1input(Ni,Cj,stride×l+m)\text{out}(N_i, C_j, l) = \frac{1}{k} \sum_{m=0}^{k-1} \text{input}(N_i, C_j, \text{stride} \times l + m)

If padding is non-zero, then the input is implicitly zero-padded on both sides for padding number of points.


When ceil_mode=True, sliding windows are allowed to go off-bounds if they start within the left padding or the input. Sliding windows that would start in the right padded region are ignored.

The parameters kernel_size, stride, padding can each be an int or a one-element tuple.

  • kernel_size (Union[int, Tuple[int]]) – the size of the window

  • stride (Union[int, Tuple[int]]) – the stride of the window. Default value is kernel_size

  • padding (Union[int, Tuple[int]]) – implicit zero padding to be added on both sides

  • ceil_mode (bool) – when True, will use ceil instead of floor to compute the output shape

  • count_include_pad (bool) – when True, will include the zero-padding in the averaging calculation

  • Input: (N,C,Lin)(N, C, L_{in}) or (C,Lin)(C, L_{in}).

  • Output: (N,C,Lout)(N, C, L_{out}) or (C,Lout)(C, L_{out}), where

    Lout=Lin+2×paddingkernel_sizestride+1L_{out} = \left\lfloor \frac{L_{in} + 2 \times \text{padding} - \text{kernel\_size}}{\text{stride}} + 1\right\rfloor

    Per the note above, if ceil_mode is True and (Lout1)×strideLin+padding(L_{out} - 1) \times \text{stride} \geq L_{in} + \text{padding}, we skip the last window as it would start in the right padded region, resulting in LoutL_{out} being reduced by one.


>>> # pool with window of size=3, stride=2
>>> m = nn.AvgPool1d(3, stride=2)
>>> m(torch.tensor([[[1., 2, 3, 4, 5, 6, 7]]]))
tensor([[[2., 4., 6.]]])


Access comprehensive developer documentation for PyTorch

View Docs


Get in-depth tutorials for beginners and advanced developers

View Tutorials


Find development resources and get your questions answered

View Resources