Rate this Page

torch.nn.functional.upsample#

torch.nn.functional.upsample(input,size=None,scale_factor=None,mode='nearest',align_corners=None)[source]#

Upsample input.

Provided tensor is upsampled to either the givensize or the givenscale_factor

Warning

This function is deprecated in favor oftorch.nn.functional.interpolate().This is equivalent withnn.functional.interpolate(...).

Note

This operation may produce nondeterministic gradients when given tensors on a CUDA device. SeeReproducibility for more information.

The algorithm used for upsampling is determined bymode.

Currently temporal, spatial and volumetric upsampling are supported, i.e.expected inputs are 3-D, 4-D or 5-D in shape.

The input dimensions are interpreted in the form:mini-batch x channels x [optional depth] x [optional height] x width.

The modes available for upsampling are:nearest,linear (3D-only),bilinear,bicubic (4D-only),trilinear (5D-only)

Parameters
  • input (Tensor) – the input tensor

  • size (int orTuple[int] orTuple[int,int] orTuple[int,int,int]) – output spatial size.

  • scale_factor (float orTuple[float]) – multiplier for spatial size. Has to match input size if it is a tuple.

  • mode (str) – algorithm used for upsampling:'nearest' |'linear' |'bilinear' |'bicubic' |'trilinear'. Default:'nearest'

  • align_corners (bool,optional) – Geometrically, we consider the pixels of theinput and output as squares rather than points.If set toTrue, the input and output tensors are aligned by thecenter points of their corner pixels, preserving the values at the corner pixels.If set toFalse, the input and output tensors are aligned by the cornerpoints of their corner pixels, and the interpolation uses edge value paddingfor out-of-boundary values, making this operationindependent of input sizewhenscale_factor is kept the same. This only has an effect whenmodeis'linear','bilinear','bicubic' or'trilinear'.Default:False

Note

Withmode='bicubic', it’s possible to cause overshoot, in other words it can producenegative values or values greater than 255 for images.Explicitly callresult.clamp(min=0,max=255) if you want to reduce the overshootwhen displaying the image.

Warning

Withalign_corners=True, the linearly interpolating modes(linear,bilinear, andtrilinear) don’t proportionally align theoutput and input pixels, and thus the output values can depend on theinput size. This was the default behavior for these modes up to version0.3.1. Since then, the default behavior isalign_corners=False.SeeUpsample for concrete examples on how thisaffects the outputs.