¿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:

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 model

    En 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 model

    En 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