Draw_convnet

这幅图是通过开源的工具draw_convnet(https://github.com/gwding/draw_convnet)生成的。在清楚整个前向计算网络中的每一个层的输入输出以及参数设置后可以自己手动画出计算图出来,对于参数量计算就很直观了。

feature map大小计算

输入:N0*C0*H0*W0
输出:N1*C1*H1*W1
输出的feature map大小:
H1=(H0+2×pad−kernel_size) / stride+1
W1=(W0+2×pad−kernel_size) / stride+1
当输入的H0 == W0时,公式可以简化为:
H1=W1=(h + 2xpad - kernel_size) / stride + 1
注:当stride为1时,若pad=(kernel_size−1)  / 2,那么经过计算后的feature map大小不变

以LeNet-5为例

下面是一个多通道图像的输入LeNet-5网络前向计算模拟图:

  • 网状立体格子表示kernel,其他颜色方图表示feature map(Input表示输入层,可以看做特殊的feature map)
  • 一个kernel对应一个feature map
  • 参数量主要为kernel大小
  • 每个kernel带一个bias

整个网络占据权重的为Convolution/Innerproduct 两层,分别计算参数量为,:

C1: 5 x 5 x 20 =  500,5x5卷积核, 20个feature map输出,20个kernel
C2: 20x 5 x 5 x 50 = 25000 ,20维度输入,则20x5x5 kernel,50个feature map输出,即相当于20通道的图像输入,则需要20x5x5的kernel来卷积乘,50个这样的卷积核操作得到50个feature map,50个kernel
F1: 50x4x4x500 = 400000,50维度特征图输入,全连接,每个点做卷积乘,则kernel大小为50x4x4,共500个feature map输出,500个kernel
F2 : 500x1x1x10 = 5000,500维度特征图输入,全连接,kernel大小为500x1x1,共10个feature map输出,10个kernel

用4bytes的float类型来存储参数,则总的参数量大小为:

500 + 25000 + 400000 + 5000 + (20 + 50 + 500 + 10) =  431080

字节数为:

431080 x 4 = 1724320 ≈ 1683.90625kb ≈ 1.64M

对比实际LeNet-5网络基于caffe训练出来的模型大小为:1.64 MB (1,725,025 字节),基本接近,因为模型中可能还带有附加特性参数。

参考资料:

http://blog.csdn.net/cheese_pop/article/details/51955915
http://timdettmers.com/2015/03/26/convolution-deep-learning/

Deep Learning---caffe模型参数量(weights)计算相关推荐

  1. 深度学习模型参数量/计算量和推理速度计算

    作者|龟壳 来源 | 知乎 地址 | https://zhuanlan.zhihu.com/p/376925457 本文仅作学术分享,若侵权请联系后台删文处理 本文总结了一些关于模型参数量计算以及推理 ...

  2. 神经网络参数量的计算:以UNet为例

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:Hello王叔叔 知乎链接:https://zhuanlan.zhihu.c ...

  3. 卷积神经网络的参数量和计算量

    <卷积神经网络的参数量和计算量>   对于在端部署的模型来说,模型的参数量以及计算量是锱铢必较的,使用什么样的激活函数,会有多大的计算成本.对于模型的压缩量化等都是模型的参数量和计算量的准 ...

  4. 卷积神经网络参数量和计算量内存计算

    卷积神经网络参数量和计算量内存计算 参数量 计算量 内存 参数量 每一次卷积的参数量和特征图的大小无关,仅和卷积核的大小,偏置及BN有关. 1.每个卷积层的参数量,+1表示偏置: Co x (Kw x ...

  5. 深度学习中参数量与计算量的理解

    接下来要分别概述以下内容: 1 首先什么是参数量,什么是计算量 2 如何计算 参数量,如何统计 计算量 3 换算参数量,把他换算成我们常用的单位,比如:mb 4 对于各个经典网络,论述他们是计算量大还 ...

  6. 卷积层计算量(FLOPS)和参数量的计算

    1.卷积参数量的计算,若卷积层的输入featuremap的维度为Cin×Hin×Win,卷积核的大小为K1×K2, padding=P1×P2, stride=S1×S2,卷积核(filter)的数量 ...

  7. 卷积层和全连接层的区别_CNN卷积层、全连接层的参数量、计算量

    我们以VGG-16为例,来探讨一下如何计算卷积层.全连接层的参数量.计算量.为了简单.直观地理解,以下讨论中我们都会忽略偏置项,实践中必须考虑偏置项. [卷积层的参数量] 什么是卷积层的参数? 卷积层 ...

  8. 卷积核的参数量和计算量

    卷积核的参数量和计算量 1. 参数量计算 1.1 普通卷积 输入特征图尺寸 CxHxW 输出特征图尺寸 OxHxW 卷积核尺寸 kxkxC(O个kxkxC的卷积) 权重 kxkxCxO 偏置 O BN ...

  9. vgg16卷积层的计算量_vgg16模型参数量和使用的的内存计算

    关于VGG-16模型的内存和参数的计算过程如下. INPUT: [224x224x3] memory: 224*224*3=150K weights: 0 CONV3-64: [224x224x64] ...

最新文章

  1. 在 Linux“.NET研究” 操作系统中运行 ASP.NET 4 (下)
  2. linux运行中望cad,国产CAD软件中望的Linux版适配UOS, 我在国产系统里试了试
  3. bigdecimal 加法_巧用加法的运算律,简化有理数的加法运算
  4. MongoDB 复制集和分片的理解
  5. 案例29-购物车提交订单
  6. 现代操作系统原理与实践03:操作系统结构
  7. 中兴v5max android5.1,中兴V5Max
  8. 基于排队论模型的收银台服务系统的分析及可视化设计
  9. android oppo 闪退,为什么oppo手机老是闪退?三个原因分析帮你解决问题
  10. 修改EDGE的新标签页网址
  11. 【DL】第 6 章:文本生成转换器
  12. Unity InputField输入框调用win10平板虚拟键盘
  13. FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书启用FTPS 【转载】
  14. WAS下Sanp、heapdump、javacore
  15. Arcgis中把背景值为0的图像背景改为nodate
  16. 喜羊羊与灰太狼——深度优先搜索
  17. VSCode 开启||关闭右侧预览功能
  18. 北航王田苗教授:国内外机器人发展热点与趋势(精华版)
  19. python封装一个小游戏
  20. 《梦幻模拟战》漏洞挖掘全过程

热门文章

  1. boost::mp11::mp_replace相关用法的测试程序
  2. boost::math::chi_squared用法的测试程序
  3. boost::remove_edge用法的测试程序
  4. boost::fibers模块实现适应非阻塞的测试程序
  5. ITK:在傅立叶域中过滤图像
  6. DCMTK:测试CT Table Dynamics FG类
  7. VTK:几何对象之Arrow
  8. OpenCV绘制等高线Contours的实例(附完整代码)
  9. OpenGL packetbuffer分组缓冲器的实例
  10. OpenGL 光照贴图Lighting maps