我在尝试按照这个Stack Overflow帖子了解每层参数的计算方法,有人能给我一些建议吗?
这是我的model.summary()
的输出:
这是模型:
model = Sequential()model.add(Dense(60, input_dim=44, kernel_initializer='normal', activation='relu'))model.add(Dense(55, kernel_initializer='normal', activation='relu'))model.add(Dense(50, kernel_initializer='normal', activation='relu'))model.add(Dense(45, kernel_initializer='normal', activation='relu'))model.add(Dense(30, kernel_initializer='normal', activation='relu'))model.add(Dense(20, kernel_initializer='normal', activation='relu'))model.add(Dense(1, kernel_initializer='normal'))
回答:
对于多层感知机,计算公式是:
(previous_layer_nodes + 1) * (layer_nodes)
其中+1代表偏置项。
对于输入层,前一层的节点数是input_dim
,因为输入实际上是一个隐式层。
所以,在你的情况下:
dense : (44+1)*60 = 2700dense_1 : (60+1)*55 = 3355dense_2 : (55+1)*50 = 2800dense_3 : (50+1)*45 = 2295dense_4 : (45+1)*30 = 1380dense_5 : (30+1)*20 = 620dense_6 : (20+1)*1 = 21