# avg_pool2d#

Compute a 2-D average pool given 4-D input x.

Parameters:
• x (`Union`[`Array`, `NativeArray`]) – Input image [batch_size,h,w,d_in].

• kernel (`Union`[`int`, `Tuple`[`int`], `Tuple`[`int`, `int`]]) – Size of the kernel i.e., the sliding window for each dimension of input. [h,w].

• strides (`Union`[`int`, `Tuple`[`int`], `Tuple`[`int`, `int`]]) – The stride of the sliding window for each dimension of input.

• padding (`Union`[`str`, `int`, `List`[`Tuple`[`int`, `int`]]]) – SAME” or “VALID” indicating the algorithm, or list indicating the per-dimension paddings.

• data_format (`str`, default: `'NHWC'`) – NHWC” or “NCHW”. Defaults to “NHWC”.

• count_include_pad (`bool`, default: `False`) – Whether to include padding in the averaging calculation.

• ceil_mode (`bool`, default: `False`) – Whether to use ceil or floor for creating the output shape.

• out (`Optional`[`Array`], default: `None`) – optional output array, for writing the result to.

Return type:

`Array`

Returns:

• ret – The result of the pooling operation.

• Both the description and the type hints above assumes an array input

• for simplicity, but this function is *nestable, and therefore*

• also accepts `ivy.Container` instances in place of any of

• the arguments.

Examples

```>>> x = ivy.arange(12.).reshape((2, 1, 3, 2))
>>> print(ivy.avg_pool2d(x, (2, 2), (1, 1), 'SAME'))
ivy.array([[[[ 1.,  2.],
[ 3.,  4.],
[ 4.,  5.]]],
```
[[[ 7., 8.],

[ 9., 10.], [10., 11.]]]])

```>>> x = ivy.arange(48.).reshape((2, 4, 3, 2))
>>> print(ivy.avg_pool2d(x, 3, 1, 'VALID'))
ivy.array([[[[ 8.,  9.]],
```

[[14., 15.]]],

[[[32., 33.]],

[[38., 39.]]]])

ivy.Array instance method variant of ivy.avg_pool2d. This method simply wraps the function, and so the docstring for ivy.avg_pool2d also applies to this method with minimal changes.

Parameters:
• x – Input image [batch_size,h,w,d_in].

• kernel (`Union`[`int`, `Tuple`[`int`], `Tuple`[`int`, `int`]]) – The size of the window for each dimension of the input tensor.

• strides (`Union`[`int`, `Tuple`[`int`], `Tuple`[`int`, `int`]]) – The stride of the sliding window for each dimension of input.

• padding (`str`) – “SAME” or “VALID” indicating the algorithm, or list indicating the per-dimension paddings.

• data_format (`str`, default: `'NHWC'`) – “NHWC” or “NCHW”. Defaults to “NHWC”.

• count_include_pad (`bool`, default: `False`) – Whether to include padding in the averaging calculation.

• ceil_mode (`bool`, default: `False`) – Whether to use ceil or floor for creating the output shape.

• divisor_override (`Optional`[`int`], default: `None`) – If given, it will be used as the divisor, otherwise kernel_size will be used.

• out (`Optional`[`Array`], default: `None`) – optional output array, for writing the result to. It must have a shape that the inputs broadcast to.

Return type:

`Array`

Returns:

ret – The result of the max pooling operation.

Examples

```>>> x = ivy.arange(12.).reshape((2, 1, 3, 2))
>>> print(x.max_pool2d((2, 2), (1, 1), 'SAME'))
ivy.array([[[[ 2,  3],
[ 4,  5],
[ 4,  5]]],
[[[ 8,  9],
[10, 11],
[10, 11]]]])
```
```>>> x = ivy.arange(48.).reshape((2, 4, 3, 2))
>>> print(x.max_pool2d(3, 1, 'VALID'))
ivy.array([[[[16, 17]],
[[22, 23]]],
[[[40, 41]],
[[46, 47]]]])
```
Container.avg_pool2d(self, kernel, strides, padding, /, *, data_format='NHWC', count_include_pad=False, ceil_mode=False, divisor_override=None, key_chains=None, to_apply=True, prune_unapplied=False, map_sequences=False, out=None)[source]#

ivy.Container instance method variant of ivy.avg_pool2d. This method simply wraps the function, and so the docstring for ivy.avg_pool2d also applies to this method with minimal changes.

Parameters:
• x – Input image [batch_size,h,w,d_in].

• kernel (`Union`[`int`, `Tuple`[`int`], `Tuple`[`int`, `int`], `Container`]) – The size of the window to take a max over.

• strides (`Union`[`int`, `Tuple`[`int`], `Tuple`[`int`, `int`], `Container`]) – The stride of the sliding window for each dimension of input.

• padding (`Union`[`str`, `Container`]) – “SAME” or “VALID” indicating the algorithm, or list indicating the per-dimension paddings.

• data_format (`Union`[`str`, `Container`], default: `'NHWC'`) – “NHWC” or “NCHW”. Defaults to “NHWC”.

• count_include_pad (`Union`[`bool`, `Container`], default: `False`) – Whether to include padding in the averaging calculation.

• ceil_mode (`Union`[`bool`, `Container`], default: `False`) – Whether to use ceil or floor for creating the output shape.

• divisor_override (`Optional`[`Union`[`int`, `Container`]], default: `None`) – If specified, it will be used as divisor, otherwise kernel_size will be used.

• out (`Optional`[`Container`], default: `None`) – optional output array, for writing the result to. It must have a shape that the inputs broadcast to.

Return type:

`Container`

Returns:

ret – The result of the pooling operation.

Examples

```>>> a = ivy.arange(12).reshape((2, 1, 3, 2))
>>> b = ivy.arange(48).reshape((2, 4, 3, 2))
>>> x = ivy.Container({'a': a, 'b': b})
>>> y = x.avg_pool2d(2, 1, "SAME")
>>> print(y)
{
a: (<class ivy.data_classes.array.array.Array> shape=[2, 1, 3, 2]),
b: (<class ivy.data_classes.array.array.Array> shape=[2, 4, 3, 2])
}
```