1. 函数语法格式

官方链接

torch.nn.MaxPool2d(
	kernel_size, 
	stride=None, 
	padding=0, 
	dilation=1, 
	return_indices=False, 
	ceil_mode=False
)

2. 参数解释

  • kernel_size (int or tuple)【必选】:max pooling 的窗口大小,当最大池化窗口是方形的时候,只需要一个整数边长即可;最大池化窗口不是方形时,要输入一个元组表 高和宽。
  • stride (int or tuple, optional)【可选】:max pooling 的窗口移动的步长。默认值是 kernel_size
  • padding (int or tuple, optional)【可选】:输入的每一条边补充0的层数
  • dilation (int or tuple, optional)【可选】:一个控制窗口中元素步幅的参数
  • return_indices (bool)【可选】:如果等于 True,会返回输出最大值的序号,对于上采样操作会有帮助
  • ceil_mode (bool)【可选】:如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作

    ⭐ dilation 说明

    如果我们设置的 dilation=0 的话,效果如图:蓝色为输入,绿色为输出,最大池化窗口为3 × 3

    如果设置的是dilation=1,那么效果如图:蓝色为输入,绿色为输出,最大池化窗口卷积核仍为 3 × 3 。

    3. 尺寸关系

    4. 使用案例

    # pool of square window of size=3, stride=2
    m = nn.MaxPool2d(3, stride=2)
    # pool of non-square window
    m = nn.MaxPool2d((3, 2), stride=(2, 1))
    input = torch.randn(20, 16, 50, 32)
    output = m(input)
    

    5. nn.functional.max_pool2d

    官网链接

     区别

    torch.nn.MaxPool2dtorch.nn.functional.max_pool2d,在 pytorch 构建模型中,都可以作为最大池化层的引入,但前者为类模块,后者为函数,在使用上存在不同。

    ⭐ 使用

    torch.nn.functional.max_pool2d(
    	input, 
    	kernel_size, 
    	stride=None, 
    	padding=0, 
    	dilation=1, 
    	ceil_mode=False, 
    	return_indices=False
    )