proportionally align the output and input pixels, and thus the
     output values can depend on the input size. This was the default
     behavior for these modes up to version 0.3.1. Since then, the
     default behavior is "align_corners = False". See below for
     concrete examples on how this affects the outputs.
Note:
 If you want downsampling/general resizing, you should use
 "interpolate()".

Examples:
  >>> input = torch.arange(1, 5, dtype=torch.float32).view(1, 1, 2, 2)
  >>> input
  tensor([[[[1., 2.],
            [3., 4.]]]])

  >>> m = nn.Upsample(scale_factor=2, mode='nearest')
  >>> m(input)
  tensor([[[[1., 1., 2., 2.],
            [1., 1., 2., 2.],
            [3., 3., 4., 4.],
            [3., 3., 4., 4.]]]])

  >>> m = nn.Upsample(scale_factor=2, mode='bilinear')  # align_corners=False
  >>> m(input)
  tensor([[[[1.0000, 1.2500, 1.7500, 2.0000],
            [1.5000, 1.7500, 2.2500, 2.5000],
