# tf.keras.layers.MaxPool2D

<br />

|---|---|
| [![](https://www.tensorflow.org/images/tf_logo_32px.png) TensorFlow 1 version](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/keras/layers/MaxPool2D) | [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/layers/pooling.py#L282-L328) |

Max pooling operation for spatial data.

#### View aliases


**Main aliases**

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

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

[`tf.compat.v1.keras.layers.MaxPool2D`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/MaxPool2D), [`tf.compat.v1.keras.layers.MaxPooling2D`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/MaxPool2D)

<br />

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

<br />

<br />

<br />

| ## Arguments ||
|---|---|
| `pool_size` | integer or tuple of 2 integers, factors by which to downscale (vertical, horizontal). `(2, 2)` will halve the input in both spatial dimension. If only one integer is specified, the same window length will be used for both dimensions. |
| `strides` | Integer, tuple of 2 integers, or None. Strides values. If None, it will default to `pool_size`. |
| `padding` | One of `"valid"` or `"same"` (case-insensitive). |
| `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, height, width, channels)` while `channels_first` corresponds to inputs with shape `(batch, channels, height, width)`. It defaults to the `image_data_format` value found in your Keras config file at `~/.keras/keras.json`. If you never set it, then it will be "channels_last". |

<br />

#### Input shape:

- If `data_format='channels_last'`: 4D tensor with shape `(batch_size, rows, cols, channels)`.
- If `data_format='channels_first'`: 4D tensor with shape `(batch_size, channels, rows, cols)`.

#### Output shape:

- If `data_format='channels_last'`: 4D tensor with shape `(batch_size, pooled_rows, pooled_cols, channels)`.
- If `data_format='channels_first'`: 4D tensor with shape `(batch_size, channels, pooled_rows, pooled_cols)`.