博客
关于我
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/

你可能感兴趣的文章
OpenSLL
查看>>
Openssh Openssl升级
查看>>
openssh 加固
查看>>
OPENSSH升级为7.4
查看>>
ViewPager切换滑动速度修改
查看>>
OpenSSL 引入了新的治理模式和项目,来增强社区参与和决策
查看>>
openssl内存分配,查看内存泄露
查看>>
OpenSSL创建SSL证书
查看>>
openssl在cygwin下编译错误:CPU不支持x86_64(CPU you selected does not support x86-64 instruction set )
查看>>
openssl安装
查看>>
openssl安装
查看>>
OpenSSL生成root CA及签发证书
查看>>
Openstack CLI命令管理私有云主机实战(附OpenStack实验环境)
查看>>
openStack instance error 恢复
查看>>
openstack instance resize to
查看>>
openstack message queue
查看>>
openstack network:dhcp binding fail
查看>>
openStack openSource CloudComputing
查看>>
Openstack REST API
查看>>
OpenStack ussuri 私有云平台搭建企业级实战
查看>>