深度学习:轻量级神经网络MobileNet 从v1 到v2

news2025/2/26 20:01:18

深度学习:轻量级神经网络MoblieNet 从v1 到 v2

  • MobileNet V1
    • 前言
    • 深度可分离卷积
      • 传统卷积
      • Depth Wise Conv
      • Point Wise Conv
      • 性能对比
  • MobileNet V2
    • 前言
    • 主要改进
      • Inverted Residuals Block
        • Residual Block
        • Expansion Layer
        • ReLU6
        • Linear Activation Function
        • 小结
    • 实验

MobileNet V1

前言

MobileNet是谷歌团队在2017年提出的,专注于移动端和嵌入式设备的轻量级CNN网络,相比于传统卷积,相比于传统卷积网络,在准确率小幅降低的情况下大大减少了参数量与运算量。

它的主要贡献就是提出了深度可分离卷积与增加超参数alpha 与 beta。

深度可分离卷积

传统卷积

在这里插入图片描述

首先我们来回顾一下传统卷积操作如上图,input的channel 为3,那么每个卷积核的channel一定为3,卷积核的数量为4,output 的channel的也一定为4。

对于普通的卷积操作,它既可以融合每个平面(平面指HW维度)的特征也可以融合channel的特征。

Depth Wise Conv

在这里插入图片描述

接下来介绍DW卷积,这里input channel还是为3,但是每个卷积核的channel变成了1,只负责input 的一个 channel(以前每个卷积核的channel与input channel一致),这样卷积操作过后就只融合了平面的特征,而没有融合channel特征。

Point Wise Conv

为了弥补空间特征,作者在depth wise conv 后面加入了 point wise conv,其实他就是传统的卷积操作,只不过 kernel size 为 1,那么他就会只融合了channel特征。

在这里插入图片描述

性能对比

在这里插入图片描述
这里作者把深度可分离卷积分为 DW + PW,下面我们来比较一下它们的计算量:
在这里插入图片描述

在这里 Dk代表kernel size ,DF代表feature map的 H or W, M为input channel N为卷积核数量。

MobileNet V2

前言

MobileNet V2 是谷歌团队2018年提出的网络,相比于MobileNet V1。

主要改进

Inverted Residuals Block

Residual Block

在这里插入图片描述
首先我们回顾传统的残差块,它是由一个 1 * 1的卷积降维+ 3 * 3 卷积 + 1* 1卷积升维。(激活函数与BN省略)

Expansion Layer

在这里插入图片描述

倒残差结构如上图,他是先用 1 * 1卷积升维+DW卷积 + 1* 1卷积降维。

ReLU6

在这里插入图片描述

作者把ReLU激活函数换成了ReLU6,y的数值不在随着x的增长而增长,到6之后不再变化。

原因:
由于ReLU的值域是0到正无穷,在低精度浮点数下不能很好的表示,于是改成了ReLU6可以增加模型的稳定性。

这里所说的“低精度”,我看到有人说不是指的float16,而是指的定点运算(fixed-point arithmetic)。

Linear Activation Function

作者通过证明,对低维度做ReLU运算,很容易造成信息的丢失。而在高维度进行ReLU运算的话,信息的丢失则会很少。
所以作者把最后1 * 1卷积降维后的激活函数换成线性激活函数。

小结

把上面内容汇聚到一起,于是就有了如下模块:

在这里插入图片描述
这里注意只有stride =1 的时候才有残差模块,因为要保证输入矩阵特征与输出矩阵特征一致才可以执行add操作。

实验

在这里插入图片描述

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

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

相关文章

大年初二、初三—— 牛客网刷题经验分享~

2023年大年初二、初三 —— 牛客网刷题经验分享~😎大年初初二、初三 —— 牛客网刷题经验分享~😎)前言🙌牛客网——基础语法【循环输出图形篇】🙌BC98 线段图案 🙌BC99 正方形图案 🙌BC100 直角三角形图案 …

计算机毕业设计选题推荐之Springboot校园篮球足球竞赛预约平台-Vue

,本系统分为用户和管理员两个角色,其中用户可以在线注册登陆,查看平台公告,查看篮球比赛介绍,在线预约参加篮球比赛。管理员可以对用户信息,比赛项目,比赛分类,平台公告信息等进行管…

Linux中如何给普通用户提权

引言: 北京时间2023/1/26/11:00 ,看到这个日期,我第一时间想到的是还有十几天就要开学啦!开学我是向往的,但是我并不怎么向往开学的考试,比如什么毛概和什么信息技术,可能是我深知自己在这些课…

实现自己的数据库一

一 前言从上篇原创文章到现在又是新的一年,今天是2023年的大年初三,先在这里祝各位亲爱的老铁们新年快乐,身体健康,在新的一年里更帅气、更漂亮,都能完成自己的小目标。一直以来,我对数据存储还是比较感兴趣…

卓有成效的用例设计方法

持续坚持原创输出,点击蓝字关注我吧用例设计作为测试工程师的立身之本,是衡量测试工程师综合素质的重要参考,时间是测试工作中重要的测试资源,通过设计高质量的测试用例可以有效地提升测试效率。本文旨在介绍测试工作中常用的五种…

