博客
关于我
Deep Learning---caffe模型参数量(weights)计算
阅读量:78 次
发布时间:2019-02-25

本文共 940 字,大约阅读时间需要 3 分钟。

Draw_convnet

通过使用开源工具draw_convnet,可以手动绘制前向计算网络的计算图。这种方法非常直观,尤其是在参数量的计算方面效果尤为明显。在深入了解每一层的输入输出以及参数设置后,可以清晰地看到计算过程的各个环节。

feature map大小计算

在深度学习中,feature map的大小计算是一个关键步骤。以下是常见的计算方法:

  • 输入:N0C0H0*W0

  • 输出:N1C1H1*W1

  • feature map大小:

    H1 = (H0 + 2×pad - kernel_size) / stride + 1
    W1 = (W0 + 2×pad - kernel_size) / stride + 1
    当输入的H0 = W0时,公式可以简化为:
    H1 = W1 = (h + 2×pad - kernel_size) / stride + 1

    注:当stride为1时,若pad=(kernel_size−1)/2,那么经过计算后的feature map大小保持不变。

以LeNet-5为例

以下是LeNet-5网络的前向计算模拟图:

  • 输入层为多通道图像,网络结构包括两层卷积层和几层全连接层。
  • 网络中的卷积核(kernel)大小和通道数直接影响参数量。
  • 每个卷积核都有对应的偏置项(bias)。

参数量计算

  • C1:5x5x20卷积核,输出20个feature map,参数量为500。
  • C2:20x5x5x50卷积核,输出50个feature map,参数量为25000。
  • F1:50x4x4x500全连接层,输出500个feature map,参数量为400000。
  • F2:500x1x1x10全连接层,输出10个feature map,参数量为5000。

总参数量为500 + 25000 + 400000 + 5000 = 431080。使用4字节存储,总体参数量大小为431080x4=1724320字节,约为1.64MB。

参数量分析

LeNet-5的模型大小与实际训练结果接近,主要包含卷积层和全连接层的参数。通过优化卷积核大小和使用更高效的存储格式,可以进一步减少参数量。

参考资料

本文基于LeNet-5网络进行分析,结合实际模型训练结果进行对比。

转载地址:http://ydj.baihongyu.com/

你可能感兴趣的文章
node不是内部命令时配置node环境变量
查看>>
node中fs模块之文件操作
查看>>
Node中同步与异步的方式读取文件
查看>>
Node中的Http模块和Url模块的使用
查看>>
Node中自启动工具supervisor的使用
查看>>
Node入门之创建第一个HelloNode
查看>>
node全局对象 文件系统
查看>>
Node出错导致运行崩溃的解决方案
查看>>
Node响应中文时解决乱码问题
查看>>
node基础(二)_模块以及处理乱码问题
查看>>
node安装及配置之windows版
查看>>
Node实现小爬虫
查看>>
Node提示:error code Z_BUF_ERROR,error error -5,error zlib:unexpected end of file
查看>>
Node提示:npm does not support Node.js v12.16.3
查看>>
Node搭建静态资源服务器时后缀名与响应头映射关系的Json文件
查看>>
Node服务在断开SSH后停止运行解决方案(创建守护进程)
查看>>
node模块化
查看>>
node环境下使用import引入外部文件出错
查看>>
node编译程序内存溢出
查看>>
Node读取并输出txt文件内容
查看>>