MaxPool2d
class torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
Applies a 2D max pooling over an input signal composed of several
   input planes.
In the simplest case, the output value of the layer with input size
   (N, C, H, W), output (N, C, H_{out}, W_{out}) and "kernel_size"
   (kH, kW) can be precisely 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}

If "padding" is non-zero, then the input is implicitly padded with
   negative infinity on both sides for "padding" number of points.
   "dilation" controls the spacing between the kernel points. It is
   harder to describe, but this link has a nice visualization of what
   "dilation" does.
Note: