这是为存储在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