MaxUnpool1d — PyTorch 2.7 documentation (original) (raw)

class torch.nn.MaxUnpool1d(kernel_size, stride=None, padding=0)[source][source]

Computes a partial inverse of MaxPool1d.

MaxPool1d is not fully invertible, since the non-maximal values are lost.

MaxUnpool1d takes in as input the output of MaxPool1dincluding the indices of the maximal values and computes a partial inverse in which all non-maximal values are set to zero.

Note

MaxPool1d can map several input sizes to the same output sizes. Hence, the inversion process can get ambiguous. To accommodate this, you can provide the needed output size as an additional argument output_size in the forward call. See the Inputs and Example below.

Parameters

Inputs:

Shape:

Example:

pool = nn.MaxPool1d(2, stride=2, return_indices=True) unpool = nn.MaxUnpool1d(2, stride=2) input = torch.tensor([[[1., 2, 3, 4, 5, 6, 7, 8]]]) output, indices = pool(input) unpool(output, indices) tensor([[[ 0., 2., 0., 4., 0., 6., 0., 8.]]])

Example showcasing the use of output_size

input = torch.tensor([[[1., 2, 3, 4, 5, 6, 7, 8, 9]]]) output, indices = pool(input) unpool(output, indices, output_size=input.size()) tensor([[[ 0., 2., 0., 4., 0., 6., 0., 8., 0.]]])

unpool(output, indices) tensor([[[ 0., 2., 0., 4., 0., 6., 0., 8.]]])