目录

池化层 

最大池化层

MaxPool2d

最大池化操作图示 

最大池化操作代码演示 

综合代码案例 


池化层 

池化层(Pooling Layer)

核心作用:通过降采样减少特征图尺寸,降低计算量,增强特征鲁棒性。

1. 常见类型

  • 最大池化(Max Pooling):提取局部区域最大值。

  • 平均池化(Average Pooling):计算局部区域平均值。

  • 全局池化(Global Pooling):将每个通道的特征图压缩为一个标量(常用于分类任务)。

2. 参数与计算

  • 窗口大小(Kernel Size):如 2×2、3×3。

  • 步长(Stride):窗口滑动的步长,通常等于窗口大小(如 2)。

  • 填充(Padding):边缘填充策略,保持输出尺寸。

MaxPool->下采样

MaxUnPool->上采样 

“池化层”(Pooling Layer)的命名源于其核心操作与 “池”(Pool)这一概念的类比 —— 就像从一个 “池子” 里提取所需内容,本质是对局部区域内的信息进行汇总、筛选并输出。

具体来说,“池” 在这里可理解为 “局部数据区域”:
池化层会将输入特征图划分为多个不重叠的小区域(比如 2×2 的窗口),每个小区域就像一个 “池子”;然后对每个 “池子” 里的所有数据(像素值或特征值)执行特定操作(最大池化取最大值、平均池化取平均值等),最终从每个 “池子” 里只输出一个结果。

这个过程就像从每个 “池子” 里 “提取” 出最具代表性的信息(比如最大池化提取 “最显著特征”,平均池化提取 “平均特征”),因此被形象地称为 “池化”。


最大池化层

 最大池化层是卷积神经网络(CNN)中用于下采样(Downsampling) 的关键组件,通过在输入特征图的局部非重叠区域(池化窗口)内选取最大值作为输出,实现特征筛选与维度压缩。其核心是保留局部区域内最显著的特征信号,同时降低特征图的空间分辨率。

核心参数

  1. 池化窗口尺寸(Kernel Size)
    常用 2×2 或 3×3,决定局部特征的感知范围。窗口越大,压缩率越高,但可能丢失细粒度特征。

  2. 步长(Stride)
    窗口滑动的步幅,通常与窗口尺寸一致(如 2×2 窗口对应步长 2),此时输出尺寸为输入的 1/2(沿高度和宽度)。

  3. 通道独立性
    池化操作在每个通道内独立进行,不跨通道融合(输出通道数与输入一致)。

功能与意义

  1. 维度缩减与计算效率提升
    通过降低特征图的 H×W 维度,减少后续网络层的参数量和计算量(如 2×2 池化可使特征图面积变为原来的 1/4)。

  2. 特征鲁棒性增强

    • 平移不变性:对输入特征的轻微位置偏移(如目标小幅移动)具有容错性(只要最大值仍在窗口内,输出不变)。

    • 噪声抑制:通过选取局部最大值,过滤次要信息(如背景噪声),强化关键特征(如边缘、纹理的强响应区域)。

  3. 防止过拟合
    减少特征冗余,降低模型对局部细节的过度依赖,提升泛化能力。

简易解释:

最大池化可以理解成 “抓重点” 的操作,用一个生活化的例子就能说清楚:

假设你有一张照片(对应输入的特征图),现在用一个小方格(比如 2x2 的池化窗口)在照片上 “扫”—— 每次扫到一个方格,就只留下这个方格里最亮的那个点(取最大值),其他点都忽略;然后方格按固定步长(比如每次挪 2 格)移到下一个位置,重复同样的操作。

最后你会得到一张更小的照片:原来的细节少了,但保留了每个小区域里最突出的特征(比如最亮的色块、最明显的边缘)。

这么做的好处很简单:

  • 照片变小了,后续处理起来更快(降维,减少计算量);
  • 就算原照片里的物体稍微挪了一点位置(比如小方格稍微偏了点),只要最亮的点还在方格里,结果就不变(增强对位置变化的抗干扰能力)。 

简单说,最大池化就是 “用最小的信息损失,把数据变小,同时抓住核心特征”。


MaxPool2d

 参数:

tip:

Floor和Ceiling两个操作

简单来说,就是向上下取整

 

