模型减肥秘籍:模型压缩技术 CNN基础

这里是Datawhale的组队学习活动,主要介绍的是模型压缩技术。后续将以CNN网络为基础点,带领大家领略模型压缩的魅力。首先是回顾一下一些关于CNN的基础知识。

参考链接:

模型减肥秘籍:模型压缩技术-课程详情 | Datawhale

datawhalechina/leedl-tutorial: 《李宏毅深度学习教程》(李宏毅老师推荐👍,苹果书🍎),PDF下载地址:https://github.com/datawhalechina/leedl-tutorial/releases

CNN介绍

  CNN网络,即卷积神经网络(Convolutional Neural Network),是一类特别为处理具有类似网格结构的数据设计的深度学习网络,比如图像(2D网格)和声音信号(1D网格)。CNN在图像和视频识别、图像分类、医学图像分析等领域取得了显著的成功。

 核心组成

  CNN的核心思想是利用卷积层来自动并有效地提取输入数据的特征,无需手动特征提取。这些特征通过网络的多个层次被逐渐抽象和组合,用以执行分类、检测或分割等任务。CNN通常包含以下类型的层:

  1. 卷积层(Convolutional Layers): 这些层通过卷积运算提取输入数据的局部特征,每个卷积层有多个卷积核(Kernel),能够产生不同的特征图(Feature Maps)。

  2. 激活层(Activation Layers): 通常跟在卷积层后面,引入非线性,使得网络可以学习更加复杂的特征。最常用的激活函数是ReLU(Rectified Linear Unit)。

  3. 池化层(Pooling Layers): 这些层用于降低特征图的空间尺寸,减少后续层的参数数量和计算量,同时使特征检测变得更加稳定。

  4. 全连接层(Fully Connected Layers): 通常位于CNN的末端,将卷积层或池化层输出的高维特征向量转换为最终的输出,如分类标签。

优点

  CNN通过层的叠加和组合,能够自动并有效地从原始数据中学习到有用的特征表示,避免了传统机器学习方法中手工特征提取的繁琐过程。具有如下优点:

  1. 局部连接:卷积层中的神经元仅与输入数据的一个局部区域相连接,这使得网络专注于局部特征,并增强了模型的空间利用率。
  2. 参数共享:通过卷积层中的卷积核重复使用同一组参数,CNN能够以较少的参数量处理大规模输入数据。
  3. 平移不变性:通过池化层,CNN能够对输入数据的小范围平移保持不变性,这对于识别图像中的对象特别重要。

这三个优点其实也对应了图像识别中的三个观察:

观察 1:检测模式不需要整张图像

神经元不需要把整张图像当作输入, 只需要把图像的一小部分当作输入,就足以让它们检测某些特别关键的模式是否出现,而不用采取全连接的方式将整个图像传入神经元。

简化 1:感受野

根据观察1 可以做第1个简化,卷积神经网络会设定一个区域,即感受野(receptive f ield),每个神经元都只关心自己的感受野里面发生的事情。

观察 2:同样的模式可能会出现在图像的不同区域

第2个观察是同样的模式,可能会出现在图像的不同区域。比如说模式鸟嘴,它可能出 现在图像的左上角,也可能出现在图像的中间。

简化 2:共享参数

既然要检测的模式是一样的,只是检测的区域不同,那么其实可以共享神经元的参数。

上面感受野的第1个神经元会跟下面感受野的第1个神经元共 用参数,上面感受野的第2个神经元跟下面感受野的第2个神经元共用参数······ 所以每个 感受野都只有一组参数而已,这些参数称为滤波器(filter)。

接下来通过另一个角度来说明卷积神经网络。一个卷积层里面就是有一排的滤波器,每个滤波器都是一 个3×3×通道,其作用是要去图像里面检测某个模式。这些模式要在3×3×通道,这个小 的范围内,它才能够被这些滤波器检测出来。

滤波器就是一个一个的张量,这些张量里面的数值就是模型里面的参数。这些滤波器里面的 数值其实是未知的,它是可以通过学习找出来的。

第1个版本的故事里面说 到了有一些神经元,这些神经元会共用参数,这些共用的参数就是第2个版本的故事里面的滤波器。

