# tf.keras.layers.AveragePooling1D

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.13.1/keras/layers/pooling/average_pooling1d.py#L27-L143) |

Average pooling for temporal data.

Inherits From: [`Layer`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/layers/Layer), [`Module`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/Module)

#### View aliases


**Main aliases**

[`tf.keras.layers.AvgPool1D`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/AveragePooling1D)
**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

\`tf.compat.v1.keras.layers.AveragePooling1D\`, \`tf.compat.v1.keras.layers.AvgPool1D\`

<br />

    tf.keras.layers.AveragePooling1D(
        pool_size=2,
        strides=None,
        padding='valid',
        data_format='channels_last',
        **kwargs
    )

Downsamples the input representation by taking the average value over the
window defined by `pool_size`. The window is shifted by `strides`. The
resulting output when using "valid" padding option has a shape of:
`output_shape = (input_shape - pool_size + 1) / strides)`

The resulting output shape when using the "same" padding option is:
`output_shape = input_shape / strides`

For example, for strides=1 and padding="valid":

    x = tf.constant([1., 2., 3., 4., 5.])
    x = tf.reshape(x, [1, 5, 1])
    x
    <tf.Tensor: shape=(1, 5, 1), dtype=float32, numpy=
      array([[[1.],
              [2.],
              [3.],
              [4.],
              [5.]], dtype=float32)>
    avg_pool_1d = tf.keras.layers.AveragePooling1D(pool_size=2,
       strides=1, padding='valid')
    avg_pool_1d(x)
    <tf.Tensor: shape=(1, 4, 1), dtype=float32, numpy=
    array([[[1.5],
            [2.5],
            [3.5],
            [4.5]]], dtype=float32)>

For example, for strides=2 and padding="valid":

    x = tf.constant([1., 2., 3., 4., 5.])
    x = tf.reshape(x, [1, 5, 1])
    x
    <tf.Tensor: shape=(1, 5, 1), dtype=float32, numpy=
      array([[[1.],
              [2.],
              [3.],
              [4.],
              [5.]], dtype=float32)>
    avg_pool_1d = tf.keras.layers.AveragePooling1D(pool_size=2,
       strides=2, padding='valid')
    avg_pool_1d(x)
    <tf.Tensor: shape=(1, 2, 1), dtype=float32, numpy=
    array([[[1.5],
            [3.5]]], dtype=float32)>

For example, for strides=1 and padding="same":

    x = tf.constant([1., 2., 3., 4., 5.])
    x = tf.reshape(x, [1, 5, 1])
    x
    <tf.Tensor: shape=(1, 5, 1), dtype=float32, numpy=
      array([[[1.],
              [2.],
              [3.],
              [4.],
              [5.]], dtype=float32)>
    avg_pool_1d = tf.keras.layers.AveragePooling1D(pool_size=2,
       strides=1, padding='same')
    avg_pool_1d(x)
    <tf.Tensor: shape=(1, 5, 1), dtype=float32, numpy=
    array([[[1.5],
            [2.5],
            [3.5],
            [4.5],
            [5.]]], dtype=float32)>

<br />

<br />

<br />

| ## Args ||
|---|---|
| `pool_size` | Integer, size of the average pooling windows. |
| `strides` | Integer, or None. Factor by which to downscale. E.g. 2 will halve the input. If None, it will default to `pool_size`. |
| `padding` | One of `"valid"` or `"same"` (case-insensitive). `"valid"` means no padding. `"same"` results in padding evenly to the left/right or up/down of the input such that output has the same height/width dimension as the input. |
| `data_format` | A string, one of `channels_last` (default) or `channels_first`. The ordering of the dimensions in the inputs. `channels_last` corresponds to inputs with shape `(batch, steps, features)` while `channels_first` corresponds to inputs with shape `(batch, features, steps)`. |

<br />

<br />

<br />

| ## Input shape ||
|---|---|
| <br /> - If `data_format='channels_last'`: 3D tensor with shape `(batch_size, steps, features)`. - If `data_format='channels_first'`: 3D tensor with shape `(batch_size, features, steps)`. ||

<br />

<br />

<br />

| ## Output shape ||
|---|---|
| <br /> - If `data_format='channels_last'`: 3D tensor with shape `(batch_size, downsampled_steps, features)`. - If `data_format='channels_first'`: 3D tensor with shape `(batch_size, features, downsampled_steps)`. ||

<br />