如何添加Keras的Dropout层?我不知道具体应该在哪里添加这一层。我查看了两个链接:
- https://keras.io/api/layers/regularization_layers/dropout/
- https://machinelearningmastery.com/dropout-regularization-deep-learning-models-keras/
例如,我看到过这样的代码:
model.add(Dense(60, input_dim=60, activation='relu', kernel_constraint=maxnorm(3)))model.add(Dropout(0.2))model.add(Dense(30, activation='relu', kernel_constraint=maxnorm(3)))model.add(Dropout(0.2))model.add(Dense(1, activation='sigmoid'))
我理解这些密集层是通过循环创建的,所以我不确定如何添加Dropout层。
def get_Model(...): # 为模型构建密集层 for i in range(1, len(dense_layers)): layer = Dense(dense_layers[i], activity_regularizer=l2(reg_layers[i]), activation='relu', name='layer%d' % i) mlp_vector = layer(mlp_vector) predict_layer = Concatenate()([mf_cat_latent, mlp_vector]) result = Dense(1, activation='sigmoid', kernel_initializer='lecun_uniform', name='result') model = Model(inputs=[input_user, input_item], outputs=result(predict_layer)) return model
回答:
你可以尝试这样做:
for i in range(1, len(dense_layers)): layer = Dense(dense_layers[i], activity_regularizer=l2(reg_layers[i]), activation='relu', name='layer%d' % i) mlp_vector = layer(mlp_vector) mlp_vector = Dropout(0.2)(mlp_vector)
你可以在这里查看函数式API的使用方法 https://keras.io/guides/functional_api/