zoukankan      html  css  js  c++  java
  • 深度可分离卷积网络

    以[3,64,64]的input为例,假设我们要得到[4,64,64]的output.以3x3卷积核为例.
    常规的卷及操作如下图所示:

    参数量共计3 x 3 x 3 x 4 = 108.

    深度可分离卷积可分为2个部分

    • depthwise convolution
    • pointwise convolution

    depthwise convolution

    常规卷积,卷积核是作用于所有的depth方向的. depthwise conv对不同channel用不同的卷积核做卷积

    得到[3,64,64]的输出. 此时参数共计3 x 3 x 3 = 27.

    pointwise convolution

    depthwise卷积没有考虑到同一位置不同channel上的数据之间的关联.所以我们用一个1 x 1的卷积核对depthwise得到的[3,64,64]输出再做卷积.这里做的就是常规卷积. 得到[1,64,64]. 用4个这样的1x1卷积核去做常规卷积. 得到输出[4,64,64].
    如下图所示:

    这一步参数量为3 x 1 x 1 x 4 = 12.

    深度可分离卷积一共耗费参数量为27 + 12 = 39个.
    所以可以看出同样是得到[4,64,64]的feature map. 相比普通卷积的108个参数量,深度可分离卷积的方式大大减少了参数量.

    总结一下就是:

    1. 现在深度方向对不同channel用不同卷积核做卷积.
    2. 对第一步得到的输出用1x1的卷积核去做常规卷积.达到使用不同channel的数据的目的. 用1x1的卷积核的数量控制深度.

    参考:https://yinguobing.com/separable-convolution/

  • 相关阅读:
    SpringBoot-源码解析
    SpringBoot快速部署
    vue.js
    数据库设计--三范式
    mysql 建表及练习
    索引复制迁移
    nginx检查、重启、、、
    设计模式--Strategy 策略模式
    设计模式--设计原则
    设计模式--Template Method(模板方法)
  • 原文地址:https://www.cnblogs.com/sdu20112013/p/11759928.html
Copyright © 2011-2022 走看看