动手学深度学习V2每日笔记(池化层)

news2025/4/5 17:25:26

本文主要参考沐神的视频教程 https://www.bilibili.com/video/BV1EV411j7nX/spm_id_from=333.999.0.0&vd_source=c7bfc6ce0ea0cbe43aa288ba2713e56d
文档教程 https://zh-v2.d2l.ai/

本文的主要内容对沐神提供的代码中个人不太理解的内容进行笔记记录,内容不会特别严谨仅供参考。

1.函数目录

1.1 torch

torch.nn位置
MaxPool2d2.2

2. 池化层

2.1 二维最大池化

  • 返回滑动窗口中的最大值
    在这里插入图片描述
import torch
from torch import nn

def pool2d(X, pool_size, mode='max'):
    p_w, p_h = pool_size
    Y = torch.zeros((X.shape[0]-p_w+1, X.shape[1]-p_h+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_w, j:j+p_h].max()
            elif mode=='avg':
                Y[i,j]=X[i:i+p_w, j:j+p_h].mean()
    return Y
X = torch.arange(9.0).reshape(3,3)
pool2d(X,(2,2))
tensor([[4., 5.],
        [7., 8.]])
pool2d(X,(2,2), 'avg')
tensor([[2., 3.],
        [5., 6.]])

2.2 填充和步幅

  • 池化层与卷积层类似,都具有填充和步幅
  • 没有可以学习的参数
  • 在每个输入通道应用池化层以获得相应的输出通道
  • 输入通道数=输出通道数
X = torch.arange(16.0).reshape(1,1,4,4)
ploo2d = nn.MaxPool2d(3)
ploo2d(X)
# torch中步幅默认等于kernel的大小,因此只有一个输出
tensor([[[[10.]]]]
ploo2d = nn.MaxPool2d(3, padding=1, stride=2)
ploo2d(X)
tensor([[[[ 5.,  7.],
          [13., 15.]]]])

2.2.1 nn.MaxPool2d

nn.MaxPool2d 是 PyTorch 中的一个类,用于实现二维最大池化操作(Max Pooling)。最大池化是一种下采样操作,用于减少输入特征图的尺寸,同时保留最显著的特征。最大池化操作在卷积神经网络中广泛使用,以减小计算量和防止过拟合。

  • 作用
  • 降维:通过对输入特征图进行下采样,减少数据的维度。
  • 提取重要特征:在每个池化窗口内取最大值,保留最显著的特征。
  • 防止过拟合:减少模型的参数数量,从而降低过拟合的风险。
torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)

常用参数

  • kernel_size:池化窗口的大小,可以是单个整数或元组 (height, width)。
  • stride:池化窗口的步幅,默认为 kernel_size,可以是单个整数或元组 (stride_height, stride_width)。
  • padding:在输入特征图的边界处进行填充,默认为 0,可以是单个整数或元组 (pad_height, pad_width)。
  • dilation:控制池化窗口内元素之间的间隔,默认为 1。

2.3 平均池化层

最大池化层:每个窗口中最强的模式信号
平均池化层:将最大池化层中的“最大”操作替换为“平均’
在这里插入图片描述

  • 池化层返回窗口中最大或平均值
  • 缓解卷积层会位置的敏感性
  • 同样有窗口大小、填充、和步幅作为超参数

2.4 多个通道

X = torch.cat((X, X+1),1)
X
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.]]]])
ploo2d = nn.MaxPool2d(3, padding=1, stride=2)
ploo2d(X)
tensor([[[[ 5.,  7.],
          [13., 15.]],

         [[ 6.,  8.],
          [14., 16.]]]])

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux基础环境开发工具(二)

目录 一、前言二、make和makefile工具1.快速认识一下2.依赖关系和依赖方法3.执行原理 三、Git工具1.快速认识一下2.git的使用 四、gdb工具1.快速认识一下2、类比Windows使用 一、前言 在开发工具第一篇中我们介绍了yum,vim,gcc/g编译器这几种工具&#…

C++ 继承 派生类的拷贝构造

继承 派生类的拷贝构造构造顺序拷贝构造 引例1: 当子类,不自实现拷贝构造时,默认调用父类的拷贝构造引例2: 子类自实现拷贝构造,不做特殊处理时,只会调用父类的构造器.引例3: 显示的调用父类的拷贝构造器。案例: 内嵌函数的拷贝构造 引例1 :当内嵌子对象,子类不自实现拷贝构造时…

Netty二

Netty 问题分析 bootstrap serverBootstrap pipeline和channelPipeline EventLoopGroup和实现类NioEventLoopGroup

U2net论文复现-简单解读-以及奇奇怪怪的改进-测试roc以及pr

论文地址:U2net论文地址 显著性目标检测: Salient ObjectDetetion(SOD)显著性目标检测,就是要把图片中最显著的物体分割出来,所以是二分类任务,只需要背景和前景。 1、Introduce 1.1、目前存在的2个挑战&#xff1…

Day-11 员工管理案例 增删改查、配置文件

SpringBootWeb案例 前面我们已经实现了员工信息的条件分页查询以及删除操作。 关于员工管理的功能,还有两个需要实现: 新增员工修改员工 首先我们先完成"新增员工"的功能开发,再完成"修改员工"的功能开发。而在"新…

