快速鍵

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 (inttuple) – 最大池化視窗的大小。

  • stride (inttuple) – 最大池化視窗的步幅。 預設情況下,它設定為 kernel_size

  • padding (inttuple) – 新增到輸入的填充。

輸入
  • input: 要反轉的輸入張量。

  • indices: 由 MaxPool3d 給出的索引。

  • output_size (optional): 目標輸出大小。

形狀
  • 輸入: (N,C,Din,Hin,Win)(N, C, D_{in}, H_{in}, W_{in})(C,Din,Hin,Win)(C, D_{in}, H_{in}, W_{in})

  • 輸出: (N,C,Dout,Hout,Wout)(N, C, D_{out}, H_{out}, W_{out})(C,Dout,Hout,Wout)(C, D_{out}, H_{out}, W_{out}),其中

    Dout=(Din1)×stride[0]2×padding[0]+kernel_size[0]D_{out} = (D_{in} - 1) \times \text{stride[0]} - 2 \times \text{padding[0]} + \text{kernel\_size[0]}
    輸出高度 = (輸入高度 - 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])

文件

取得 PyTorch 的完整開發者文件

檢視文件

教學

取得針對初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並取得問題解答

檢視資源