目录
1. introduction
- 卷积层和池化层是卷积神经网络的基本特征
- 卷积和池化的区别是,卷积处理的是图像本身---像素相乘又相加,而池化是一个滤波器,是对像素的映射进行处理
- 池化层的作用是给特征图进行降维
- 池化操作分为
- 均值池化:对像素点取均值,敏感于背景
- 最大池化:对像素点取最大值,敏感于纹理
2. 操作一下
2.1 接口
torch.nn.functional.max_pool2d(input, kernel_size, stride = None, padding=0,dilation=1, ceil_mode=False, count_inc_pad=False)
2.2 practice
2.2.1 先仿制一个图片变量
import torch
img = torch.tensor([
[[0.,0.,0.,0.], [1.,1.,1.,1.], [2.,2.,2.,2.], [3.,3.,3.,3.]],
[[4.,4.,4.,4.], [5.,5.,5.,5.], [6.,6.,6.,6.], [7.,7.,7.,7.]]
]).reshape([1,2,4,4])
2.2.2 定义几种池化
pooling = torch.nn.functional.max_pool2d(img, kernel_size=2)
#最大池化,步长为2
pooling1 = torch.nn.functional.max_pool2d(img, kernel_size=2,stride=1)
#最大池化,步长为1
pooling2 = torch.nn.functional.avg_pool2d(img, kernel_size=4,padding=(1,1),stride=1)
#均值池化,加padding,均值区域为4
pooling3 = torch.nn.functional.avg_pool2d(img, kernel_size=4)
#均值池化,均值区域为4