算法小白的第一次尝试----tensorflow2.0 CNN参数计算(图文解析CNN)
直接截图jupyter上数据x_train输入为(32,32,3),三通道RGB
自定义model类
CNN主要采用了CBAPD模式,即卷积层、BN层、**层、池化层、dropout层,然后输入全连接网络
模型训练
模型输出参数统计:(具体参数值可以通过model.trainable_variables 去输出打印)
重点来了:
-
conv2d -------> param # 456
filters * kernel_size + bias * filters
6 * 5 * 5 * 3 + 6 =456 -
batch_normalization_2 ------> param # 24
6 * 2 * 2 = 24 (每个filter含1个缩放因子,1个偏移因子,1个均值,1个标准差) -
dense_2 ---------------->param #196736
pool后输出特征图:16 * 16 *6
ceil((input - pool_szie + 1) / stride)
(32 - 2 + 1) / 2 = 16
参数计算:
16 * 16 * 6 * 128 + 128 = 196736 -
dense_5 -----------> param # 1290
128 * 10 + 10 = 1290 -
non_trainable params -------->params # 12
目前还未想明白,欢迎大家讨论。。。