Midjourney、Sora和硅谷机密-《分析模式》漫谈15

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的Preface(前言)有这么一句: Kent Beck, Ward Cunningham, and Jim Coplein encouraged me to get involved with the commu…

《Advanced RAG》-02-揭开 PDF 解析的神秘面纱

摘要 PDF 文件是非结构化文档的代表,但从 PDF 文档中提取信息是一个具有挑战性的过程。 PDF 文件由一系列指令组成,这些指令指示 PDF 阅读器或打印机在屏幕或纸张上显示符号的位置和方式。与 HTML 和 docx 等文件格式不同,后者使用标记来组织…

8月2日,贪心-买卖股票的最佳时期

大家好呀,今天我们看两道用贪心算法解的两道题,150道经典面试题中的买卖股票的最佳时期1和2。 1.买卖股票的最佳时期1 . - 力扣(LeetCode) 思路 对于这题,我们其实很容易想出暴力解,那就是从后往前找值&…

【文件系统】抽象磁盘的存储结构 CHS寻址法 | sector数组 | LAB数组

目录 1.为什么要抽象 2.逻辑抽象_版本1 2.1sector数组 ​2.2index转化CHS 3.逻辑抽象_版本2 3.1LBA数组 3.2LAB下标转化sector下标 文件其实就是在磁盘中占有几个扇区的问题❗文件是很多个sector的数组下标❗文件是有很多块构成的❗❗文件由很多扇区构成------>文件…

C语言刷题小记3

题目1 序列中删除指定数字 分析:本题要求我们来删除一个序列中指定的数字,这里大家要注意我们要删除的数字可能不止出现一次,所以我们需要用两个变量来进行处理,一个变量来遍历数组,一个变量来存储数组的位置&#xff…

H5 上使用腾讯位置服务选择收货信息

效果图 首先需要在腾讯位置服务上申请你自己的key,可参考地图选点组件 // 点击打开地图 backurl 是点击选中的位置点后,页面跳转至要返回的地址(backurl),会将位置信息添加到回跳地址(backurl&#xff0…

【威胁情报】新的 BingoMod Android 安卓恶意软件伪装成安全应用程序,清除数据

关注公众号网络研究观获取更多内容。 小心 BingoMod!这种危险的 Android 恶意软件会窃取您的钱财、清除您的手机数据并控制您的设备。 了解如何保护自己免受这种阴险威胁。保持在线安全! 计算机安全解决方案提供商 Cleafy 发现了一种狡猾的远程访问木…

PCIe总线-RK3588 PCIe RC初始化流程分析(十二)

1.简介 RK3588 PCIe RC的初始化涉及PCIe设备枚举、中断(INTx、MSI、MSI-X)配置、BAR配置、ATU配置、链路训练等,下面一一介绍。 2.初始化 当RC的模式为RK_PCIE_EP_TYPE时,平台驱动调用rk_add_pcie_port函数初始化RC&#xff0c…

如何将Maven子项目插入到Maven父项目中

Maven项目的融合具体方法: 1.在电脑本地磁盘拷贝Maven子项目; 2.用IDEA软件打开Maven父项目; 3.在IDEA中选中Maven父项目; 4.将复制好的的Maven子项目粘贴到Maven父项目中; 5.选中子项目的pom文件,右键选择…

apk反编译修改教程系列-----修改apk 解除软件限制功能 实例操作步骤解析_5【二十四】

解除apk功能 限制主要是一些app只有付费或者开通vip才可以使用所有功能。这些对于热爱反编译的你是不是比较愤慨,今天继续以一款app为大家来演示如何去除软件的限制功能。教程的目的主要是学习反编译的基础修改方法,了解app的修改步骤以及基础的入门修改常识。 反编译工具:…

无人机无人车固态锂电池技术详解

随着无人机和无人车技术的飞速发展,对高性能、高安全性电池的需求日益迫切。固态锂电池作为下一代电池技术的代表,正逐步从实验室走向市场,为无人机和无人车等应用领域带来革命性的变化。相比传统液态锂电池,固态锂电池在能量密度…

C++中的二维数组

引言 C语言的二维数组可直接用【】【】建立&#xff0c;C的数组更多实用vector<int>表示&#xff0c;那二维数组如何表示呢&#xff1f; 表示法 解读 vector<int>的含义是。 申请了一个连续空间vector&#xff0c;里面的数据是一个个的int vector<vector&l…

Spring - 解析 统一数据格式返回以及统一异常处理

接上篇文章的统一数据格式返回… 文章目录 1. 统一异常处理1.1 使用 2. 统一数据返回和统一异处理是怎么实现的2.1 initHandleAdapters2.2 initHandleExceptionResolvers 1. 统一异常处理 1.1 使用 统一异常处理的两个关键的注解是ControllerAdvice ExceptionHandler Contro…

C++入门基本语法(2)

一、引用 1、基本概念与定义 引用不是新定义一个变量&#xff0c;而是给已存在的变量起一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它所引用的变量公用同一块内存空间&#xff1b; 引用的写法&#xff1a;变量类型& 引用别名 变量&#xff…

第六周:机器学习

目录 摘要 Abstract 一、深度学习的优化算法 1、SGD 2、SGDM 3、Adagrad 4、RMSProp 5、Adam算法 二、分类器 三、卷积神经网络 总结 摘要 接着上周学习率在训练中的影响&#xff0c;本周对深度学习常见的几种优化算法做了总结&#xff0c;着重分析Adam算法的优缺…