池化层笔记

池化层

文章目录

  • 池化层
    • 二维池化层
      • 超参数
      • 池化层的分类
      • 代码实现
        • 填充和步幅
      • 多个通道
    • 总结

卷积位置敏感,可以检测垂直边缘。需要有一定程度的平移不变性,而在平时图片的拍摄,会因为图片的照明,物体位置,比例,外观等因素会导致对位置过度敏感。池化层的出现解决了这一问题。

池化层的作用:使得模型对图片的位置信息没那么敏感;降低对空间降采样表示的敏感性。

为什么先池化层再应用中出现概率不高呢?因为现在对数据处理之前做扰动操作,淡化了池化层的作用。

二维池化层

  • 返回滑动窗口的最大值

池化的效果:模糊效果,在临近的列可以取得相同的特征(池化层对于像素偏移的容忍性)

超参数

同卷积,有填充,步幅的超参数;多个通道的池化会不会将最后的结果相加,故输入通道和输出通道的个数相同。没有可学习的参数,即没有卷积核超参数的学习。

池化层的分类

  • 最大池化层:每个窗口中最强的模式信号

在这里插入图片描述

  • 平均池化层:将最大池化层中的“最大”操作替换为“平均”

代码实现

import torch
from torch import nn
from d2l import torch as d2ldef pool2d(X, pool_size, mode='max'):p_h, p_w = pool_sizeY = torch.zeros((X.shape[0] - p_h + 1, X.shape[1] - p_w + 1))for i in range(Y.shape[0]):for j in range(Y.shape[1]):if mode == 'max':Y[i, j] = X[i: i + p_h, j: j + p_w].max()elif mode == 'avg':Y[i, j] = X[i: i + p_h, j: j + p_w].mean()return Y
X = torch.tensor([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]])
pool2d(X, (2, 2))				pool2d(X, (2, 2), 'avg')
--------------------------------------------------------------
tensor([[4., 5.],				tensor([[2., 3.],[7., 8.]])						[5., 6.]])		
填充和步幅

同卷积操作中的填充和步幅

# 定义一个矩阵
X = torch.arange(16, dtype=torch.float32).reshape((1, 1, 4, 4))
-------------------------------------------------------------------
tensor([[[[ 0.,  1.,  2.,  3.],[ 4.,  5.,  6.,  7.],[ 8.,  9., 10., 11.],[12., 13., 14., 15.]]]])
# 池化操作,3*3的池化操作,不够3*3不继续进行运算
pool2d = nn.MaxPool2d(3)
pool2d(X)
-------------------------------------------------------------------
tensor([[[[10.]]]])
# 核大小为2*3,第一个位置都是行操作,第二个位置都是列操作
pool2d = nn.MaxPool2d((2, 3), stride=(2, 3), padding=(0, 1))
pool2d(X)
---------------------------------------------------------------
tensor([[[[ 5.,  7.],[13., 15.]]]])

多个通道

池化处理多通道输入数据时,池化层在每个输入通道上单独运算,不像卷积层在通道上对输入进行汇总。

# 输入数据变成 1*2*4*4
X = torch.cat((X, X + 1), 1)
--------------------------------------------
tensor([[[[ 0.,  1.,  2.,  3.],[ 4.,  5.,  6.,  7.],[ 8.,  9., 10., 11.],[12., 13., 14., 15.]],[[ 1.,  2.,  3.,  4.],[ 5.,  6.,  7.,  8.],[ 9., 10., 11., 12.],[13., 14., 15., 16.]]]])pool2d = nn.MaxPool2d(3, padding=1, stride=2)
pool2d(X)
---------------------------------------------
tensor([[[[ 5.,  7.],[13., 15.]],[[ 6.,  8.],[14., 16.]]]])

发现pool2d和maxpool2d的区别:

MaxPool2d 的行为

  • 不满足核大小时:在 MaxPool2d 中,如果输入特征图的某个区域(例如最后一部分)小于指定的核大小,不会进行池化运算。这意味着最后的一部分数据如果不满足核的大小,将被忽略,直接跳过计算。

