池化层

这篇具有很好参考价值的文章主要介绍了池化层。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

池化层

池化操作

池化操作是CNN中非常常见的一种操作,池化层是模仿人的视觉系统对数据进行降维,池化操作通常也叫做子采样(Subsampling)或降采样(Downsampling),在构建卷积神经网络时,往往会用在卷积层之后,通过池化来降低卷积层输出的特征维度,有效减少网络参数的同时还可以防止过拟合现象。

池化操作的作用:将一个尺寸较大的图像通过池化操作转换成尺寸较小的图像,但是这个操作过程中尽量保留原始图像的特征。详细了解池化操作

池化操作最常见的是最大池化和平均池化,此外还有随即池化和中值池化,nn.MaxPool1dnn.MaxPool2dnn.MaxPool3d最大池化也被称为下采样;nn.MaxUnPool1dnn.MaxUnPool2dnn.MaxUnPool3d为上采样,最常用的是nn.MaxPool2d

池化层

import torch

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]])

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

池化层

池化层在神经网络中的使用

nn.MaxPool2d为例

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

池化层

ceil_mode默认为False,当为True时使用ceil模式,表示当池化核覆盖的输入图像超出边缘时保留池化操作;False时使用floor模式,表示不保留。(ceil表示向上取整,floor表示向下取整)

池化层

输入和输出的尺寸计算

池化层

代码实现

# 自定义输入
import torch
from torch import nn
from torch.nn import MaxPool2d

# 最大池化对long数据型不能实现,input中以为都是整数,所以需要进行类型转换,转换为浮点数,1->1.0
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))
print(input.shape)


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

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

basempool = Basempool()
output = basempool(input)
print(output)

池化层

# 使用CIFAR 10数据集作为输入
import torch
import torchvision.datasets
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("./dataset2", train=False, download=True, transform=torchvision.transforms.ToTensor())

dataloader = DataLoader(dataset, batch_size=64)

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

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

basempool = Basempool()

writer = SummaryWriter("logs")

step = 0
for data in dataloader:
    imgs, targets = data
    writer.add_images("maxpool_input", imgs, step)
    output = basempool(imgs)
    writer.add_images("maxpool_output", output, step)
    step = step + 1

writer.close()

池化层池化层文章来源地址https://www.toymoban.com/news/detail-650661.html

到了这里,关于池化层的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是池化层?

    池化层(Pooling Layer)是卷积神经网络(CNN)中的一个重要组件,用于减少特征图(feature maps)的维度,同时保留重要的特征信息。以下是池化层的几个关键特点: 降低维度:池化层通过减少特征图的大小来降低数据的空间维度,这有助于减少计算量和避免过拟合。 操作方式

    2024年01月17日
    浏览(43)
  • 机器学习——池化层

    池化层是深度学习中常用的一种层级结构,它可以对输入数据进行降采样,减少数据量,同时保留重要的特征信息。池化层通常紧跟在卷积层之后,可以有效地减少数据量和计算复杂度,提高模型的训练速度和泛化能力。 池化层的结构与卷积层类似,它也由多个滤波器组成,

    2024年02月15日
    浏览(55)
  • 计算机视觉:池化层的作用是什么?

    在深度学习中,卷积神经网络(CNN)是一种非常强大的模型,广泛应用于图像识别、目标检测、自然语言处理等领域。而池化层作为CNN中的一个关键步骤,扮演着优化神经网络、提升深度学习性能的重要角色。本文将深入探讨池化层的作用及其重要性,帮助读者更好地理解和

    2024年02月07日
    浏览(43)
  • 神经网络基础-神经网络补充概念-62-池化层

    池化层(Pooling Layer)是深度学习神经网络中常用的一种层级结构,用于减小输入数据的空间尺寸,从而降低模型的计算复杂度,减少过拟合,并且在一定程度上提取输入数据的重要特征。池化层通常紧跟在卷积层之后,用于缩小卷积层输出的尺寸。 常见的池化操作包括最大

    2024年02月12日
    浏览(51)
  • 每天五分钟计算机视觉:池化层的反向传播

    卷积神经网络(Convolutional Neural Network,CNN)作为一种强大的深度学习模型,在计算机视觉任务中取得了巨大成功。其中,池化层(Pooling Layer)在卷积层之后起到了信息压缩和特征提取的作用。然而,池化层的反向传播一直以来都是一个相对复杂和深奥的问题。本文将详细解

    2024年02月05日
    浏览(44)
  • PyTorch 各种池化层函数全览与用法演示

    目录 torch.nn.functional子模块Pooling层详解 avg_pool1d 用法与用途 参数 注意事项 示例代码 avg_pool2d 用法与用途 参数 注意事项 示例代码 avg_pool3d 用法与用途 参数 注意事项 示例代码 max_pool1d 用法与用途 参数 注意事项 示例代码 max_pool2d 用法与用途 参数 注意事项 示例代码 max_pool

    2024年02月01日
    浏览(71)
  • 卷积神经网络中的卷积层、池化层、全连接层、softmax

    卷积层的作用是提取输入图片中的信息,这些信息被称为图像特征,这些特征是由图像中的每个像素通过组合或者独立的方式所体现,比如图片的纹理特征,颜色特征。 卷积操作类似于数学中的卷积,但是更加简单,计算机和我们看到的图像不一样,计算机看到的图像其实就

    2024年02月09日
    浏览(43)
  • Pytorch中最大池化层Maxpool的作用说明及实例使用(附代码)

    目录 1. 池化的功能 2. 神经原网络设定最大卷积层的作用 3. torch.nn.MaxPool2d() 4. 使用torch.nn.MaxPool2d()实战  3. Pytorch源码 1. 池化的功能 先通过与卷积的相同点及不同点说明池化的功能。 池化与卷积的共同点: 池化操作也是原图像矩阵(或特征图矩阵)与一个固定形状的窗口(

    2024年02月05日
    浏览(48)
  • 一起学习用Verilog在FPGA上实现CNN----(四)池化层设计

    自顶而下分析池化层的设计过程 图为该项目的平均池化层,其包含一个AvgPoolSingle单元,模块的输入为图像特征矩阵,输出为池化后的特征矩阵 图片来自附带的技术文档《Hardware Documentation》 池化层的原理图如图所示,其中输入位宽为75264,输出位宽为18816。池化层位于卷积层

    2024年01月19日
    浏览(82)
  • Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)

     一、卷积层—Convolution Layers  1.1 1d / 2d / 3d卷积 1.2 卷积—nn.Conv2d() nn.Conv2d 1.3 转置卷积—nn.ConvTranspose nn.ConvTranspose2d  二、池化层—Pooling Layer (1)nn.MaxPool2d (2)nn.AvgPool2d (3)nn.MaxUnpool2d  三、线性层—Linear Layer  nn.Linear  四、激活函数层—Activate Layer (1)nn.Sigmoid  (

    2024年01月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包