Rate this Page
★ ★ ★ ★ ★

AdaptiveMaxPool3d#

class torch.nn.modules.pooling.AdaptiveMaxPool3d(output_size, return_indices=False)[source]#

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

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

Each output element is the maximum over a cuboidal region of the input. The bounds are computed independently for each spatial dimension, from an output index kk, an input size II and an output size OO:

start(k,I,O)=⌊k×IO⌋end(k,I,O)=⌈(k+1)×IO⌉\text{start}(k, I, O) = \left\lfloor \frac{k \times I}{O} \right\rfloor \qquad \text{end}(k, I, O) = \left\lceil \frac{(k + 1) \times I}{O} \right\rceil

The region for output element (d,h,w)(d, h, w) spans [start(d,Din,Dout),end(d,Din,Dout))[\text{start}(d, D_{in}, D_{out}), \text{end}(d, D_{in}, D_{out})) along the depth dimension, and likewise with (Hin,Hout)(H_{in}, H_{out}) and (Win,Wout)(W_{in}, W_{out}) along height and width.

When an input size is not divisible by the corresponding output size, these regions may have different sizes and may overlap.

Parameters:
  • output_size (int | None | tuple[int | None, int | None, int | None]) – the target output size of the image of the form Dout×Hout×WoutD_{out} \times H_{out} \times W_{out}. Can be a tuple (Dout,Hout,Wout)(D_{out}, H_{out}, W_{out}) or a single DoutD_{out} for a cube Dout×Dout×DoutD_{out} \times D_{out} \times D_{out}. DoutD_{out}, HoutH_{out} and WoutW_{out} can be either an 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.MaxUnpool3d. Default: False

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

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

Examples

>>> # target output size of 5x7x9
>>> m = nn.AdaptiveMaxPool3d((5, 7, 9))
>>> input = torch.randn(1, 64, 8, 9, 10)
>>> output = m(input)
>>> # target output size of 7x7x7 (cube)
>>> m = nn.AdaptiveMaxPool3d(7)
>>> input = torch.randn(1, 64, 10, 9, 8)
>>> output = m(input)
>>> # target output size of 7x9x8
>>> m = nn.AdaptiveMaxPool3d((7, None, None))
>>> input = torch.randn(1, 64, 10, 9, 8)
>>> output = m(input)
forward(input)[source]#

Runs the forward pass.