Pool2d 的行为

  • 始终进行运算:相比之下,pool2d(或在 PyTorch 中的 F.avg_pool2dF.max_pool2d)会处理整个输入,即使最后一部分数据不满足核的大小。在这种情况下,pool2d 会对不足的部分执行计算,而不会忽略它们。

总结

  • 池化层返回窗口中最大或平均值

  • 缓解卷积层对位置的敏感性

  • 同样 有窗口大小、填充和步幅作为超参数

  • 池化的本质是增强泛化 避免过拟合

池化层窗口的重叠与没有重叠的差别没有很大差别。

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

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

相关文章

以太网交换安全:DHCP Snooping

一、DHCP Snooping的概念及功能 DHCP Snooping是一种用于增强网络中DHCP服务安全性的技术。以下是对以太网交换安全中的DHCP Snooping进行详细的介绍: 基本概述 定义目的:DHCP Snooping是一种网络安全技术,旨在防止未经授权的DHCP服务器在网…

【问题记录】解决VMware虚拟机中鼠标侧键无法使用的问题

前言 有项目需要在Linux系统中开发,因为要测试Linux中相关功能,要用到shell,在Windows中开发太麻烦了,因此我选择使用UbuntuXfce4桌面来开发,这里我用到了Linux版本的IDEA,除了快捷键经常和系统快捷键冲突…

[JAVAEE] 面试题(二) - CAS 和 原子类

目录 一. CAS的实现原理 1.1 伪代码分析 1.2 底层实现 二. CAS 操作示例 三. ABA问题 四. 原子类 4.1 使用原子类的目的 4.2 原子类的使用示例 五. 总结 一. CAS的实现原理 CAS(compare and swap 比较和交换)是一种用于实现无锁并发的技术. 1.1 伪代码分析 // 伪代…

Ubuntu 20.04 安装 OpenCV 和 OpenCV_contrib 教程

Ubuntu 20.04 安装 OpenCV 和 OpenCV_contrib 教程 Ubuntu 20.04 安装 OpenCV 和 OpenCV_contrib 教程前言 OpenCV概述核心功能优势特点应用领域安装与使用 OpenCV_contrib概述核心功能具体模块 安装与使用一、准备工作二、下载OpenCV和OpenCV_contrib三、编译和安装OpenCV四、…

HCIP--2 TCP有关笔记

学习目标: 目录 学习目标: 学习内容: TCP协议 七层结构 END.......... 问题:TCP/IP 的四层协议 问题:网络的七层结构及其作用 问题:协议名称是什么? TELNET---远程登陆系统 HTTP---超文本传输协…

【优先算法】双指针

✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:优先算法 个人主页:Celias blog~ 目录 ​​​​​​移动零 复写零 快乐数 盛水最多的容器 …

Apache配置案例二:基于域名的虚拟主机搭建

文章目录 前言一、任务要求:二、任务分析:二、任务步骤:总结 前言 基于域名的虚拟主机搭建,涉及诸多知识点,一是域名服务器的搭建配置,前面的博文《图示详解OpenEuler下 DNS安装、配置与测试》、《图示详解…

如何选择适合自己的 Python IDE

集成开发环境(IDE)是指提供广泛软件开发能力的软件应用程序。IDE 通常包括源代码编辑器、构建自动化工具和调试器。大多数现代 IDE 都配备了智能代码补全功能。在本文中,你将发现目前市场上最好的 Python IDE。 什么是 IDE? IDE…

开源项目-投票管理系统

哈喽,大家好,今天主要给大家带来一个开源项目-投票管理系统 投票管理系统主要有首页,发起投票,管理投票,参与投票,查看投票等功能 首页 为用户提供了一键导航到各个功能模块的便捷途径。 新增投票 用户…

OpenSSL

OpenSSL 概述 OpenSSL 是一个开源的、安全传输协议实现工具,广泛应用于数据加密与解密、证书生成与管理以及其他安全性相关的任务。在现代网络安全中,OpenSSL 被用于构建和维护 SSL/TLS 通信,确保数据在传输过程中的机密性和完整性。 简单来…

ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用

