码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 轻量级网络结构


    一、MobileNet

    MobileNetV1

    与VGG网络比较:

    深度可分离卷积

            由深度卷积(depthwise convolution)和逐点卷积(pointwise convolution)组成。

    如:输入通道M、输出通道N、卷积核K*K、输入特征图大小F*F ,(输出通道是卷积核个数)

              标准卷积计算量:M*N*K*K*F*F

              深度卷积计算量:M*K*K*F*F          (输出通道=输入通道=卷积核个数)

              逐点卷积计算量:   N*M*1*1*F*F        (正常卷积,卷积核为1)

              深度可分离卷积计算量:K*K*M*F*F+M*N*F*F

              计算比率:标准/深度分离

                    (K*K*M*F*F+M*N*F*F)/(K*K*M*N*F*F)=(K*K+N)/(K*K*N)=1/N+1/(K*K)

            若卷积核K=3,则计算量降低9倍左右。

    与VGG直筒型结构类似(将深度分离卷积模块替换为标准卷积)。

    MobileNetV2

    与mobilenetV1比较:

    倒残差结构:Inverted Residuals

    对比残差块,倒残差体现在中间深度分离层维度比较宽。先1*1卷积提升通道数,再深度分离卷积,最后1*1降低通道。使用 ReLU6 激活函数和线性激活函数。

     网络结构:

    • t是输入通道的倍增系数(即中间部分的通道数是输入通道数的多少倍)
    • n是该模块重复次数
    • c是输出通道数
    • s是该模块第一次重复时的stride(后面重复都是stride 1)

    MobileNetV3

    1、加入SE模块

    在倒残差结构中加入SE结构

    SE结构: 

    输入特征图H*W*C,分别对每一通道做全局池化得到1*1*C个值,经过第一个全连接层(压缩r)得到1*1*C/r,经过第二个全连接层恢复1*1*C,再乘以原有的对应通道得到H*W*C。

    2、更新激活函数

    MobileNetV3-large:

     MobileNetV3-small

    二、ShuffleNet 

    ShuffleNetV1 

            主要思路是使用Group convolution和Channel shuffle改进ResNet。

    下图(a)就是加入Depthwise的ResNet bottleneck结构,而(b)和(c)是加入Group convolution和Channel Shuffle的ShuffleNet的结构

     Group convolution( 组卷积):将输入通道划分为G组再卷积运算,计算量降低。

            输入通道M,输出通道N,特征图大小H*W,卷积核K*K

            标准计算量:M*N*H*W*K*K

            分组计算量:M*(N/G)*H*W*K*K

    缺点:组与组之间没有信息交换,影响模型的表示能力。

    Channel Shuffle(通道洗牌):打乱通道顺序,提升组间信息交换。

    假设分为g组,每组通道数n=M/g

    输入:W*H*M=g*n*H*W

    经H*W平铺s,g*n*s沿着g和n轴转置,恢复。

     

    ShuffleNetV2

    对比V1,V2中添加了通道分离,其主要实现网络提速功能。

            (a) ShuffleNet v1 ,(b)ShuffleNet v1 降采样, (c)ShuffleNet v2,(d)ShuffleNet v2 降采样

    (c)中ShuffleNet v2 模块先使用Channel Split操作分割通道。

     ShuffleNet v2网络中未使用GConv组卷积操作。

     

    三、squeezenet

    fire module:由squeeze 层和expand 层构成。

    squeeze层:采用1*1卷积核,对输入通道数进行压缩。

    expand层:由1*1和3*3的卷积层,对特征图融合。

            s1:表示squeeze 层中 1x1卷积核的数目。

            e1:表示expand 层中 1x1卷积核的数目。

            e3:则表示expand 层中 3x3卷积核的数目。

     

            在每个fire module内部s1要远小于e1 + e3,它们满足s1= SR * (e1+ e3)。而SR称为缩减系数,在这里只有0.375=s1/(e1+e3)=3/(4+4)。

    四、Xception

            Xception是对Inception v3的改进,主要是采用depthwise separable convolution来替换原来Inception v3中的卷积操作。

    五、GhostNet

             论文地址: https://arxiv.org/abs/1911.11907
                              https://github.com/huawei-noah/ghostnet.

            GhostNet是使用一些计算量更低(Cheap Operations)的操作去生成这些冗余的特征图,保证精度的情况下,减少模型的参数量与提高模型的执行速度。

    Ghost Module:identity+线性运算Φ(指深度可分离卷积操作)。

    特点:Ghost Module输出特征图数(b)=普通卷积输出(a),且计算量低。

     

    首先使用少量卷积核(正常卷积核数的一半)运算获得的输出,然后分为两步操作:

            identity:上一步卷积输出。

            线性运算:上一步卷积输出的特征图,进行逐个深度分离卷积。

            最后两部分合并输出。

     假设有1个identity和s-1个ghost特征图(1个特征图有s-1个冗余),则FLOPs减少s倍。

     

    Bottlenecks

    将Ghost Module替换为Conv就是残差结构,类似于MobileNetV2。

     第一个Ghost Module增加通道数,第二个Ghost Module减少通道数。

    网络结构:

             #exp表示expansion size,#out表示输出通道数,SE表示是否使用SE模块。

    参考:

     MobilenetV1、V2、V3系列详解_Turned_MZ的博客-CSDN博客_mobilenetv1,v2,v3

    MobileNetV1,V2,V3_David-Chow的博客-CSDN博客

    《MobileNetV2: Inverted Residuals and Linear Bottlenecks》_胖胖大海的博客-CSDN博客

    轻量化网络ShuffleNet MobileNet v1/v2/v3( MobileNet)学习笔记_just-solo的博客-CSDN博客_mobilenet shufflenet

    ShuffNet v1 和 ShuffleNet v2 - 知乎

    这就是神经网络 5:轻量化神经网络--MobileNet V1、MobileNet V2、ShuffleNet V1、ShuffleNet V2_yuanlulu的博客-CSDN博客_轻量化神经网络

    轻量化网络ShuffleNet MobileNet v1/v2/v3( MobileNet)学习笔记_just-solo的博客-CSDN博客_mobilenet shufflenet

    深度解读SqueezeNet网络结构_东城青年的博客-CSDN博客_squeezenet网络结构

    超级详细易懂的GhostNet解析_猴子请来的救兵�的博客-CSDN博客_ghostnet

    轻量级网络之GhostNet_球场书生的博客-CSDN博客_ghostnet

    GhostNet 解读及代码实验(附代码、超参、日志和预训练模型)_TensorSense的博客-CSDN博客

  • 相关阅读:
    Redis高级应用
    (硅谷课堂项目)Java开发笔记1:MyBatis-Plus使用
    linux yum安装mysq8
    L13.linux命令每日一练 -- 第二章 文件和目录操作命令 -- lsattr和file命令
    数据可视化之地图可视化
    git、gitee、github使用教程
    设计模式-Adapter
    ChatGPT⼊门到精通(5):ChatGPT 和Claude区别
    【网络安全】beef-xss实操以及xss修复方案
    菜鸟网络一面(超详细)
  • 原文地址:https://blog.csdn.net/m0_37264397/article/details/126312226
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号