評價此頁

torch.nn.functional.fractional_max_pool3d#

torch.nn.functional.fractional_max_pool3d(input, kernel_size, output_size=None, output_ratio=None, return_indices=False, _random_samples=None)[source]#

對由多個輸入平面組成的輸入訊號應用 3D 區域最大池化。

區域最大池化在 Ben Graham 的論文 Fractional MaxPooling 中有詳細描述。

最大池化操作在 kT×kH×kWkT \times kH \times kW 區域中進行,步長由目標輸出大小透過隨機確定。輸出特徵的數量與輸入平面的數量相同。

引數
  • kernel_size – 用於最大池化的視窗大小。可以是單個數字 kk (對應大小為 k×k×kk \times k \times k 的方形核)或元組 (kT, kH, kW)

  • output_size – 目標輸出大小,形式為 oT×oH×oWoT \times oH \times oW。可以是元組 (oT, oH, oW),或者單個數字 oHoH,以生成立方體輸出 oH×oH×oHoH \times oH \times oH

  • output_ratio – 如果希望輸出大小是輸入大小的比例,則可以使用此選項。它必須是範圍在 (0, 1) 的數字或元組。

  • return_indices – 如果設定為 True,則會同時返回索引和輸出。這對於傳遞給 max_unpool3d() 非常有用。

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

  • 輸出:(N,C,Tout,Hout,Wout)(N, C, T_{out}, H_{out}, W_{out})(C,Tout,Hout,Wout)(C, T_{out}, H_{out}, W_{out}),其中 (Tout,Hout,Wout)=output_size(T_{out}, H_{out}, W_{out})=\text{output\_size}(Tout,Hout,Wout)=output_ratio×(Tin,Hin,Win)(T_{out}, H_{out}, W_{out})=\text{output\_ratio} \times (T_{in}, H_{in}, W_{in})

示例:
>>> input = torch.randn(20, 16, 50, 32, 16)
>>> # pool of cubic window of size=3, and target output size 13x12x11
>>> F.fractional_max_pool3d(input, 3, output_size=(13, 12, 11))
>>> # pool of cubic window and target output size being half of input size
>>> F.fractional_max_pool3d(input, 3, output_ratio=(0.5, 0.5, 0.5))