AdaptiveMaxPool2d¶
- class AdaptiveMaxPool2d(oshp, **kwargs)[source]¶
Applies a 2D max adaptive pooling over an input.
For instance, given an input of the size \((N, C, H, W)\) and an output shape \((OH, OW)\), this layer generates the output of the size \((N, C, OH, OW)\) through a process described as:
\[\begin{aligned} out(N_i, C_j, h, w) ={} & \max_{m=0, \ldots, kH-1} \max_{n=0, \ldots, kW-1} \text{input}(N_i, C_j, \text{stride[0]} \times h + m, \text{stride[1]} \times w + n) \end{aligned}\]kernel_size
andstride
can be inferred from input shape and out shape:padding: (0, 0)
stride: (floor(IH / OH), floor(IW / OW))
kernel_size: (IH - (OH - 1) * stride_h, IW - (OW - 1) * stride_w)
- Parameters
oshp (Union[Tuple[int, int], int, Tensor]) – the target output shape of the image of the form Height * Width. Can be tuple (H, W) or a single H for a square image H * H.
- Shape:
Input: \((N, C, H_{in}, W_{in})\) or \((C, H_{in}, W_{in})\).
Output: \((N, C, H_{out}, W_{out})\) or \((C, H_{out}, W_{out})\), where \((H_{out}, W_{out})=\text{output\_shape}\).
- Returns
module. The instance of the
AdaptiveMaxPool2d
module.- Return type
Return type
Examples
>>> import numpy as np >>> m = M.AdaptiveMaxPool2d((2, 2)) >>> inp = mge.tensor(np.arange(0, 16).astype("float32").reshape(1, 1, 4, 4)) >>> oup = m(inp) >>> oup.numpy() array([[[[ 5., 7.], [13., 15.]]]], dtype=float32)