Contenu du cours
Introduction à TensorFlow
Introduction à TensorFlow
Opérations de Réduction
Opérations de Réduction
Dans le monde des opérations sur les tenseurs, il existe de nombreuses tâches où nous devons réduire les dimensions de nos données, soit en les résumant sur un ou plusieurs axes. Par exemple, si nous avons un tenseur 2D (une matrice), une opération de réduction pourrait calculer une valeur pour chaque ligne ou chaque colonne, résultant en un tenseur 1D (un vecteur). TensorFlow offre un ensemble d'opérations pour accomplir cela, et dans ce chapitre, nous explorerons les opérations de réduction les plus couramment utilisées.
Somme, Moyenne, Maximum et Minimum
TensorFlow propose les méthodes suivantes pour ces calculs :
tf.reduce_sum()
: Calcule la somme de tous les éléments du tenseur ou le long d'un axe spécifique ;tf.reduce_mean()
: Calcule la moyenne des éléments du tenseur ;tf.reduce_max()
: Détermine la valeur maximale dans le tenseur ;tf.reduce_min()
: Trouve la valeur minimale dans le tenseur.
import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
Remarque
La méthode
.numpy()
a été utilisée pour convertir les tenseurs en tableaux NumPy, offrant une présentation visuelle plus claire des nombres lorsqu'ils sont affichés.
Opérations le long d'axes spécifiques
Les tenseurs peuvent avoir plusieurs dimensions, et parfois nous voulons effectuer des réductions le long d'un axe spécifique. Le paramètre axis
nous permet de spécifier quel axe ou quels axes nous voulons réduire.
axis=0
: Effectuer l'opération le long des lignes (résultant en un vecteur colonne);axis=1
: Effectuer l'opération le long des colonnes (résultant en un vecteur ligne);- Il est possible de réduire le long de plusieurs axes simultanément en fournissant une liste au paramètre
axis
; - Lorsque le rang du tenseur est réduit, vous pouvez utiliser
keepdims=True
pour conserver la dimension réduite à 1.
Pour un tenseur 2D (matrice) :
import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
Remarque
Lorsque vous exécutez une opération de réduction le long d'un axe spécifique, vous éliminez essentiellement cet axe du tenseur, agrégeant tous les tenseurs au sein de cet axe élément par élément. Le même effet restera pour n'importe quel nombre de dimensions.
Voici à quoi cela ressemble pour un tenseur 3D :
import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
Remarque
De nombreuses autres opérations de réduction existent dans TensorFlow, mais elles fonctionnent selon les mêmes principes.
Swipe to start coding
Contexte
Vous êtes un data scientist dans une agence de recherche météorologique. On vous a donné un tenseur contenant des relevés météorologiques de différentes villes sur plusieurs jours. Le tenseur a la structure suivante :
- Dimension 1 : Représente différentes villes.
- Dimension 2 : Représente différents jours.
- Chaque entrée dans le tenseur est un tuple de
(temperature, humidity)
.
Objectif
- Calculer la température moyenne pour chaque ville sur tous les jours.
- Calculer la humidité maximale enregistrée dans toutes les villes pour chaque jour.
Remarque
Dans ce tenseur, le premier nombre de chaque tuple représente la température (en Celsius) et le deuxième nombre représente l'humidité (en pourcentage) pour ce jour et cette ville.
Solution
Merci pour vos commentaires !
Opérations de Réduction
Opérations de Réduction
Dans le monde des opérations sur les tenseurs, il existe de nombreuses tâches où nous devons réduire les dimensions de nos données, soit en les résumant sur un ou plusieurs axes. Par exemple, si nous avons un tenseur 2D (une matrice), une opération de réduction pourrait calculer une valeur pour chaque ligne ou chaque colonne, résultant en un tenseur 1D (un vecteur). TensorFlow offre un ensemble d'opérations pour accomplir cela, et dans ce chapitre, nous explorerons les opérations de réduction les plus couramment utilisées.
Somme, Moyenne, Maximum et Minimum
TensorFlow propose les méthodes suivantes pour ces calculs :
tf.reduce_sum()
: Calcule la somme de tous les éléments du tenseur ou le long d'un axe spécifique ;tf.reduce_mean()
: Calcule la moyenne des éléments du tenseur ;tf.reduce_max()
: Détermine la valeur maximale dans le tenseur ;tf.reduce_min()
: Trouve la valeur minimale dans le tenseur.
import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
Remarque
La méthode
.numpy()
a été utilisée pour convertir les tenseurs en tableaux NumPy, offrant une présentation visuelle plus claire des nombres lorsqu'ils sont affichés.
Opérations le long d'axes spécifiques
Les tenseurs peuvent avoir plusieurs dimensions, et parfois nous voulons effectuer des réductions le long d'un axe spécifique. Le paramètre axis
nous permet de spécifier quel axe ou quels axes nous voulons réduire.
axis=0
: Effectuer l'opération le long des lignes (résultant en un vecteur colonne);axis=1
: Effectuer l'opération le long des colonnes (résultant en un vecteur ligne);- Il est possible de réduire le long de plusieurs axes simultanément en fournissant une liste au paramètre
axis
; - Lorsque le rang du tenseur est réduit, vous pouvez utiliser
keepdims=True
pour conserver la dimension réduite à 1.
Pour un tenseur 2D (matrice) :
import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
Remarque
Lorsque vous exécutez une opération de réduction le long d'un axe spécifique, vous éliminez essentiellement cet axe du tenseur, agrégeant tous les tenseurs au sein de cet axe élément par élément. Le même effet restera pour n'importe quel nombre de dimensions.
Voici à quoi cela ressemble pour un tenseur 3D :
import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
Remarque
De nombreuses autres opérations de réduction existent dans TensorFlow, mais elles fonctionnent selon les mêmes principes.
Swipe to start coding
Contexte
Vous êtes un data scientist dans une agence de recherche météorologique. On vous a donné un tenseur contenant des relevés météorologiques de différentes villes sur plusieurs jours. Le tenseur a la structure suivante :
- Dimension 1 : Représente différentes villes.
- Dimension 2 : Représente différents jours.
- Chaque entrée dans le tenseur est un tuple de
(temperature, humidity)
.
Objectif
- Calculer la température moyenne pour chaque ville sur tous les jours.
- Calculer la humidité maximale enregistrée dans toutes les villes pour chaque jour.
Remarque
Dans ce tenseur, le premier nombre de chaque tuple représente la température (en Celsius) et le deuxième nombre représente l'humidité (en pourcentage) pour ce jour et cette ville.
Solution
Merci pour vos commentaires !