PyTorch笔记--池化层
作者:互联网
深度学习的运算量与运算过程的张量大小(N, C, H, W)有关。输入的张量太大,不仅不匹配最终的输出结果,还会
使计算量变大。为了能够同时减少计算量,并且得到比较小的输出,神经网络会使用池化层来对中间的特征向量
进行降采样,减小H和W的大小。池化层没有任何参数张量和缓存张量,在深度学习过程中仅仅相当于改变维度
大小的模块。
最大池化层:选定某一卷积核的区域,取这个区域中输入张量的最大值。根据输入张量形状的不同,最大池化层分为
一维、二维和三维最大池化。
torch.nn.MaxPool1d
对于输入信号的输入通道,提供1维最大池化(max pooling
)操作
class torch.nn.MaxPool1d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
torch.nn.MaxPool2d
对于输入信号的输入通道,提供2维最大池化(max pooling
)操作
class torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
torch.nn.MaxPool3d
对于输入信号的输入通道,提供3维最大池化(max pooling)操作
class torch.nn.MaxPool3d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
参数:
- kernel_size(
int
ortuple
) - max pooling的窗口大小 - stride(
int
ortuple
,optional
) - max pooling的窗口移动的步长。默认值是kernel_size
- padding(
int
ortuple
,optional
) - 输入的每一条边补充0的层数 - dilation(
int
ortuple
,optional
) – 一个控制窗口中元素步幅的参数 - return_indices - 如果等于
True
,会返回输出最大值的序号,对于上采样操作会有帮助 - ceil_mode - 如果等于
True
,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作
示例:
>>> import torch >>> import torch.nn as nn >>> x = torch.randn(4, 3, 20) >>> layer = nn.MaxPool1d(2, stride=2) >>> out = layer(x) >>> out.shape torch.Size([4, 3, 10])
>>> import torch >>> import torch.nn as nn >>> x = torch.randn(4, 3, 28, 28) >>> layer = nn.MaxPool2d(2, stride=2) >>> out = layer(x) torch.Size([4, 3, 14, 14])
>>> import torch >>> import torch.nn as nn >>> x = torch.randn(4, 3, 15, 15, 15) >>> layer = nn.MaxPool3d(3, stride=2) >>> out = layer(x) >>> out.shape torch.Size([4, 3, 7, 7, 7])
平均池化层:选定某一卷积核的区域,取这个区域中输入张量的平均值。同理,也有一维、二维、三维之分。
torch.nn.AvgPool1d
对信号的输入通道,提供1维平均池化(average pooling ) 输入信号的大小(N,C,L),输出大小(N,C,L_out)。
class torch.nn.AvgPool1d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)
torch.nn.AvgPool2d
对信号的输入通道,提供2维的平均池化(average pooling )输入信号的大小(N,C,H,W),输出大小(N,C,H_out,W_out)
class torch.nn.AvgPool2d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)
torch.nn.AvgPool3d
对信号的输入通道,提供3维的平均池化(average pooling
) 输入信号的大小(N,C,D,H,W),输出大小(N,C,D_out,H_out,W_out)
class torch.nn.AvgPool3d(kernel_size, stride=None)
参数:
- kernel_size(
int
ortuple
) - 池化窗口大小 - stride(
int
ortuple
,optional
) - avg pooling的窗口移动的步长。默认值是kernel_size
- padding(
int
ortuple
,optional
) - 输入的每一条边补充0的层数 - dilation(
int
ortuple
,optional
) – 一个控制窗口中元素步幅的参数 - ceil_mode - 如果等于
True
,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作 - count_include_pad - 如果等于
True
,计算平均池化时,将包括padding
填充的0
标签:kernel,池化层,nn,--,torch,stride,PyTorch,输入,out 来源: https://www.cnblogs.com/xxmrecord/p/15170493.html