it will be used as divisor, otherwise size of the pooling
        region will be used.
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} = \left\lfloor\frac{H_{in}  + 2 \times
       \text{padding}[0] -
       \text{kernel\_size}[0]}{\text{stride}[0]} + 1\right\rfloor

       W_{out} = \left\lfloor\frac{W_{in}  + 2 \times
       \text{padding}[1] -
       \text{kernel\_size}[1]}{\text{stride}[1]} + 1\right\rfloor

Examples:
  >>> # pool of square window of size=3, stride=2
  >>> m = nn.AvgPool2d(3, stride=2)
  >>> # pool of non-square window
  >>> m = nn.AvgPool2d((3, 2), stride=(2, 1))
  >>> input = torch.randn(20, 16, 50, 32)
  >>> output = m(input)
