Couches de reshaping (Permute)

Les couches Permute sont utilisées dans les réseaux de neurones pour réorganiser l’ordre des dimensions d’un tenseur d’entrée. L’objectif est d’adapter la structure des données aux exigences des couches suivantes du réseau.

Le principe consiste à permuter les axes d’un tenseur selon un ordre spécifié, sans modifier les valeurs elles-mêmes. Cette opération est utile lorsque certaines couches attendent des données avec un ordre de dimensions particulier, comme dans les réseaux récurrents ou convolutionnels.

Les couches Permute sont utilisées dans les architectures CNN, RNN et les modèles combinant plusieurs types de couches, pour aligner correctement les dimensions avant d’appliquer des convolutions, des récurrentes ou des opérations de pooling.

En résumé, les couches Permute permettent de réorganiser l’ordre des dimensions d’un tenseur, facilitant la compatibilité des données avec les couches suivantes et la flexibilité de l’architecture du réseau.

Fonctions :

  • Permute()

    La couche Permute réorganise (permute) les dimensions d’un tenseur d’entrée selon un ordre spécifié, excepté la dimension batch qui reste inchangée. Elle est utile pour adapter la disposition des données entre différentes couches.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Permute
    import numpy as np

    Attributs :

    Paramètre Type Description Valeur par défaut
    dims tuple ou liste d'entiers Nouvel ordre des dimensions (1-based), hors dimension batch.

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Permute
    import numpy as np
    
    # Données simulées : batch de 1 tenseur de forme (2, 3, 4)
    X = np.random.rand(1, 2, 3, 4)
    
    # Modèle avec Permute : on inverse la 2ème et 3ème dimension
    model = Sequential()
    model.add(Permute((1, 3, 2), input_shape=(2, 3, 4)))
    
    # Passage des données dans la couche
    output = model.predict(X)
    print("Shape avant :", X.shape)   # (1, 2, 3, 4)
    print("Shape après :", output.shape)  # (1, 2, 4, 3)
    Résultat du code

    Explication du code :

    Importation des bibliothèques
    On importe la couche `Permute` ainsi que les modules nécessaires.
    Création des données
    Les données sont un tenseur de forme (2, 3, 4) avec un batch de taille 1.
    Définition du modèle
    La couche `Permute` est ajoutée pour inverser la 2ème et 3ème dimension (ordre (1, 3, 2)).
    Exécution
    Après passage dans la couche, la forme du tenseur est modifiée en (2, 4, 3), les données sont réordonnées sans être modifiées.

⚠️ Ce contenu est réservé aux membres Premium

Abonnez-vous pour débloquer cette page et accéder à tous nos contenus exclusifs.

Souscrire maintenant