pytorch中二维平均池化模块torch.nn.AdaptiveAvgPool2d() 与 torch.nn.AvgPool2d() 的区别

pytorch中二维平均池化模块torch.nn.AdaptiveAvgPool2d() 与 torch.nn.AvgPool2d() 的区别

pytorch中二维平均池化模块torch.nn.AdaptiveAvgPool2d() 与 torch.nn.AvgPool2d() 的区别_第1张图片

  • nn.AvgPool2d()

原始模型:

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

其中不同的参数表示的意义:

kernel_size( int or tuple)-池化窗口大小
stride( int or tuple , optional )- max pooling的窗口移动的步长。默认值是kernel_size
padding( int or tuple , optional )-输入的每一条边补充0的层数
dilation( int or tuple , optional )-一个控制窗口中元素步幅的参数
ceil_mode -如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作
count_include_pad-如果等于True,计算平均池化时,将包括padding填充的0

在日常的使用中只需要关注kernel_sizestridepadding三个参数即可。
最后输出的尺寸是
在这里插入图片描述
其中,x 表示输入的维度大小, y 表示对应输出的维度大小。

- nn.AdaptiveAvgPool2d()

模块相比nn.AvgPool2d()模块多了一个自适应,使用起来更加的方便。
原始模型为:

class torch.nn.AdaptiveAvgPool2d(input,output_size)

意思就是不管之前的特征图尺寸为多少,只要设置为(1,1),那么最终特征图大小都为(1,1)

你可能感兴趣的:(python,深度学习,算法)