Couches de reshaping (Reshape)
Les couches Reshape sont utilisées dans les réseaux de neurones pour modifier la forme (shape) des tenseurs d’entrée sans en changer les valeurs. L’objectif est de réorganiser les données afin qu’elles soient compatibles avec les couches suivantes du réseau.
Le principe consiste à transformer un tenseur d’une forme donnée en un tenseur d’une autre forme, tout en conservant le même nombre total d’éléments. Cela permet de passer facilement d’une représentation multidimensionnelle à une autre, selon les besoins de l’architecture.
Les couches Reshape sont utilisées dans les architectures CNN, RNN ou les autoencodeurs, lorsque les données doivent être adaptées pour des couches fully connected, des couches de convolution ou des couches récurrentes.
En résumé, les couches Reshape permettent de réorganiser les tenseurs d’entrée pour les rendre compatibles avec les couches suivantes, facilitant la conception flexible des architectures de réseaux de neurones.
Fonctions :
-
Reshape()
La couche Reshape permet de modifier la forme (shape) d’un tenseur sans changer ses données, en réarrangeant les dimensions. Elle est utilisée pour adapter la sortie d’une couche à l’entrée d’une autre, par exemple pour passer d’un vecteur plat à une forme multidimensionnelle.
Importation :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Reshape import numpy as npAttributs :
Paramètre Type Description Valeur par défaut target_shapetuple Nouvelle forme désirée du tenseur, sans la dimension batch. — input_shapetuple Forme de l’entrée (excluant la dimension batch), souvent utilisée pour la première couche d’un modèle. — Exemple de code :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Reshape import numpy as np # Données simulées : batch de 1 vecteur plat de taille 12 X = np.array([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]) # Modèle avec Reshape model = Sequential() model.add(Reshape((3, 2, 2), input_shape=(12,))) # Passage des données dans la couche output = model.predict(X) print(output.shape) # Affiche (1, 3, 2, 2) print(output)
Explication du code :
Importation des bibliothèques
On importe la couche `Reshape` et les modules nécessaires.Création des données
Les données représentent un batch contenant un vecteur plat de taille 12.Définition du modèle
Le modèle contient la couche `Reshape` qui transforme le vecteur plat en un tenseur 3D de forme (3, 2, 2).Exécution
Le passage des données produit un tenseur reshaped sans modifier les valeurs, seulement la forme.