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 given
sizeor the givenscale_factorWarning
This function is deprecated in favor of
torch.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 by
mode.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 to
True, 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_factoris kept the same. This only has an effect whenmodeis'linear','bilinear','bicubic'or'trilinear'.Default:False
Note
With
mode='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
With
align_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.SeeUpsamplefor concrete examples on how thisaffects the outputs.