Couches récurrentes (Bidirectional)

Fonctions :

  • Bidirectional()

    La couche Bidirectional enveloppe une couche récurrente (comme LSTM, GRU ou SimpleRNN) afin d'appliquer un traitement dans les deux sens (avant et arrière) sur une séquence. Cela permet au modèle d'accéder à l'information passée et future dans la séquence, améliorant souvent la performance sur les tâches séquentielles.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Bidirectional, LSTM, Dense
    import numpy as np

    Attributs :

    Paramètre Type Description Valeur par défaut
    layer Layer Keras Couche récurrente à appliquer bidirectionnellement (ex: LSTM, GRU).
    merge_mode str Mode de fusion des sorties avant et arrière. Options : 'concat', 'sum', 'mul', 'ave'. 'concat'
    backward_layer Layer Keras Couche utilisée pour le sens arrière. Par défaut même que layer. None
    input_shape tuple Forme des données d'entrée (passé à la couche enveloppée).

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Bidirectional, LSTM, Dense
    import numpy as np
    
    # Données simulées : 100 séquences, chaque séquence de longueur 10, avec 8 features par pas de temps
    X = np.random.rand(100, 10, 8)
    y = np.random.randint(0, 2, size=(100, 1))
    
    # Modèle avec couche Bidirectional LSTM
    model = Sequential()
    model.add(Bidirectional(LSTM(16), input_shape=(10, 8)))
    model.add(Dense(1, activation='sigmoid'))
    
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
    model.summary()

    Explication du code :

    Importation des bibliothèques
    Les classes `Bidirectional`, `LSTM`, `Dense` et `Sequential` sont importées depuis Keras pour construire un modèle séquentiel.
    Création des données
    Les données sont des séquences aléatoires : 100 exemples, chacun avec 10 pas de temps et 8 caractéristiques par pas.
    Définition du modèle
    La couche `Bidirectional` applique un LSTM dans les deux sens (avant et arrière) sur chaque séquence. La sortie est ensuite connectée à une couche dense avec activation sigmoïde pour une classification binaire.
    Compilation
    Le modèle est compilé avec l’optimiseur Adam et la fonction de perte binaire.