Pytorch基础(五)—— 池化层

一、概念

池化就是把数据压缩的过程,属于下采样的一种方法,可以显著降低神经网络计算复杂度,减少训练中的过拟合,同时可以使数据具有一定的不变性。

池化从方法上来讲可以分为average Pooling、max Pooling、Overlapping Pooling、Spatial Pyramid Pooling,其中max Pooling是最常见的池化方法,Overlapping Pooling值得注意的是filter的size小于stride,Spatial Pyramid Pooling(空间金字塔池化)可以将不同维度的卷积特征转化到同一个维度,可以减少一些由于croping引起的数据损失。
下图是用最大池化的方法对4 * 4的矩阵进行处理,filter为2 * 2,stride等于2,最终得到2*2的矩阵,矩阵中的值为遍历矩阵的最大值。
在这里插入图片描述

二、Pytorch示例

还是用CIFAR10数据集,池化方法采用最大池化,filter为3*3。

dataset = torchvision.datasets.CIFAR10("../dataset", train=False, download=True,  transform=torchvision.transforms.ToTensor())

dataloader = DataLoader(dataset, batch_size=64)

class Wzh(nn.Module):
    def __init__(self):
        super(Wzh, self).__init__()
        self.maxpool1 = MaxPool2d(kernel_size=3, ceil_mode=True)

    def forward(self, input):
        output = self.maxpool1(input)
        return output

wzh = Wzh()
w= SummaryWriter("MaxPool")
i = 0

for data in dataloader:
    imgs, targets = data    
    output1 = wzh(imgs)
    w.add_images("input", imgs, i)
    w.add_images("output", output1, i)
    i= i+ 1

w.close()

结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值