其他分享
首页 > 其他分享> > PyTorch笔记--池化层

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)

参数:

示例:

>>> 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,池化层,nn,--,torch,stride,PyTorch,输入,out
来源: https://www.cnblogs.com/xxmrecord/p/15170493.html