• 第5周学习:ShuffleNet & EfficientNet & 迁移学习


    一、论文阅读和视频学习

    1.ShuffleNet V1 & V2

    1.1ShuffleNet V1

    a.效果

    提出了channel shuffle的思想,相比于AlexNet,达到同样的error率的情况下非常轻量级。并且能够不断优化error率,且消耗时间依然小于AlexNet。

    在这里插入图片描述

    b.原理(channel shuffle)

    GConv虽然能够减少参数与计算量,但是GConv中不同组之间信息没有交流。channel shuffle即因此提出的。

    1. 输入特征矩阵经过一个GConv1卷积,得到一个对应的特征矩阵。
    2. 对每一个GROUP依照卷积的划分进行划分,然后有序重组,即得到了通过channel shuffle的特征矩阵。
    3. 再对得到的特征矩阵进行GConv2卷积,其就可以融合不同的特征信息。
      在这里插入图片描述

    在网络中使用的group卷积占用的计算量是很少的,大部分计算量是被1×1卷积占用去了。所以改造:
    在这里插入图片描述
    经过验证,Shuffle Net的计算量是最小的。

    1.2ShuffleNet V2

    计算量主要计算卷积相关的一些指标,但是在GPU中只有一般的计算量在计算卷积,所以不能单纯用FLOPs评判算法计算量。在相同的FLOPs的情况下,并行度高的模型是要比并行度低的模型运行速度快的。
    针对此,作者提出了设计一个高效的的网络四条建议:

    1. 当卷积层的输入特征矩阵与输出特征矩阵channel相等时memory access cost是最小的。在这里插入图片描述

    2. 当GConv的groups增大时(保持FLOPs不变时),MAC也会增大。在这里插入图片描述

    3. 网络设计的碎片化程度越高,速度越慢。在这里插入图片描述

    4. Element-wise操作带来的影响是不可忽视的。 在这里插入图片描述

    提出:

    在这里插入图片描述

    2.EfficientNet V3

    1. 根据以往的经验,增加网络的深度能够得到更加丰富、复杂的特征并且能够很好的应用到其他任务中。但是网络的深度过深会面临梯度消失、训练困难等问题。
    2. 增加网络的宽度能够获得更高细粒度的特征并且也更容易训练,但对于宽度很大而深度较浅的网络,往往很难学习到更深层次的特征。
    3. 增加输入网络的图像分辨率能够潜在地获得更高细粒度地特征模板,但对于非常高地输入分辨率,准确率的增益也会减小。并且大分辨率图像会增加计算量。

    2.1EfficientNet-B0

    在这里插入图片描述

    2.2MBConv

    在这里插入图片描述

    1. 第一个升维的1×1卷积层,它卷积核个数是输入特征矩阵channel的n倍。
    2. 当n=1的时候,不要第一个1×1的卷积层了
    3. 关于shortcut连接,仅当输入MBConv结构的特征矩阵与输出的特征矩阵shape相同时才存在。

    二、代码练习

    1.使用VGG模型进行猫狗大战

    1.1下载数据

    在这里插入图片描述

    1.2数据处理

    在这里插入图片描述

    1.3创建 VGG Model

    1.4修改最后一层,冻结前面层的参数

    在这里插入图片描述

    1.5训练并测试全连接层

    在这里插入图片描述

    1.6可视化模型预测结果(主观分析)

    在这里插入图片描述

    2.AI艺术鉴赏挑战赛题

    在这里插入图片描述

    三、思考

    针对题目并不能够实现很好的效果,这或许就是“知其然,而不知其所以然”的呈现。如果以后要走深度学习的方向,还是应该以熟悉各种模型原理为基础进行学习。

  • 相关阅读:
    h5页面回退到微信小程序并携带参数
    Etcd-v3.4.27集群部署
    Golang slice 通过growslice调用nextslicecap计算扩容
    Spark【Spark SQL(二)RDD转换DataFrame、Spark SQL读写数据库 】
    django学习入门系列之第二点《案例1:用户注册》
    TVS管和ESD管的技术指标和选型指南-嘉立创推荐
    ruby语言怎么写个通用爬虫程序?
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
    在 Git Bash 中为 vim 设置 Dracula 配色
    【docker】Error response from daemon Container is not running
  • 原文地址:https://blog.csdn.net/I_canjnu/article/details/126229466