MaxUnpool3d¶
- class torch.nn.MaxUnpool3d(kernel_size, stride=None, padding=0)[原始碼][原始碼]¶
計算
MaxPool3d
的部分反運算。MaxPool3d
並非完全可逆,因為非最大值會遺失。MaxUnpool3d
接收MaxPool3d
的輸出,包括最大值的索引,並計算一個部分反向,其中所有非最大值都設為零。注意
當輸入索引具有重複值時,此操作可能表現出非確定性行為。有關更多資訊,請參閱 https://github.com/pytorch/pytorch/issues/80827 和 再現性。
注意
MaxPool3d
可以將多個輸入大小映射到相同的輸出大小。 因此,反向過程可能會變得模糊。 為了適應這一點,您可以提供所需的輸出大小作為前向呼叫中的額外參數output_size
。 請參閱下面的「輸入」部分。- 參數
kernel_size (int 或 tuple) – 最大池化視窗的大小。
stride (int 或 tuple) – 最大池化視窗的步幅。 預設情況下,它設定為
kernel_size
。padding (int 或 tuple) – 新增到輸入的填充。
- 輸入
input: 要反轉的輸入張量。
indices: 由
MaxPool3d
給出的索引。output_size (optional): 目標輸出大小。
- 形狀
輸入: 或 。
輸出: 或 ,其中
輸出高度 = (輸入高度 - 1) * stride[1] - 2 * padding[1] + kernel_size[1]輸出寬度 = (輸入寬度 - 1) * stride[2] - 2 * padding[2] + kernel_size[2]或者由呼叫運算符中的
output_size
給定
範例
>>> # pool of square window of size=3, stride=2 >>> pool = nn.MaxPool3d(3, stride=2, return_indices=True) >>> unpool = nn.MaxUnpool3d(3, stride=2) >>> output, indices = pool(torch.randn(20, 16, 51, 33, 15)) >>> unpooled_output = unpool(output, indices) >>> unpooled_output.size() torch.Size([20, 16, 51, 33, 15])