此处ceil和floor两个模式,表示池化核部分超出输入图像边界时候是否保留 

池化后的形状大小:

  

最大池化操作图示 

最大池化操作代码演示 

import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2dinput = 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]
])
print(input.shape)
"""
打印结果:
torch.Size([5, 5])
不符合卷积层的输入要求
在最简单的情况下,输入尺寸为 (N,C,H,W)
N:批量数
C:通道数
H:高度
W:宽度
"""
input = torch.reshape(input, (1, 1, 5, 5))class Mymodule(nn.Module):def __init__(self):super().__init__()self.maxpool = MaxPool2d(kernel_size=3, ceil_mode=True)def forward(self, input):output = self.maxpool(input)return outputmodel = Mymodule()
output = model(input)
print(output)

  Ceil_model=True时

 Ceil_model=False时 


综合代码案例 

import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10("../torchvision_dataset", train=False,transform=torchvision.transforms.ToTensor(),download=True)
dataloader = DataLoader(dataset, batch_size=64)class Mymodule(nn.Module):def __init__(self):super().__init__()self.maxpool = MaxPool2d(kernel_size=3, ceil_mode=True)def forward(self, input):output = self.maxpool(input)return outputmodel = Mymodule()
step = 0
writer = SummaryWriter("logs_test5")
for data in dataloader:imgs, targets = datawriter.add_images("input", imgs, step)output = model(imgs)writer.add_images("output", output, step)step += 1writer.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915751.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915751.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915751.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 默认图库播放视频没有自动循环功能,如何添加2

Android 默认图库播放视频没有自动循环功能, 如何添加 按如下方式修改可以添加 开发云 - 一站式云服务平台 --- a/packages/apps/Gallery2/src/com/android/gallery3d/app/MovieActivity.java +++ b/packages/apps/Gallery2/src/com/android/gallery3d/app/MovieActivity.java…

数字孪生赋能智慧能源电力传输管理新模式

在“双碳”战略和能源数字化转型的双重驱动下,智慧能源系统亟需更高效、精细和智能的管理手段。数字孪生技术作为融合物理世界与数字空间的桥梁,为电力传输系统的全生命周期管理提供了强有力的技术支撑。本文聚焦数字孪生在智慧能源电力传输中的应用&…

Jmeter的元件使用介绍:(二)线程组详解

Jmeter线程组默认包含三种:线程组、setUp线程组、tearDown线程组。线程组之间的执行顺序为:setUp线程组->线程组->tearDown线程组。多数情况都是选用线程组,setUp线程组用于做一些脚本的前置准备,比如:跨线程组设…

AI替代人工:浪潮中的沉浮与觉醒

当AlphaGo以4:1的比分战胜围棋大师李世石之时,人机博弈的疆界被重新划定;当工厂车间里机械臂以惊人精度与不知疲倦的姿态取代了工人重复的手势;当客服电话那头响起的不再是温存人声,而成了准确但缺乏温度的AI语音;当算…

数学建模--matplot.pyplot(结尾附线条样式表格)

matplotlib.pyplot绘图接口 1. 用法 导入模块 import matplotlib.pyplot as plt import numpy as np # 用于生成示例数据绘制简单图表 # 生成数据 x np.linspace(0, 10, 100) y np.sin(x)# 创建图形和坐标轴 plt.figure(figsize(8, 4)) # 设置图表大小 plt.plot(x, y, …

NumPy 实现三维旋转变换

在三维空间中,物体的旋转变换是计算机图形学、机器人学以及三维建模等领域中一个至关重要的操作。这种变换可以通过构造特定的旋转矩阵并将其应用于三维点或向量来实现。本文将深入探讨如何利用 NumPy 这一强大的 Python 科学计算库来实现三维旋转变换,从基本的数学原理到具体…

基于Springboot的中药商城管理系统/基于javaweb的中药材销售系统

管理员:登录,个人中心,用户管理,药材分类管理,药材信息管理,药材入库管理, 药材出库管理,订单管理,云端药馆,系统设置用户:注册,登录&…

试用SAP BTP 02A:试用SAP HANA Cloud

进入SAP BTP主控室 -> 子账 -> 服务市场,选择【数据和分析】-> 点击SAP HANA Cloud点击创建选择服务、计划、运行时环境、空间,输入实例名称,点击下一步在JSON文件中配置HANA管理员密码,点击下一步审核hana 实例信息&…

