class torch.nn.AdaptiveMaxPool2d(output_size, return_indices=False)[source]

Applies a 2D adaptive max pooling over an input signal composed of several input planes.

The output is of size Hout×WoutH_{out} \times W_{out}, for any input size. The number of output features is equal to the number of input planes.

  • output_size (Union[int, None, Tuple[Optional[int], Optional[int]]]) – the target output size of the image of the form Hout×WoutH_{out} \times W_{out}. Can be a tuple (Hout,Wout)(H_{out}, W_{out}) or a single HoutH_{out} for a square image Hout×HoutH_{out} \times H_{out}. HoutH_{out} and WoutW_{out} can be either a int, or None which means the size will be the same as that of the input.

  • return_indices (bool) – if True, will return the indices along with the outputs. Useful to pass to nn.MaxUnpool2d. Default: False

  • Input: (N,C,Hin,Win)(N, C, H_{in}, W_{in}) or (C,Hin,Win)(C, H_{in}, W_{in}).

  • Output: (N,C,Hout,Wout)(N, C, H_{out}, W_{out}) or (C,Hout,Wout)(C, H_{out}, W_{out}), where (Hout,Wout)=output_size(H_{out}, W_{out})=\text{output\_size}.


>>> # target output size of 5x7
>>> m = nn.AdaptiveMaxPool2d((5, 7))
>>> input = torch.randn(1, 64, 8, 9)
>>> output = m(input)
>>> # target output size of 7x7 (square)
>>> m = nn.AdaptiveMaxPool2d(7)
>>> input = torch.randn(1, 64, 10, 9)
>>> output = m(input)
>>> # target output size of 10x7
>>> m = nn.AdaptiveMaxPool2d((None, 7))
>>> input = torch.randn(1, 64, 10, 9)
>>> output = m(input)


Access comprehensive developer documentation for PyTorch

View Docs


Get in-depth tutorials for beginners and advanced developers

View Tutorials


Find development resources and get your questions answered

View Resources