这是为存储在50000 x 32 x 32 x 3的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
模型摘要(attached)表明第一次卷积后的参数数量应该是896个参数,但我不确定它们是如何得到这个数字的。 我假设计算应该是= 32 * 3 * 3参数。
有人可以告诉我如何计算每个卷积层的参数吗?
答案 0 :(得分:0)
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
个参数
等