纯CPU场景下C++的分布式模型训练框架设计思路

0. 参数分配 稠密参数 → MPI 集合通信(All-Reduce / Broadcast / Reduce-Scatter)。稀疏参数 → brpc Parameter Server 异步推拉。 完全去掉 NCCL/GPU 相关部分。1. 整体拓扑 ┌----------------┐ ┌----------------┐ │ Worker-0 │…

训练日志7.21

conda环境,服务器原因无法使用,需重新搭建 学习一下预训练和微调相关内容,对于预训练整体的流程,还不太清楚,自己估计是训练不动,只能微调

Java 高频算法

Java高频算法面试题 以下是Java面试中常见的高频算法题目&#xff0c;涵盖了数据结构、算法思想和实际应用场景。 一、数组与字符串 1. 两数之和 public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map new HashMap<>();for (int i 0; i <…

汽车控制系统——CAPL脚本

CAPL (Communication Access Programming Language) 是一种专门用于嵌入式系统和汽车电子测试领域的编程语言&#xff0c;特别是在 CAN (Controller Area Network) 总线和汽车网络通信系统中被广泛使用。它由 Vector 公司开发&#xff0c;主要用于编写与汽车控制单元 (ECU) 进行…

深入解析Hive SQL转MapReduce的编译原理:从AST抽象语法树到Operator执行树

Hadoop与Hive SQL简介Hadoop生态系统的核心架构作为大数据处理领域的基石&#xff0c;Hadoop生态系统采用分布式架构设计&#xff0c;其核心组件构成了一套完整的解决方案框架。HDFS&#xff08;Hadoop Distributed File System&#xff09;作为底层存储系统&#xff0c;采用主…

在 React 中实现全局防复制hooks

用于防止页面内容被复制、剪切或通过右键菜单操作。它接受三个可配置参数&#xff1a;disableCopy&#xff08;禁用复制&#xff0c;默认true&#xff09;、disableCut&#xff08;禁用剪切&#xff0c;默认true&#xff09;和 disableContextMenu&#xff08;禁用右键菜单&…

InfluxDB HTTP API 接口调用详解(一)

引言 ** 在当今数字化时代&#xff0c;时间序列数据无处不在&#xff0c;从物联网设备产生的传感器数据&#xff0c;到金融领域的交易记录&#xff0c;再到系统运维中的监控指标&#xff0c;这些数据蕴含着丰富的信息&#xff0c;对于企业的决策制定、业务优化以及问题排查等…

使用JMeter进行压力测试(以黑马点评为例、详细图解)

目录 一、前言 二、使用JMeter进行压力测试 一、前言 本博客主要记录如何使用JMeter进行压力测试&#xff0c;以黑马点评P44利用互斥锁解决缓存击穿问题课程为例。至于如何完成JMeter的安装配置及创建桌面快捷方式可以看我的另一篇博客&#xff0c;链接如下&#xff1a; 压测…

旧手机部署轻量级服务器

将旧手机改造为Linux系统设备&#xff0c;不仅能赋予闲置设备新生&#xff0c;还能作为轻量级服务器、开发环境或学习平台使用。以下是三种主流方案&#xff0c;涵盖不同技术需求和安全等级&#xff0c;附操作步骤与避坑指南&#xff1a; ⚙️ 一、三种安装方案对比与选择 方法…

micro avg、macro avg 和 weighted avg 的区别

问题描述&#xff1a; 在多分类任务的评估报告中&#xff0c;经常看到 micro avg、macro avg 和 weighted avg 三种平均指标&#xff0c;请解释它们的区别以及各自的适用场景。&#x1f3af; 参考答案&#xff1a; 这三种平均指标是用来评估多分类模型性能的不同方式&#xff0…

Kafka灰度方案

一、kafka灰度方案架构设计方案&#xff1a;1、外部生产-内部消费场景&#xff1a;&#xff08;外部生产-内部消费&#xff09;解决方案&#xff1a;先通过kdis分流服务---消费外部生产的消息&#xff0c;然后根据管理后台-灰度配置mcs-mimp-core应用默认的环境版本&#xff0c…

深入详解K近邻算法(KNN)在脑部疾病诊断中的应用与实现

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#,Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…