在第1个版本的故事里面,不同的神经元可以共享权重,去守备不同的 范围。而共享权重其实就是用滤波器扫过一张图像,这个过程就是卷积。这就是卷积层名字的来。把滤波器扫过图像就相当于不同的感受野神经元可以共用参数,这组共用的参数就叫做一个滤波器。

观察 3:下采样不影响模式检测

把一张比较大的图像做下采样(downsampling), 把图像偶数的列都拿掉,奇数的行都拿掉,图像变成为原来的1/4,但是不会影响里面是什么东西。例如,把一张大的鸟的图像缩小,这张小的图像还是一只鸟。

简化 3:汇聚

根据第3个观察,汇聚被用到了图像识别中。汇聚没有参数,所以它不是一个层,它里面 没有权重,它没有要学习的东西,汇聚比较像Sigmoid、ReLU等激活函数。因为它里面是没 有要学习的参数的,它就是一个操作符(operator),其行为都是固定好的,不需要根据数据 学任何东西。每个滤波器都产生一组数字,要做汇聚的时候,把这些数字分组,可以2×2个 一组,3×3、4×4也可以,这个是我们自己决定的,图4.27中的例子是2×2个一组。汇聚 有很多不同的版本,以最大汇聚(max pooling)为例。最大汇聚在每一组里面选一个代表, 选的代表就是最大的一个,如图4.28所示。除了最大汇聚,还有平均汇聚(meanpooling), 平均汇聚是取每一组的平均值。

一个经典的CNN网络架构如下,是不是对其中的不同层有了更深理解了呢。

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

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

相关文章

Ollama的安装以及大模型下载教程

简介 Ollama是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型, Ollama极大地简化了在Docker容器内部署和管理LLM的过程,使得用户能够快…

Mysql前言

文章目录 Mysql 数据库简介SQL 基础语法什么是 SQL语句SQL 的作用SQL 语句的分类SQL 通用语法查询状态 🏡作者主页:点击! 🤖Mysql专栏:点击! ⏰️创作时间:2024年11月12日18点20分 SQL是数据库…

Spring Boot编程训练系统:设计与实现要点

5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 管理员对用户信息修改删除以及查询操作。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.1.2 题库资源管理 系统管理员可以对题库资源信息进行添加,修改,删除以及查询操作。具体界面如…

Xcode 16 使用 pod 命令报错解决方案

