tf.keras.layers.AveragePooling2D
Stay organized with collections
Save and categorize content based on your preferences.
Average pooling operation for spatial data.
Inherits From: Layer
, Module
View aliases
Main aliases
tf.keras.layers.AvgPool2D
Compat aliases for migration
See
Migration guide for
more details.
`tf.compat.v1.keras.layers.AveragePooling2D`, `tf.compat.v1.keras.layers.AvgPool2D`
tf.keras.layers.AveragePooling2D(
pool_size=(2, 2),
strides=None,
padding='valid',
data_format=None,
**kwargs
)
Downsamples the input along its spatial dimensions (height and width)
by taking the average value over an input window
(of size defined by pool_size
) for each channel of the input.
The window is shifted by strides
along each dimension.
The resulting output when using "valid"
padding option has a shape
(number of rows or columns) of:
output_shape = math.floor((input_shape - pool_size) / strides) + 1
(when input_shape >= pool_size
)
The resulting output shape when using the "same"
padding option is:
output_shape = math.floor((input_shape - 1) / strides) + 1
For example, for strides=(1, 1)
and padding="valid"
:
x = tf.constant([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
x = tf.reshape(x, [1, 3, 3, 1])
avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),
strides=(1, 1), padding='valid')
avg_pool_2d(x)
<tf.Tensor: shape=(1, 2, 2, 1), dtype=float32, numpy=
array([[[[3.],
[4.]],
[[6.],
[7.]]]], dtype=float32)>
For example, for stride=(2, 2)
and padding="valid"
:
x = tf.constant([[1., 2., 3., 4.],
[5., 6., 7., 8.],
[9., 10., 11., 12.]])
x = tf.reshape(x, [1, 3, 4, 1])
avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),
strides=(2, 2), padding='valid')
avg_pool_2d(x)
<tf.Tensor: shape=(1, 1, 2, 1), dtype=float32, numpy=
array([[[[3.5],
[5.5]]]], dtype=float32)>
For example, for strides=(1, 1)
and padding="same"
:
x = tf.constant([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
x = tf.reshape(x, [1, 3, 3, 1])
avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),
strides=(1, 1), padding='same')
avg_pool_2d(x)
<tf.Tensor: shape=(1, 3, 3, 1), dtype=float32, numpy=
array([[[[3.],
[4.],
[4.5]],
[[6.],
[7.],
[7.5]],
[[7.5],
[8.5],
[9.]]]], dtype=float32)>
Args |
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).
"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, 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".
|
|
- 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) .
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2023-10-06 UTC.
[null,null,["Last updated 2023-10-06 UTC."],[],[],null,["# tf.keras.layers.AveragePooling2D\n\n\u003cbr /\u003e\n\n|------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/keras-team/keras/tree/v2.10.0/keras/layers/pooling/average_pooling2d.py#L26-L143) |\n\nAverage pooling operation for spatial data.\n\nInherits From: [`Layer`](../../../tf/keras/layers/Layer), [`Module`](../../../tf/Module)\n\n#### View aliases\n\n\n**Main aliases**\n\n[`tf.keras.layers.AvgPool2D`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/AveragePooling2D)\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n\\`tf.compat.v1.keras.layers.AveragePooling2D\\`, \\`tf.compat.v1.keras.layers.AvgPool2D\\`\n\n\u003cbr /\u003e\n\n tf.keras.layers.AveragePooling2D(\n pool_size=(2, 2),\n strides=None,\n padding='valid',\n data_format=None,\n **kwargs\n )\n\nDownsamples the input along its spatial dimensions (height and width)\nby taking the average value over an input window\n(of size defined by `pool_size`) for each channel of the input.\nThe window is shifted by `strides` along each dimension.\n\nThe resulting output when using `\"valid\"` padding option has a shape\n(number of rows or columns) of:\n`output_shape = math.floor((input_shape - pool_size) / strides) + 1`\n(when `input_shape \u003e= pool_size`)\n\nThe resulting output shape when using the `\"same\"` padding option is:\n`output_shape = math.floor((input_shape - 1) / strides) + 1`\n\nFor example, for `strides=(1, 1)` and `padding=\"valid\"`: \n\n x = tf.constant([[1., 2., 3.],\n [4., 5., 6.],\n [7., 8., 9.]])\n x = tf.reshape(x, [1, 3, 3, 1])\n avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),\n strides=(1, 1), padding='valid')\n avg_pool_2d(x)\n \u003ctf.Tensor: shape=(1, 2, 2, 1), dtype=float32, numpy=\n array([[[[3.],\n [4.]],\n [[6.],\n [7.]]]], dtype=float32)\u003e\n\nFor example, for `stride=(2, 2)` and `padding=\"valid\"`: \n\n x = tf.constant([[1., 2., 3., 4.],\n [5., 6., 7., 8.],\n [9., 10., 11., 12.]])\n x = tf.reshape(x, [1, 3, 4, 1])\n avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),\n strides=(2, 2), padding='valid')\n avg_pool_2d(x)\n \u003ctf.Tensor: shape=(1, 1, 2, 1), dtype=float32, numpy=\n array([[[[3.5],\n [5.5]]]], dtype=float32)\u003e\n\nFor example, for `strides=(1, 1)` and `padding=\"same\"`: \n\n x = tf.constant([[1., 2., 3.],\n [4., 5., 6.],\n [7., 8., 9.]])\n x = tf.reshape(x, [1, 3, 3, 1])\n avg_pool_2d = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),\n strides=(1, 1), padding='same')\n avg_pool_2d(x)\n \u003ctf.Tensor: shape=(1, 3, 3, 1), dtype=float32, numpy=\n array([[[[3.],\n [4.],\n [4.5]],\n [[6.],\n [7.],\n [7.5]],\n [[7.5],\n [8.5],\n [9.]]]], dtype=float32)\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `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. |\n| `strides` | Integer, tuple of 2 integers, or None. Strides values. If None, it will default to `pool_size`. |\n| `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. |\n| `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\". |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Input shape ----------- ||\n|---|---|\n| \u003cbr /\u003e - 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)`. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Output shape ------------ ||\n|---|---|\n| \u003cbr /\u003e - 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)`. ||\n\n\u003cbr /\u003e"]]