【问题标题】:How to calculate the total number of parameters in a convolutional neural network? [duplicate]如何计算卷积神经网络中的参数总数? [复制]
【发布时间】:2018-10-13 23:17:05
【问题描述】:

如何计算 CNN 网络中的参数总数

代码如下:

input_shape = (32, 32, 1)
flat_input_size = input_shape[0]*input_shape[1]*input_shape[2]
num_classes = 4

cnn_model = Sequential()
cnn_model.add(Conv2D(32, (3, 3), padding='same',
                 input_shape=input_shape))
cnn_model.add(Activation('relu'))
cnn_model.add(MaxPooling2D(pool_size=(2, 2)))
cnn_model.add(Conv2D(64, (3, 3)))
cnn_model.add(Activation('relu'))
cnn_model.add(MaxPooling2D(pool_size=(2, 2)))
cnn_model.add(Dropout(0.25))
cnn_model.add(Conv2D(128, (3, 3), padding='same'))
cnn_model.add(Activation('relu'))
cnn_model.add(MaxPooling2D(pool_size=(2, 2)))
cnn_model.add(Dropout(0.25))
cnn_model.add(Flatten())
cnn_model.add(Dense(512))
cnn_model.add(Activation('relu'))
cnn_model.add(Dropout(0.5))
cnn_model.add(Dense(num_classes))
cnn_model.add(Activation('softmax'))

这是结果

320、18496、73856、590336、2052如何获取,谁能解释一下?

【问题讨论】:

    标签: machine-learning neural-network deep-learning convolutional-neural-network


    【解决方案1】:

    你可以使用这个通用公式:

    channels_in * kernel_width * kernel_height * channels_out + num_channels

    所以第一个例子:

    1 * 3 * 3 * 32 + 32 = 320

    第二个:

    32 * 3 * 3 * 64 + 64 = 18,496

    通道数相加就是偏置项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-19
      • 2021-05-15
      • 2020-08-21
      • 2017-08-22
      • 2020-07-10
      • 2020-08-23
      • 2017-01-01
      • 1970-01-01
      相关资源
      最近更新 更多