原文请点击这个跳转 一、问题现象: 有人会遇到 Xcode 升级到 16 后,新建应用然后使用 pod init 命令会报错如下: Stack Ruby : ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-darwin23]RubyGems : 3.5.22Host : macOS 15.0 (24A335…

hive中windows子句的使用

概述 1,windows子句是对窗口的结果做更细粒度的划分 2、windows子句中有两种方式 rows :按照相邻的几行进行开窗 range:按照某个值的范围进行开窗 使用方式 (rows | range) between (UNBOUNDED | [num]) PRECEDING AND ([num] PRECEDING…

Unet++改进24:添加DualConv||轻量级深度神经网络的双卷积核

本文内容:添加DualConv 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 卷积神经网络(CNN)架构通常对内存和计算要求很高,这使得它们在硬件资源有限的嵌入式系统中不可行。 我们提出了双卷积核(DualConv)来构建轻量级深度神经网络。DualConv结合3 3和1…

【Vue3】知识汇总,附详细定义和源码详解,后续出微信小程序项目(4)

快速跳转: 我的个人博客主页👉:Reuuse博客 新开专栏👉:Vue3专栏 参考文献👉:uniapp官网 免费图标👉:阿里巴巴矢量图标库 ❀ 感谢支持!☀ 前情提要 &#x…

微信小程序_小程序视图与逻辑_day3

一、目标 A. 能够知道如何实现页面之间的导航跳转 B. 能够知道如何实现下拉刷新效果 C. 能够知道如何实现上拉加载更多效果 D. 能够知道小程序中常用的生命周期 二、目录 A. 页面导航 B. 页面事件 C. 生命周期 D. WXS脚本 E. 案例-本地生活(列表页面)…

springboot社团服务系统的设计与实现,计算机毕业设计项目源码316,计算机毕设程序(LW+开题报告、中期报告、任务书等全套方案)

摘 要 社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。本次开发一套社团服务系统有管理员&#x…

Linux服务管理-kerberos

Kerberos 官网文档‘:Kerberos:网络身份验证协议 (mit.edu) 基本概念:Kerberos基本概念及原理汇总-腾讯云开发者社区-腾讯云 (tencent.com) kerberos概述 Kerberos是一种计算机网络认证协议,由麻省理工学院(MIT&#x…

区块链技术在游戏行业的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 区块链技术在游戏行业的应用 区块链技术在游戏行业的应用 区块链技术在游戏行业的应用 引言 区块链技术概述 定义与原理 发展历程…

MooseFS (MFS) 分布式对象存储

一、MFS 优越特性 Free (GPL): 通用文件系统,开源免费。在线扩容: 体系架构具有极强的可伸缩性,支持在线扩容。部署简单。高可用性: 支持设置任意文件冗余(数据分区)程度,提供比RAID10更高的冗余级别,同时不会影响读写性能&#…

【常见问题解答】远程桌面无法复制粘贴的解决方法

提示:文中提出了“远程桌面无法复制粘贴文件到本地”问题的三种解决方法,其中“方法 3:重启 RDP 剪贴板监视程序”亲测有效。 目录 一、问题描述二、解决方法1.方法1:设置远程桌面连接(1)打开远程桌面连接,点击【显示选项】(2)勾选“剪贴板”,并点击【详细信息】(3)…

探索光耦:达林顿光耦的特点与应用

在现代电子设备中,光耦作为信号隔离和传输的核心元件之一,扮演着至关重要的角色。达林顿光耦凭借其独特的电流放大能力和可靠性,在众多应用中脱颖而出。本文将探讨达林顿光耦的特点及其广泛的应用。 达林顿光耦的主要特点 高电流放大倍数&a…

河南省的一级科技查新机构有哪些?

科技查新,简称查新,是指权威机构对查新项目的新颖性作出文献评价的情报咨询服务。这一服务在科研立项、成果鉴定、项目申报等方面发挥着至关重要的作用。河南省作为中国的重要科技和教育基地,拥有多个一级科技查新机构,为本省及全…

数据结构 ——— 层序遍历链式二叉树

目录 链式二叉树示意图​编辑 何为层序遍历 手搓一个链式二叉树 实现层序遍历链式二叉树 链式二叉树示意图 何为层序遍历 和前中后序遍历不同,前中后序遍历链式二叉树需要利用递归才能遍历 而层序遍历是非递归的形式,如上图:层序遍历的…

【故障解决】麒麟系统右下角网络图标取消显示叹号

原文链接:【故障解决】麒麟系统右下角网络图标取消显示叹号 Hello,大家好啊!今天给大家带来一篇关于如何在麒麟系统中解决网络图标出现感叹号问题的文章。在日常使用麒麟系统的过程中,我们在内网或公网环境下,有时会遇…

Spring boot 集成 nacos、redis、mysql

1,准备好nacos环境,准备ncc.yml配置: 在配置添加 test: haha 2,添加依赖 在pom.xml 文件中添加Nacos 客户端的依赖,样例使用Spring Cloud Alibaba 版本使用2023.x 分支,详情可查看 版本发布说明-阿里云S…

力扣 LeetCode 206. 反转链表(Day2:链表)

解题思路: pre ,cur双指针 需要通过tmp暂存cur的下一个位置,以方便cur的下一步移动 class Solution {public ListNode reverseList(ListNode head) {ListNode pre null;ListNode cur head;while (cur ! null) {ListNode tmp cur.next;c…

golang 实现比特币内核:公钥的 SEC 编码格式详解

比特币作为区块链的一个应用,它建立在分布式系统之上,‘节点’遍布全球。为了使所有节点协同工作并作为一个整体系统运行,需要保持所有节点同步在相同的状态中,也就是说节点之间需要频繁通信,并且相互交换大量数据消息。这要求在网络上传输的消息或数据要使用某种格式编码…