PyTorch学习之池化层(POOLING LAYERS)

1 MaxPool

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

参数:

kernel_size- 窗口大小
stride- 步长。默认值是kernel_size
padding - 补0数
dilation– 控制窗口中元素步幅的参数
return_indices - 如果等于True,会返回输出最大值的序号,对于上采样操作会有帮助
ceil_mode - 如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取的操作

输入输出尺寸:
在这里插入图片描述

2 MaxUnpool

torch.nn.MaxUnpool1d(kernel_size, stride=None, padding=0)
torch.nn.MaxUnpool2d(kernel_size, stride=None, padding=0)
torch.nn.MaxUnpool3d(kernel_size, stride=None, padding=0)

参数:

kernel_size- 窗口大小
stride - 步长。默认值是kernel_size
padding - 补0数

输入输出尺寸:
在这里插入图片描述

3 AvgPool

torch.nn.AvgPool1d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)
torch.nn.AvgPool2d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)
torch.nn.AvgPool3d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)

参数:

kernel_size - 池化窗口大小
stride- 步长。默认值是kernel_size
padding- 输入的每一条边补充0的层数
dilation – 一个控制窗口中元素步幅的参数
return_indices - 如果等于True,会返回输出最大值的序号,对于上采样操作会有帮助
ceil_mode - 如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作

输入输出尺寸:
在这里插入图片描述

4 FractionalMaxPool2d

由目标输出大小确定的随机步长,在 k H ∗ k W kH*kW kHkW区域进行最大池化操作。输出特征和输入特征的数量相同。
torch.nn.FractionalMaxPool2d(kernel_size, output_size=None, output_ratio=None, return_indices=False, _random_samples=None)

参数:

kernel_size- 最大池化操作时的窗口大小。
output_size - 输出图像的尺寸。
output_ratio – 将输入图像的大小的百分比指定为输出图片的大小,范围在(0,1)之间
return_indices - 默认值False,如果设置为True,会返回输出的索引,索引对 nn.MaxUnpool2d有用。

Fractional Max-Pooling suggests a method for performing the pooling operation with filters smaller than 2x2. This is done by randomly generating pooling regions with a combination of 1x1, 1x2, 2x1 or 2x2 filters to tile the input activation map. The grids are generated randomly on each forward pass, and at test time the predictions can be averaged across several grids.

Fractional Max-Pooling

5 LPPool

对输入信号提供幂平均池化操作。 输出的计算方式:
在这里插入图片描述
当p为无穷大的时候时,等价于最大池化操作
当p=1时,等价于平均池化操作。

torch.nn.LPPool1d(norm_type, kernel_size, stride=None, ceil_mode=False)
torch.nn.LPPool2d(norm_type, kernel_size, stride=None, ceil_mode=False)

参数:

kernel_size: 池化窗口的大小
stride:池化窗口移动的步长。kernel_size是默认值
ceil_mode: ceil_mode=True时,将使用向下取整代替向上取整

输入输出尺寸:
在这里插入图片描述

6 AdaptiveMaxPool

对输入信号,提供自适应最大池化操作 对于任何输入大小的输入,可以将输出尺寸指定为H*W,但是输入和输出特征的数目不会变化。

torch.nn.AdaptiveMaxPool1d(output_size, return_indices=False)
torch.nn.AdaptiveMaxPool2d(output_size, return_indices=False)
torch.nn.AdaptiveMaxPool3d(output_size, return_indices=False)

参数:

output_size: 输出信号的尺寸
return_indices: 如果设置为True,会返回输出的索引。对 nn.MaxUnpool1d有用,默认值False

7 AdaptiveAvgPool

对输入信号,提供自适应平均池化操作 对于任何输入大小的输入,可以将输出尺寸指定为H*W,但是输入和输出特征的数目不会变化。

torch.nn.AdaptiveAvgPool1d(output_size)
torch.nn.AdaptiveAvgPool2d(output_size)
torch.nn.AdaptiveAvgPool3d(output_size)

参数:

output_size: 输出信号的尺寸

你可能感兴趣的:(pytorch)