本文整理于 2024 年云栖大会阿里云智能集团高级技术专家金吉祥(牟羽)带来的主题演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》 云消息队列 ApsaraMQ 全系列产品 Serverless 化,支持按量付费、自适应弹性、跨可…

fmql之Linux以太网

正点原子第57章。 dts fmql-dtsi&#xff1a; 我们用的PHY芯片是RTL8211F&#xff1a; 需要添加PHY信息&#xff1a; fmql-dtsi提供的参考&#xff1a; 根据vivado工程自动生成的&#xff1a; reg <0x1>; 配置 疑问 网口通讯需要网线&#xff0c;但是目前板卡上只有PS…

Java面试经典 150 题.P26. 删除有序数组中的重复项(003)

本题来自&#xff1a;力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解&#xff1a; class Solution {public int removeDuplicates(int[] nums) …

在 Elasticsearch 中顺利管理季节性时间变化

作者&#xff1a;来自 Elastic Valeriy Khakhutskyy, James Gowdy 用于 Elasticsearch 异常检测的新夏令时日历。 每年春季和秋季两次&#xff0c;许多国家/地区都会调整时钟以更好地利用日光。这些时钟调整不仅会带来时差和 “困倦的星期一” 的感觉&#xff0c;还会带来来自…

Qt——信号和槽

一.信号和槽概述 谈及信号&#xff0c;很容易联想到在Linux系统中所分享到的信号。那么Linux信号和Qt信息有什么不同&#xff1f; 在 Qt 中&#xff0c;用户和控件的每次交互过程称为⼀个事件。比如 "用户点击按钮" 是⼀个事件&#xff0c;"用户关 闭窗口&quo…

必胜客万圣节“邪恶鬼手披萨”,品牌营销的“鬼”才之作!

在万圣节的神秘氛围下&#xff0c;各大品牌纷纷推出创意营销活动&#xff0c;试图在这个充满奇幻色彩的节日里捕获消费者的心。其中&#xff0c;必胜客推出的“邪恶鬼手披萨”无疑是一次令人拍案叫绝的品牌营销“鬼”才之作&#xff0c;它不仅巧妙地融合了节日元素&#xff0c;…

3D Gaussian Splatting代码详解(一):模型训练、数据加载

1 模型训练 def training(dataset, opt, pipe, testing_iterations, saving_iterations, checkpoint_iterations, checkpoint, debug_from):first_iter 0# 初始化高斯模型&#xff0c;用于表示场景中的每个点的3D高斯分布gaussians GaussianModel(dataset.sh_degree)# 初始化…

[MySQL#6] 表的CRUD (1) | Create | Retrieve(查) | where

目录 1. 插入 1.1 单行数据 - 全列插入 指定列插入 1.2 多行数据 - 全列插入 指定列插入 1.3 更新 1.4 替换 2. 查找 2.1 select 列 2.2 where 条件 具体案例 2.3 结果排序 总结关键字执行顺序 2.4 筛选分页结果 CRUD : Create(创建)&#xff0c;Retrieve(读取)&…

[机器学习]集成学习

1 集成学习 强强联合、弱弱变强Bagging&#xff08;平权投票&#xff09;&#xff1a;随机森林Boosting&#xff08;加权投票&#xff09;&#xff1a;Adaboost、GBDT、XGBoost、LightGBM 2 随机森林 3 Adaboost 放大错误数据&#xff0c;缩小正确数据

第三十三篇:TCP协议如何避免/减少网络拥塞,TCP系列八

一、流量控制 一般来说&#xff0c;我们总是希望数据传输得更快一些&#xff0c;但是如果发送方把数据发送得太快&#xff0c;接收方可能来不及接收&#xff0c;造成数据的丢失&#xff0c;数据重发&#xff0c;造成网络资源的浪费甚至网络拥塞。所谓的流量控制&#xff08;fl…