• CNN卷积参数量计算


    参考:轻量级网络-Mobilenet系列(v1,v2,v3) - 知乎

    盘点下每种类型的层计算可学习参数的数量

    Input layer:输入层所做的只是读取输入图像,因此这里没有可以学习的参数。

    Convolutional layers:一个卷积层,其输入为l个特征图,输出为k个特征图,过滤器尺寸为n*m。如下举例:

    输入有l=32个特征图作为输入,k=64个特征图作为输出,滤波器大小为n=3,m=3,它是一个3*3*32的过滤器,因为我们的输入有32个维度。我们学习64个不同的3*3*32过滤器。因此权重的总数是n*m*l*k。然后,每个特征图也有一个偏置项,所以我们的参数总数为(n*m*l+1)*k。

    Pooling layers:池化层,例如执行以下操作:用最大值替换2*2邻域。因此,无须在池化层中学习任何参数。

    Fully-connected layers:在全连接层中,所有输入单元对每个输出单元都有一个单独的权重。对于n个输入和m个输出,权重数为n*m。此外,对每个输出节点都有一个偏差,因此有(n+1)*m个参数。

    Output layer:输出层是一个普通的全连接层,所以有(n+1)*m个参数,其中n是输入的数量,m是输出的数量。

    使用LeNet举例计算:

    输入

    Filter

    Stride

    Padding

    输出

    参数量计算公式

    参数量

    Input

    32*32*1

    32*32*1

    0

    Conv1

    32*32*1

    5*5*6

    1

    0

    28*28*6

    (5*5*1+1)*6

    156

    Maxpool1

    28*28*6

    2*2

    2

    0

    14*14*6

    0

    Conv2

    14*14*6

    5*5*16

    1

    0

    10*10*16

    (5*5*6+1)*16

    2416

    Maxpool2

    10*10*16

    2*2

    2

    0

    5*5*16

    0

    FC1

    5*5*16

    120

    (5*5*16+1)*120

    48120

    FC2

    120

    84

    (120+1)*84

    10164

    FC3

    84

    10

    (84+1)*10

    850

    所以总的参数量为:156+2416+48120+10164+850=61706个

    深度可分离卷积:

    普通卷积层的特征提取与特征组合一次完成并输出,而深度可分离卷积先用厚度为1的3*3的卷积核(depthwise分层卷积),再用1*1的卷积核(pointwise卷积)调整通道数,将特征提取与特征组合分开进行。深度可分离卷积可大大减少模型的参数,其具体结构如下:

    对比举例:

    假设某一网络卷积层,其卷积核大小为3*3,输入通道为16,输出通道为32。

    常规CNN的参数量为:(3*3*16+1)*32=4640个。

    深度可分离卷积参数量计算:

    先用16个大小为3*3的卷积核(3*3*1)作用于16个通道的输入图像,得到了16个特征图。在做融合操作之前,接着用16个大小为1*1的卷积核(1*1*16)遍历上述得到32个特征图。则参数量为:(3*3*1+1)*16+(1*1*16+1)*32=706个。

    在进行depthwise卷积时只使用了一种维度为in_channels的卷积核进行特征提取(没有进行特征组合);在进行pointwise卷积时只使用了output_channels种维度为in_channles*1*1的卷积核进行特征组合。

  • 相关阅读:
    128天创作纪念日
    BUUCTF [GWCTF 2019]pyre 1
    基于Android的小说电子书阅读app
    加码云原生,斩获 19000 Star 的开源国产数据库又上新
    总结CSS常用的知识点以及SCSS语法
    SpringMVC+统一表现层返回值+异常处理器
    VMware中安装Ubuntu(2023年)
    AcrelEMS高速公路微电网能效管理平台与智能照明解决方案智慧点亮隧道
    老夫的正则表达式大成了,桀桀桀桀!!!【Python 正则表达式笔记】
    在vue中用canvas画一个简单的贪吃蛇游戏
  • 原文地址:https://blog.csdn.net/benben044/article/details/128205098