zoukankan      html  css  js  c++  java
  • 深度学习中卷积的参数量与计算量

    普通卷积

    输入卷积:Win * Hin * Cin
    卷积核:k * k
    输出卷积:Wout * Hout * Cout

    参数量:(即卷积核的参数)
    k * k * Cin * Cout
    或者:(k * k * Cin + 1) * Cout (包括偏置bias)
    计算量:
    k * k * Cin * Wout * Hout * Cout

    深度可分离卷积(Depthwise Separable Convolution)

    深度可分离卷积可以分为:depthwise conv + pointwise conv


    depthwise 卷积(输入channel等于输出channel)
    输入卷积:Win * Hin * Cin
    卷积核:k * k
    输出卷积:Wout * Hout * Cin

    参数量:
    k * k * Cin

    计算量:
    k * k * Cin * Wout * Hout

    pointwise conv即普通的1x1卷积,参数来按照普通1x1卷积来算


    组卷积(Group Convolution)

    输入卷积:Win * Hin * Cin
    卷积核:k * k
    输出卷积:Wout * Hout * Cout
    分成g组

    参数量:(即卷积核的参数)
    k * k * (Cin / g) * (Cout / g) * g = k * k * Cin * Cout * (1 / g)
    自然,分组卷积的参数量是标准卷积的 1/g

    计算量:
    k * k * (Cin/g) * (Wout/g) * Hout * Cout * g= k * k * Cin * Wout * Hout * Cout * (1/g)

    参考:

    卷积核的参数量和计算量 https://www.cnblogs.com/ywheunji/p/11887906.html
    理解分组卷积和深度可分离卷积如何降低参数量 https://zhuanlan.zhihu.com/p/65377955

  • 相关阅读:
    迭代器概念与traits编程技法
    C++模板的特化与偏特化
    c++ operator关键字
    cookie-小总结吧
    ping
    git
    setTimeout()基础/setInterval()基础
    SASS
    命令行编译sass
    sublime添加sass编译
  • 原文地址:https://www.cnblogs.com/hejunlin1992/p/12978988.html
Copyright © 2011-2022 走看看