FractionalMaxPool2d¶
- class torch.nn.FractionalMaxPool2d(kernel_size, output_size=None, output_ratio=None, return_indices=False, _random_samples=None)[source][source]¶
對由數個輸入平面組成的輸入訊號,套用 2D 分數最大池化。
分數最大池化的詳細說明,請參閱 Ben Graham 的論文 Fractional MaxPooling
最大池化運算會在 區域中執行,步幅大小由目標輸出大小隨機決定。輸出特徵的數量等於輸入平面的數量。
注意
output_size
或output_ratio
兩者必須定義其中一個。- 參數
kernel_size (Union[int, Tuple[int, int]]) – 視窗大小,將在該視窗上執行最大值運算。可以是單一數字 k (表示 k x k 的正方形核心) 或 tuple (kh, kw)
output_size (Union[int, Tuple[int, int]]) – 影像的目標輸出大小,格式為 oH x oW。可以是 tuple (oH, oW) 或單一數字 oH (表示 oH x oH 的正方形影像)。請注意,我們必須有 和
output_ratio (Union[float, Tuple[float, float]]) – 如果想要讓輸出大小與輸入大小的比率相同,可以提供此選項。這必須是介於 (0, 1) 之間的數字或 tuple。請注意,我們必須有 和
return_indices (bool) – 如果為
True
,將傳回索引以及輸出。對於傳遞至nn.MaxUnpool2d()
非常有用。預設值:False
- 形狀
輸入: 或 。
輸出: 或 ,其中 或 。
範例
>>> # pool of square window of size=3, and target output size 13x12 >>> m = nn.FractionalMaxPool2d(3, output_size=(13, 12)) >>> # pool of square window and target output size being half of input image size >>> m = nn.FractionalMaxPool2d(3, output_ratio=(0.5, 0.5)) >>> input = torch.randn(20, 16, 50, 32) >>> output = m(input)