如何计算每个卷积层中的参数(CIFAR-10数据集)



这是为存储在4D张量的输入图像创建模型的函数

def createModel():
   model = Sequential()
   model.add(Conv2D(32, (3, 3), padding='same', activation='relu', input_shape=input_shape))
   model.add(Conv2D(32, (3, 3), activation='relu'))
   model.add(MaxPooling2D(pool_size=(2, 2)))
   model.add(Dropout(0.25))
   model.add(Conv2D(64, (3, 3), padding='same', activation='relu'))
   model.add(Conv2D(64, (3, 3), activation='relu'))
   model.add(MaxPooling2D(pool_size=(2, 2)))
   model.add(Dropout(0.25))
   model.add(Conv2D(64, (3, 3), padding='same', activation='relu'))
   model.add(Conv2D(64, (3, 3), activation='relu'))
   model.add(MaxPooling2D(pool_size=(2, 2)))
   model.add(Dropout(0.25))
   model.add(Flatten())
   model.add(Dense(512, activation='relu'))
   model.add(Dropout(0.5))
   model.add(Dense(nClasses, activation='softmax'))
return model

模型摘要(附件(表明,第一个卷积之后的参数数应为896个参数,但我不确定它们是如何获得这个数字的。我假设计算应为= 32 * 3 * 3参数。

有人可以告诉我如何计算每个卷积层的参数吗?

2D卷积中的内核参数数为:

output channels * kernel width * kernel height * input channels

,如果使用偏差(use_bias=True(,则有一个添加的output channels偏差参数。

因此您的第一层具有(32 * 3 * 3 * 3) + 32 = 896参数

您的第二层具有(32 * 3 * 3 * 32) + 32 = 9248参数

etc

最新更新