Pytorch学习(四)MaxPool最大池化

一维最大池化

函数原型

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

如果输入大小为(N,C,Lin) ,则输出(N,C,Lout)计算公式如下:
在这里插入图片描述

参数说明

在这里插入图片描述
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 : 如果等于True,会返回输出最大值的序号,对于上采样操作会有帮助
ceil_mode : 如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作

代码示例

inPut = torch.tensor([
    [5,3,4,5],
    [3,2,3,1],
    [4,3,4,2]
], dtype=torch.float32)

m = torch.nn.MaxPool1d(3, stride=1)
outPut = m(inPut)
print(outPut)

打印输出:
tensor([[5., 5.],
[3., 3.],
[4., 4.]])
示例中定义了一个3x4大小凹点张量和窗口大小3,移动步长为1的池化层。如下图在第一个窗口中,最大值为5,然后向右移动一个步长,最大值为5,依次移动最大值池化窗口。
在这里插入图片描述

二维最大池化

函数原型

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

如果输入大小为(N, C, Hin, Win) ,则输出(N,C,Hout,Wout)计算公式如下:
在这里插入图片描述

参数说明

代码如下(示例):
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 : 如果等于True,会返回输出最大值的序号,对于上采样操作会有帮助
ceil_mode : 如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作

代码示例

in_features = torch.randn( 1, 3, 4)
mm = torch.nn.MaxPool2d(3, stride=1)
out_features = mm(in_features)
print(out_features)

打印输出:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44901043/article/details/123769751
今日推荐