恶意代码分析实战 18 64位

18.1 Lab21-01 当你不带任何参数运行程序时会发生什么? 当你运行这个程序却没带任何参数,它会立即退出。 根据你使用的IDAPro的版本,main函数可能没有被自动识别,你如何识别对main函数的调用? main函数有三个参数入…

NodeJS 中 Express 之中间件

NodeJS 中 Express 之中间件参考描述中间件next()一个简单的中间件函数使用全局中间件局部中间件共享注意事项位置next()分类错误级中间件内置中间件express.urlencoded()express.json()第三方中间件参考 项目描述哔哩哔哩黑马程序员搜索引擎Bing 描述 项目描述Edge109.0.151…

【web前端】盒子模型

border 边框 content 内容 padding内边距 margin外边距 1.边框 border 边框粗细 用px作为单位 border-style : solid 实线的 dashed虚线的 dotted 点的 边框的符合写法: 那三个没有先后顺序 边框可以分开写 表格的细线边框 border-collapse …

【编程入门】开源记事本(微信小程序版)

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 本系列对比云笔记,将更为简化,去掉了网络调用&#xff0…

20230126英语学习

Your Dog’s Behavior Is a Product of Their Genes 狗狗做什么,基因来决定 这篇好难,字基本都认识,但它不认识我~ “Identification of the genes behind dog behavior has historically been challenging,” says first author Emily Dut…

【计算机网络(考研版)】第一站:计算机网络概述(一)

目录 一、计算机网络的概念 1.计算机网络的定义 2.计算机网络的组成 3.计算机网络的功能 4.计算机网络的分类 二、计算机网络的性能指标 1.速率 2.带宽 3.时延 4.时延带宽积 5.往返时间 6.利用率 三、计算机网络的体系结构 1.体系结构 2.协议 3.服务 4.接口&a…

活动星投票优秀支书网络评选微信的投票方式线上免费投票

“优秀支书”网络评选投票_多人投票流程顺序_视频投票图文投票_微信比赛投票小程序近些年来,第三方的微信投票制作平台如雨后春笋般络绎不绝。随着手机的互联网的发展及微信开放平台各项基于手机能力的开放,更多人选择微信投票小程序平台,因为…

最详细、最仔细、最清晰的几道python习题及答案(建议收藏哦)

名字:阿玥的小东东 学习:python。c 主页:没了 今天阿玥带大家来看看更详细的python的练习题 目录 1. 在python中, list, tuple, dict, set有什么区别, 主要应用在什么样的场景? 2. 静态函数, 类函数, 成员函数、属性函数的区别? 2.1静态…

Unix\Linux多线程复健(二)线程同步

线程同步 并非让线程并行,而是有先后的顺序执行,当有一个线程对内存操作时,其他线程不可以对这个内存地址操作 线程之间的分工合作 线程的优势之一:能够通过全局变量共享信息 临界区:访问某一共享资源的代码片段&#…

【JavaEE初阶】第六节.多线程 (基础篇 )线程安全问题(下篇)

前言 一、内存可见性 二、内存可见性的解决办法 —— volatile关键字 三、wait 和notify 关键字 3.1 wait() 方法 3.2 notify() 方法 3.3 notify All() 方法 3.4 wait 和 sleep 的对比 总结 前言 本节内容接上小节有关线程安全问题;本节内容我们将介绍有关…

CUDA编程笔记(6)

文章目录前言全局内存的访问模式合并访问和非合并访问使用全局内存进行矩阵转置矩阵复制矩阵转置总结前言 全局内存的合理使用 全局内存的访问模式 合并访问和非合并访问 合并访问指的是一个线程束(同一个线程块中相邻的wrapSize个线程。现在GPU的内建变量wrapSi…

Linux系统之网络客户端工具

Linux系统之网络客户端工具一、Links工具1.Links工具介绍2.安装Links软件3.Links工具的使用4.打印网页源码输出5.打印url版本到标准格式输出二、wget工具1.wget工具介绍2.安装wget软件3.wget工具的使用三、curl工具1.curl工具的介绍2.curl的常用参数3.curl的基本使用四、scp工具…

机器学习(二)--NumPy

本篇文章介绍了一些Numpy的基础操作。NumPy 是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。📙参考:NumPy 数据类型 | 菜鸟教程 (runoob.com)1.Numpy ndarray对象Numpy最重要的一…

Introduction to Multi-Armed Bandits——04 Thompson Sampling[2]

Introduction to Multi-Armed Bandits——04 Thompson Sampling[2] 参考资料 Russo D J, Van Roy B, Kazerouni A, et al. A tutorial on thompson sampling[J]. Foundations and Trends in Machine Learning, 2018, 11(1): 1-96. ts_tutorial 项目代码地址: https://githu…

蓝桥杯刷题014——求阶乘(二分法)

求阶乘 蓝桥杯2022省赛题目 问题描述 满足 N ! 的末尾恰好有 K 个 0 的最小的 N 是多少? 如果这样的 N 不存在输出 −1 。 输入格式 一个整数 K 。 输出格式 一个整数代表答案。 样例输入 2样例输出 10评测用例规模与约定 对于 30% 的数据, 1≤K≤10^6. 对于 100% 的数据, …