adaptive_max_pool3d

paddle.nn.functional. adaptive_max_pool3d ( x, output_size, return_mask=False, name=None ) [source]

This operation applies a 3D adaptive max pooling on input tensor. See more details in AdaptiveMaxPool3D .

Parameters
  • x (Tensor) – The input tensor of adaptive max pool3d operator, which is a 5-D tensor. The data type can be float32, float64.

  • output_size (int|list|tuple) – The pool kernel size. If pool kernel size is a tuple or list, it must contain three elements, (D, H, W). D, H and W can be either a int, or None which means the size will be the same as that of the input.

  • return_mask (bool) – If true, the index of max pooling point will be returned along with outputs. Default False.

  • name (str, optional) – For detailed information, please refer to Name. Usually name is no need to set and None by default.

Returns

The output tensor of adaptive max pool3d result. The data type is same as input tensor.

Return type

Tensor

Examples

>>> # adaptive max pool3d
>>> # suppose input data in the shape of [N, C, D, H, W], `output_size` is [l, m, n]
>>> # output shape is [N, C, l, m, n], adaptive pool divide D, H and W dimensions
>>> # of input data into m*n grids averagely and performs poolings in each
>>> # grid to get output.
>>> # adaptive max pool performs calculations as follow:
>>> #
>>> #     for i in range(l):
>>> #         for j in range(m):
>>> #             for k in range(n):
>>> #                 dstart = floor(i * D / l)
>>> #                 dend = ceil((i + 1) * D / l)
>>> #                 hstart = floor(i * H / m)
>>> #                 hend = ceil((i + 1) * H / m)
>>> #                 wstart = floor(i * W / n)
>>> #                 wend = ceil((i + 1) * W / n)
>>> #             output[:, :, i, j, k] = max(input[:, :, dstart: dend, hstart: hend, wstart: wend])
>>> #
>>> import paddle

>>> input_data = paddle.randn(shape=(2, 3, 8, 32, 32))
>>> out = paddle.nn.functional.adaptive_max_pool3d(x = input_data,
...                                                output_size=[3, 3, 3])
>>> print(out.shape)
[2, 3, 3, 3, 3]