Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 第二个卷积层参数的数量是否正确?_Python_Tensorflow_Keras_Neural Network_Conv Neural Network - Fatal编程技术网

Python 第二个卷积层参数的数量是否正确?

Python 第二个卷积层参数的数量是否正确?,python,tensorflow,keras,neural-network,conv-neural-network,Python,Tensorflow,Keras,Neural Network,Conv Neural Network,对于MNIST数据问题,我有一个简单的CNN cnn_model = tf.keras.Sequential([ tf.keras.layers.Conv2D(filters=24, kernel_size=(3,3), activation='relu'), tf.keras.layers.Conv2D(filters=36, kernel_size=(3,3), activation='relu'), tf.keras.layers.Flatten(), t

对于MNIST数据问题,我有一个简单的CNN

cnn_model = tf.keras.Sequential([
    tf.keras.layers.Conv2D(filters=24, kernel_size=(3,3), activation='relu'), 
    tf.keras.layers.Conv2D(filters=36, kernel_size=(3,3), activation='relu'),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128, activation=tf.nn.relu),
    tf.keras.layers.Dense(10, activation='softmax')
])
这就是总结的样子:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_12 (Conv2D)           (None, 26, 26, 24)        240       
_________________________________________________________________
conv2d_13 (Conv2D)           (None, 24, 24, 36)        7812      
_________________________________________________________________
flatten_13 (Flatten)         (None, 20736)             0         
_________________________________________________________________
dense_26 (Dense)             (None, 128)               2654336   
_________________________________________________________________
dense_27 (Dense)             (None, 10)                1290      
=================================================================
Total params: 2,663,678
Trainable params: 2,663,678
Non-trainable params: 0
_________________________________________________________________
为了问题的简单性,我跳过了问题中的池层

第一个卷积层有240个易于计算的参数:(核大小+偏差)*滤波器数量:(3*3+1)*24。 请解释为什么第二个卷积层有7812个参数(36*217)

展平层的大小为20736。这是前一层的36个过滤器产生的像素数:24*24*36


但是,我们如何从上一层的24幅图像中通过36个过滤器获得36幅图像呢?展平层的大小不应该是36*24*24*24,这是上一层的过滤器数量*上一层位图的大小*第一个卷积层的过滤器数量?

卷积层的参数数量是

(filter_height * filter_width * in_channels * out_channels) + out_channels
对你来说,那是

(3 * 3 * 24 * 36) + 36 = 7,812
这种卷积的输出形状是

(n_samples, remaining_height, remaining_width, n_filters)

谢谢这解释了很多。你能回答第二个问题吗?我不知道位图是什么:)我指的是单个过滤器的图像输出。这两个卷积层不产生24*36个图像吗?第二层中的每个过滤器产生24个图像,然后将所有图像相加为一个特征图。我说得对吗?每个过滤器都会将图像转换为一个通道,并连接到该轴上。第二层是36