JNaranjo-Alcazar / acoustic_scene_dcase2022

Codes related to acoustic scene classification task for DCASE 2022
MIT License
3 stars 1 forks source link

Add Squezee-Excitation network #7

Open JNaranjo-Alcazar opened 2 years ago

JNaranjo-Alcazar commented 2 years ago

La red debe estar implementada en

JNaranjo-Alcazar commented 2 years ago

Pedirme el código de la red y entrenarla.

JNaranjo-Alcazar commented 2 years ago

impleméntala en src/models/squeeze_exctitation.py

JNaranjo-Alcazar commented 2 years ago

@jozapa https://github.com/JNaranjo-Alcazar/acoustic_scene_dcase2022/blob/master/src/models/squeeze_excitation/squeeze_exctitation_tf.py

JNaranjo-Alcazar commented 2 years ago

Este nuevo paper afirma que hay que obtener el maximo (https://arxiv.org/abs/1808.08127) en lugar de sumar las dos excitaciones, haremos las dos pruebas

para torch https://github.com/ai-med/squeeze_and_excitation https://github.com/ai-med/squeeze_and_excitation/tree/master/squeeze_and_excitation

En tensorflow hay que añadir una linea en

channel_spatial_squeeze_excite(input_tensor,  ratio=16)

para que obtenga el máximo

JNaranjo-Alcazar commented 2 years ago

Hecho

def channel_spatial_squeeze_excite(input_tensor, merge_type='sum', ratio=16):
    """ Create a spatial squeeze-excite block
    Args:
        input_tensor: input Keras tensor
        ratio: number of output filters
    Returns: a Keras tensor
    References
    -   [Squeeze and Excitation Networks](https://arxiv.org/abs/1709.01507)
    -   [Concurrent Spatial and Channel Squeeze & Excitation in Fully Convolutional Networks]
        (https://arxiv.org/abs/1803.02579)
    """

    cse = squeeze_excite_block(input_tensor, ratio)
    sse = spatial_squeeze_excite_block(input_tensor)

    if merge_type == 'sum':
        x = add([cse, sse])
    elif merge_type == 'max':
        x = Maximum()([cse, sse])
    return x