the input
Inputs:
      * input: the input Tensor to invert
  * *indices*: the indices given out by "MaxPool2d"

  * *output_size* (optional): the targeted output size

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} = (H_{in} - 1) \times \text{stride[0]} - 2 \times
       \text{padding[0]} + \text{kernel\_size[0]}

       W_{out} = (W_{in} - 1) \times \text{stride[1]} - 2 \times
       \text{padding[1]} + \text{kernel\_size[1]}

    or as given by "output_size" in the call operator

Example:
  >>> pool = nn.MaxPool2d(2, stride=2, return_indices=True)
  >>> unpool = nn.MaxUnpool2d(2, stride=2)
  >>> input = torch.tensor([[[[ 1.,  2.,  3.,  4.],
                              [ 5.,  6.,  7.,  8.],
                              [ 9., 10., 11., 12.],
                              [13., 14., 15., 16.]]]])
