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

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

Shape:
      * Input: (N, C, D_{in}, H_{in}, W_{in}) or (C, D_{in}, H_{in},
        W_{in}).
  * Output: (N, C, D_{out}, H_{out}, W_{out}) or (C, D_{out},
    H_{out}, W_{out}), where

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

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

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

    or as given by "output_size" in the call operator

Example:
  >>> # pool of square window of size=3, stride=2
  >>> pool = nn.MaxPool3d(3, stride=2, return_indices=True)
  >>> unpool = nn.MaxUnpool3d(3, stride=2)
