模型需要的参数计算

https://www.pianshen.com/article/76371333833/

关于卷积层,全连接层,池化层的相关输出参数计算

 
 
 
 
 

目录

说明

全连接层FC,全连接NN

卷积Convolutional

模型占用显存的计算 


为了更好的说明问题,另一个文中进行说明,本文内容都是一些概念/理论的东西,都是抄的。

https://blog.csdn.net/weixin_39875161/article/details/88364442

说明

kernel  == filter

feature map ×n == output

Depth == channel

符号 参数说明
Wi / H/ Ci Width / Height / Depth of input
W Width of feature map
H Height of feature map
D Depth of feature map
F Szie of filters
K Number of th filters
S Strip of filter

全连接层FC,全连接NN

全连接 :每个神经元与前后相邻层的每一个神经元都有连接关系,输入是特征,输出为预测的结果。

  • 参数个数: FC前层 × FC后层
  • 计算量/乘法计算次数/times :  FC前层 × FC后层

待优化的参数过多, 容易导致模型过拟合。 为避免这种现象, 实际应用中一般不会将原始图片直接喂入全连接网络
将会产生大量的参数,是整个网络最大的累赘。

卷积Convolutional

卷积,是提取特征的过程,也可以说成是压缩数据。有三个参数,卷积核/卷积层中神经元感知域大小kernel,滑动步长strip,填充方法padding:same/valid。

例: 输入是 7×7,滤波器是 3×3,步长为 1,填充为 0,那么就能得到一个 5×5的输出。如果输入量是 32x32x3,核是 5x5x3,不用全零填充,输出是(32-5+1)/1=28。如果要让输出量保持在 32x32x3, 可以对该层加一个大小为 2 的零填充。 可以根据需求计算出需要填充几层零。 32=(32-5+2P) /1 +1, 计算出 P=2, 即需填充 2,如下图。

  • 卷积核的个数  :   卷积核的个数=最终的featuremap的个数  = D   通过上图可以看出来,他是作者自己订的。
  • 参数的个数/Space: 卷积核的尺寸 x 卷积的深度x输出深度 = F x F x D x K
  • 输出尺寸  :( 输入数据体尺寸-卷积核+2*零填充的数量)/步长+1 = (Wi - W + 1)/S + 1
  • 计算量/乘法计算次数/times  :  输入图像的尺寸x 卷卷积的尺寸 x 输入深度 x 输出深度= Wi x Hi x F x F x Di x D

普通的cnn来说 卷积的深度 == 输入数据的深度

模型占用显存的计算 

下面是抄得


显存的占用主要是Model本身和每一层的output。

计算方法

image


 

 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39875161/article/details/87859169
原文地址:https://www.cnblogs.com/shuimuqingyang/p/14006773.html