Leçon · Ouverture de la lecon, des exercices et du quiz
Leçon · Ouverture de la lecon, des exercices et du quiz
Lecture guidée
Comprendre la brique fondamentale du Deep Learning : le Tenseur. Manipulations, dimensions et opérations mathématiques de base.
Comprendre la brique fondamentale du Deep Learning : le Tenseur. Manipulations, dimensions et opérations mathématiques de base.
TensorFlow ne manipule pas des valeurs isolees comme dans un petit script Python. Il manipule surtout des tenseurs: des blocs de nombres organises en dimensions. Une image 28x28 devient un tenseur 2D, une image couleur devient souvent un tenseur 3D, un lot d images devient un tenseur 4D. Comprendre cela évite beaucoup d erreurs quand un modèle refuse une entree, quand une couche attend une forme précise ou quand une opération diffuse silencieusement une dimension.
Dans un projet deep learning, la forme des données est aussi importante que leur valeur. Un réseau CNN ne lit pas seulement des pixels, il lit des batches, des hauteurs, des largeurs et des canaux. TensorFlow impose donc une discipline: savoir inspecter les shapes, convertir les données, normaliser les valeurs et raisonner sur les opérations vectorisees.
Cette leçon pose les fondations pratiques: tensors, shapes, dtype, broadcasting, batch et opérations de base. Sans cette base, le reste de Keras ressemble a une API magique. Avec cette base, chaque erreur de dimension devient un diagnostic lisible.
Un tenseur est un tableau multidimensionnel de nombres manipule par TensorFlow.
(32, 28, 28, 1) pour un batch de 32 images grayscale.float32, int32 ou bool.Le batch est un groupe d exemples traites ensemble pendant l entraînement ou l inference.
Le broadcasting permet a certaines opérations d étendre automatiquement une dimension compatible.
Quand tu prepares des données TensorFlow, suis cette sequence.
Identifier l unite d exemple Une ligne, une image, une sequence, un signal audio ou un couple entree-sortie.
Inspecter la shape brute Ne devine jamais la forme. Affiche-la avant d appeler le modèle.
1.float32; les labels de classification peuvent être entiers.Normaliser les valeurs Les pixels entre 0 et 255 sont généralement ramenes entre 0 et 1.
import tensorflow as tf
x = tf.constant([[1, 2], [3, 4]], dtype=tf.float32)
print(x)
print(x.shape)(2, 2) indique deux lignes et deux colonnes.images = tf.zeros((32, 28, 28, 1))
print(images.shape)32 est la taille du batch, 28x28 la taille d image, 1 le canal grayscale.pixels = tf.constant([0, 128, 255], dtype=tf.float32)
normalized = pixels / 255.0
print(normalized)La normalisation rend l optimisation plus stable.
image_batch = tf.zeros((32, 28, 28))
image_batch = tf.expand_dims(image_batch, axis=-1)
print(image_batch.shape)(32, 28, 28) en (32, 28, 28, 1).scores = tf.constant([1.2, 0.4, -0.5])
shifted = scores - tf.reduce_mean(scores)
print(shifted)TensorFlow encourage les opérations vectorisees plutot que les boucles Python inutiles.
(28, 28, 1) quand le modèle attend (None, 28, 28, 1).Deuxième erreur : garder des pixels en entiers 0-255 et rendre l optimisation plus difficile.
shape et nombre total de valeurs. Deux tenseurs peuvent avoir autant de valeurs mais des formes incompatibles.float64 et float32 sans raison, ce qui peut ralentir ou compliquer le pipeline.Cinquième erreur : utiliser une boucle Python quand une opération TensorFlow vectorisee serait plus claire et plus rapide.
Sixième erreur : ne pas inspecter les labels. Pour une classification sparse, les labels entiers n ont pas le même format que des labels one-hot.
Un tenseur ressemble a une caisse organisee en compartiments. Une caisse de 32 plateaux contenant chacun 28 rangees, 28 colonnes et 1 canal n est pas la même chose qu une simple pile de 25 088 nombres. La forme dit au modèle comment lire la caisse. Si la forme est fausse, le modèle ne sait pas quoi faire du contenu.
En TensorFlow, l inspection de shape doit devenir un reflexe:
print("x shape:", x.shape)
print("x dtype:", x.dtype)Pour les images, un preprocessing typique ressemble a ceci:
x_train = tf.cast(x_train, tf.float32) / 255.0
x_train = tf.expand_dims(x_train, axis=-1)
print(x_train.shape)Conv2D échoue, la première question doit être: quelle shape exacte est entree dans la couche ?expected = "(batch, height, width, channels)"
print(expected)Le niveau premium consiste a savoir lire ces erreurs sans tatonner. Une erreur de dimension n est pas un mystere: c est une contradiction entre la forme produite par les données et la forme attendue par la couche.
Avant de construire un modèle TensorFlow, vérifie toujours:
Les tenseurs sont le langage de base de TensorFlow. Si tu sais lire leurs formes, tu peux diagnostiquer la majorite des erreurs de pipeline avant même de regarder l architecture.
Tres efficace apres une lecon theoriquement dense pour verifier la comprehension immediate.
Ideal juste apres une lecon sur la logique, les sequences ou les boucles.
Relie calcul, interpretation physique et visualisation 3D en une seule activite.