zoukankan      html  css  js  c++  java
  • Xception网络结构理解

    Xception网络是由inception结构加上depthwise separable convlution,再加上残差网络结构改进而来/

    常规卷积是直接通过一个卷积核把空间信息和通道信息直接提取出来,结合了spatial dimensions和channels dimensions;xception这种是分开做的。

    它最初的想法是从Incetpion来的,总体思想是把corss-channel correlations和spatial correlations充分解耦合;

    将Inception modul拆分成一系列操作,独立处理spatial-correlations和cross-channel correlations,网络处理起来更加简单有效

    步骤是:

    • 首先通过‘1x1’卷积,处理跨通道相关性,拆分成3或者4组独立的空间
    • 然后,通过‘3x3’或者‘5x5’卷积核映射到更小的空间上去

    inception结构到xception的演变:

            

    从1到2是一个简化过程,从2到3是把1*1的卷积核拼接起来,使得经过1*1的卷积之后可以将输入数据的channel维度上进行拆解; 最后一种是极端情况,3x3卷积在1x1卷积后的每一个通道上运行。

                  

    这种思想与depthwise separable convolution基本一样,只是再空间解耦合与通道解耦合的顺序不同,论文作者谈到这种模块再整体网络结构中都是相连的,顺序并没有太大影响。

    Xception的网络结构:

    核心部分是下图中的depthwise separable conv结构,很好的减少了参数量。右图是标准卷积过程。

    逐通道卷积depthwise conv,再通道融合卷积pointwise

     通道之间相互独立,故卷积核参数量为3*3*Ci (记忆技巧,输出通道数即为卷积核个数,卷积核个数乘以每个卷积核的参数即总参数) ,  远少于标准卷积的 3*3*Ci*C0,  计算量为3*3*Ci*H*W

    逐通道卷积之后,再用1*1的卷积核进行通道间的特征融合

    此时输入的特征图大小为H*W*Ci  ,输出为H*W*C0

    故后半部分卷积核参数量为1*1*C0*Ci, 计算量为1*1*C0*H*W*Ci,   可以记作从左到右pipeline Ci*1*1*H*W*C0

    故深度可分离卷积的计算量为:3*3*Ci*H*W   +      1*1*C0*H*W*Ci

    是标准卷积的1/9,计算量大大减小。

  • 相关阅读:
    uniapp 的组件 定义了 直接使用即可 。
    uniapp 关闭微信小程序的索引警告
    微信小程序 组件化开发 实现 导航分类文章 小程序
    微信小程序 向下滚动加载更多 和 上滑刷新的写法
    微信小程序 用 Pormise 封装 wx.request 请求
    ES6 再次学习 Promise语法(代码图解)
    Maven依赖排除及版本统一
    Maven依赖使用的范围
    SSM整合时的配置文件
    SSM整合时用到的maven依赖
  • 原文地址:https://www.cnblogs.com/ywheunji/p/10506747.html
Copyright © 2011-2022 走看看