神经网络-池化层

本文介绍了PyTorch中常用的nn.MaxPool2d层,包括其参数解释、最大池化操作原理、以及如何在CIFAR10数据集上应用,展示了池化前后TensorBoard可视化的效果,以提升神经网络训练效率。
摘要由CSDN通过智能技术生成

池化层介绍

最常用的是nn.MaxPool2d

在这里插入图片描述

#  调用方法
torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)

Parameters:
kernel_size (Union[int, Tuple[int, int]]) – the size of the window to take a max over. 窗口的最大值
stride (Union[int, Tuple[int, int]]) – the stride of the window. Default value is kernel_size
padding (Union[int, Tuple[int, int]]) – Implicit negative infinity padding to be added on both sides
dilation (Union[int, Tuple[int, int]]) – a parameter that controls the stride of elements in the window. 一般不设置
return_indices (bool) – if True, will return the max indices along with the outputs. Useful for torch.nn.MaxUnpool2d later. 用的较少
ceil_mode (bool) – when True, will use ceil instead of floor to compute the output shape. ceiling模式向上取整,floor模式向下取整

最大池化操作

在最大池化过程中,池化核与输入图像进行匹配,选取池化核覆盖的最大值
在这里插入图片描述

最大池化的作用

保留数据特征的同时减少数据量,对于神经网络来说,需要计算的数据量变少了,神经网络的训练速度就会提高

实现

import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

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

dataloader = DataLoader(dataset, batch_size=64)

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

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

model = Model()

writer = SummaryWriter("logs")
step = 0

for data in dataloader:
    imgs, targets = data
    writer.add_images("input", imgs, step)
    output = model(imgs)
    writer.add_images("output", output, step)
    step = step + 1

writer.close()

控制台虚拟环境中输入以下命令打开tensorboard

tensorboard --logdir=logs

池化前
在这里插入图片描述
池化后
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值