Couches de reshaping (TimeDistributed)

Fonctions :

  • TimeDistributed()

    La couche TimeDistributed applique une couche spécifique de manière indépendante à chaque pas de temps d’une séquence d’entrée. Elle est utilisée pour traiter séquentiellement chaque élément d’une séquence, comme appliquer une couche Dense ou Conv2D sur chaque frame d’une séquence vidéo.

    Importation :

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

    Attributs :

    Paramètre Type Description Valeur par défaut
    layer Layer Couche à appliquer indépendamment à chaque pas de temps.

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import TimeDistributed, Dense
    import numpy as np
    
    # Données simulées : batch de 2 séquences, chacune de longueur 3, vecteurs de taille 4
    X = np.random.rand(2, 3, 4)
    
    # Modèle avec TimeDistributed appliquant une couche Dense à chaque pas de temps
    model = Sequential()
    model.add(TimeDistributed(Dense(5), input_shape=(3, 4)))
    
    # Passage des données dans la couche
    output = model.predict(X)
    print("Shape avant :", X.shape)   # (2, 3, 4)
    print("Shape après :", output.shape)  # (2, 3, 5)

    Explication du code :

    Importation des bibliothèques
    On importe la couche `TimeDistributed`, la couche `Dense` ainsi que les modules nécessaires.
    Création des données
    Les données sont un batch de 2 séquences, chaque séquence contient 3 vecteurs de taille 4.
    Définition du modèle
    La couche `TimeDistributed` applique une couche Dense de sortie 5 à chaque vecteur de la séquence indépendamment.
    Exécution
    Le tenseur passe d’une forme (2, 3, 4) à (2, 3, 5), la couche Dense étant appliquée à chaque pas de temps.