MaxUnpool1d¶
- class torch.nn.MaxUnpool1d(kernel_size, stride=None, padding=0)[原始碼][原始碼]¶
計算
MaxPool1d
的部分反運算。MaxPool1d
並非完全可逆,因為非最大值會遺失。MaxUnpool1d
將MaxPool1d
的輸出(包括最大值的索引)作為輸入,並計算一個部分反運算,其中所有非最大值都設定為零。注意
當輸入索引具有重複值時,此操作的行為可能不具確定性。詳見https://github.com/pytorch/pytorch/issues/80827 和 再現性 以獲得更多資訊。
注意
MaxPool1d
可以將多個輸入大小映射到相同的輸出大小。因此,反向運算的過程可能會變得不明確。為了適應這種情況,您可以提供所需的輸出大小作為前向呼叫中的額外參數output_size
。請參閱下面的輸入和範例。- 參數
- 輸入
input: 要反轉的輸入張量。
indices: 由
MaxPool1d
給出的索引。output_size (可選): 目標輸出大小。
- 形狀
輸入: 或 。
輸出: 或 ,其中
或者由呼叫運算元中的
output_size
給定
範例
>>> 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.]]])