快捷方式

MaxUnpool3d

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

計算 MaxPool3d 的部分逆操作。

MaxPool3d 不是完全可逆的,因為非最大值丟失了。MaxUnpool3dMaxPool3d 的輸出(包括最大值的索引)作為輸入,計算一個部分逆操作,其中所有非最大值都設定為零。

注意

當輸入索引包含重複值時,此操作的行為可能不確定。有關更多資訊,請參閱 https://github.com/pytorch/pytorch/issues/80827可復現性

注意

MaxPool3d 可以將多個輸入大小對映到相同的輸出大小。因此,逆向過程可能會變得模糊。為了解決這個問題,您可以在前向呼叫中將所需的輸出大小作為附加引數 output_size 提供。請參閱下面的輸入部分。

引數
  • kernel_size (inttuple) – 最大池化視窗的大小。

  • stride (inttuple) – 最大池化視窗的步長。預設設定為 kernel_size

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

輸入
  • input: 要執行逆操作的輸入 Tensor

  • indices: MaxPool3d 輸出的索引

  • output_size (可選): 目標輸出大小

形狀
  • 輸入: (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]}
    Hout=(Hin1)×stride[1]2×padding[1]+kernel_size[1]H_{out} = (H_{in} - 1) \times \text{stride[1]} - 2 \times \text{padding[1]} + \text{kernel\_size[1]}
    Wout=(Win1)×stride[2]2×padding[2]+kernel_size[2]W_{out} = (W_{in} - 1) \times \text{stride[2]} - 2 \times \text{padding[2]} + \text{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 貢獻者。

使用 Sphinx 構建,主題由 Read the Docs 提供。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源