Pytorch框架学习记录8——最大池化的使用

Pytorch框架学习记录8——最大池化的使用

1. MaxPool2d介绍

torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)

在由多个输入平面组成的输入信号上应用 2D 最大池化。

参数

  • kernel_size – 最大的窗口大小
  • stride——窗口的步幅。默认值为kernel_size
  • padding – 要在两边添加隐式零填充
  • dilation – 控制窗口中元素步幅的参数
  • return_indices - 如果True,将返回最大索引以及输出。torch.nn.MaxUnpool2d以后有用
  • ceil_mode – 当为 True 时,将使用ceil而不是floor来计算输出形状

ceil_mode=True 时,如果滑动窗口在左侧填充或输入内开始,则允许滑动窗口越界。将在右侧填充区域开始的滑动窗口将被忽略。

2. 举例

import torch
from torch import nn

input = torch.tensor([[1, 2, 0, 3, 1],
                      [0, 1, 2, 3, 1],
                      [1, 2, 1, 0, 0],
                      [5, 2, 3, 1, 1],
                      [2, 1, 0, 1, 1]], dtype=torch.float32)

input = torch.reshape(input, (-1, 1, 5, 5))


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

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


test = Test()
output = test(input)
print(output)

从图像上直观展示maxpooling的效果:

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

dataset = torchvision.datasets.CIFAR10(root='./dataset', train=False, transform=torchvision.transforms.ToTensor(), download=True)
dataloader = DataLoader(dataset, batch_size=64)

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

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


test = Test()
writer = SummaryWriter('logs')
step = 0
for data in dataloader:
    imgs, target = data
    output = test(imgs)
    writer.add_images("maxpool", output, global_step=step)
    step += 1

writer.close()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yozu_Roo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值