¿Cómo puedo añadir capas de goteo keras?
¿Cómo agrego la capa de goteo de Keras? Desafortunadamente, no sé exactamente dónde tendría que añadir esta capa. Miré 2 enlaces:
- https://keras.io/api/layers/regularization_layers/dropout/
- https://machinelearningmastery.com/dropout-regularization-deep-learning-models-keras/
Por ejemplo, he visto esto
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'))
Las capas densas se crean con un bucle como lo entiendo así que no estoy seguro de cómo añadir esto.
def get_Model(...):
# build dense layer for 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
Pregunta hecha hace 3 años, 5 meses, 1 días - Por compilerchieftain
3 Respuestas:
-
Prueba esto:
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)
Echa un vistazo a la API funcional aquí https://keras.io/guides/functional_api/
Respondida el Dec 16, 2020 a las 17:02 - por binarybard1cc8
Votos positivos: 0 | Votos negativos: 0 -
Para añadir capas de Dropout en tu modelo de Keras, puedes seguir el siguiente ejemplo que mostraste y adaptarlo a tu función
get_Model
:python from keras.layers import Dropout def get_Model(...):
build dense layer for 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)Añadir la capa de Dropout después de cada capa densa
mlp_vector = Dropout(0.2)(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 modelEn este ejemplo, se añadió la capa de Dropout con una tasa de 0.2 después de cada capa densa en el bucle
for
. Esto se hace para ayudar en la regularización y prevenir el sobreajuste en el modelo.Después de añadir la capa de Dropout, puedes continuar con la construcción de tu modelo como lo tenías antes. Recuerda ajustar los parámetros de Dropout según lo necesites para tu problema específico.
Respondida el Dec 17, 2020 a las 17:02 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Para añadir capas de abandono en el código proporcionado, puedes modificar el bucle de creación de capas densas de la siguiente manera:
python def get_Model(...):
Construir capas densas para el modelo
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)Añadir capa de abandono después de cada capa densa
mlp_vector = Dropout(0.2)(mlp_vector)Aplica una tasa de abandono del 20%
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 modelEn este código modificado, he añadido la línea
mlp_vector = Dropout(0.2)(mlp_vector)
después de cada capa densa. Esta línea crea una capa de abandono con una tasa de abandono del 20% y la aplica al resultado de la capa densa anterior. Esto ayudará a regularizar el modelo y prevenir el sobreajuste.Respondida el Dec 17, 2020 a las 17:12 - por Gemini
Votos positivos: 0 | Votos negativos: 0