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

你可能感兴趣的文章
OpenGL中shader读取实现
查看>>
OpenGL中旋转平移缩放等变换的顺序对模型的影响
查看>>
Opengl中的gluProject函数认识
查看>>
OpenGl介绍
查看>>
OPENGL半透明图像产生黑色光环
查看>>
OpenGL和图形卡
查看>>
OpenGL字体绘制
查看>>
OpenGL学习
查看>>
openGL学习步骤
查看>>
OpenGL的基本概念介绍
查看>>
OpenGL着色器、纹理开发案例
查看>>
OpenGL程序无法启动此应用程序,因为计算机中丢失glut32.dll(转))
查看>>
opengl绘制几何体的函数
查看>>
openGL缓存概念和缓存清除(01)
查看>>
OpenJDK11 下的HSDB工具使用入门
查看>>
openjdk踩坑
查看>>
openjudge 1792 迷宫 解析报告
查看>>
OpenJudge/Poj 1658 Eva's Problem
查看>>
Openlayers 9.0新功能
查看>>
openlayers controls基础知识
查看>>