https://www.pianshen.com/article/76371333833/
关于卷积层,全连接层,池化层的相关输出参数计算
目录
为了更好的说明问题,另一个文中进行说明,本文内容都是一些概念/理论的东西,都是抄的。
https://blog.csdn.net/weixin_39875161/article/details/88364442
说明
kernel == filter
feature map ×n == output
Depth == channel
符号 | 参数说明 |
Wi / Hi / 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 版权协议,转载请附上原文出处链接和本声明。