Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Opérations de Réduction | Tenseurs
Introduction à TensorFlow

bookOpérations de Réduction

Opérations de réduction

Dans le domaine des opérations sur les tenseurs, de nombreuses tâches nécessitent de réduire les dimensions de nos données, soit en les résumant selon un ou plusieurs axes. Par exemple, si l’on dispose d’un tenseur 2D (une matrice), une opération de réduction peut calculer une valeur pour chaque ligne ou chaque colonne, produisant ainsi un tenseur 1D (un vecteur). TensorFlow propose 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.
12345678910111213141516171819
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())
copy
Note
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 lors de l'affichage.

Opérations selon des axes spécifiques

Les tenseurs peuvent avoir plusieurs dimensions, et il est parfois nécessaire d'effectuer des réductions selon un axe spécifique. Le paramètre axis permet de spécifier l'axe ou les axes à réduire.

  • axis=0 : effectue l'opération le long des lignes (résultant en un vecteur colonne) ;
  • axis=1 : effectue l'opération le long des colonnes (résultant en un vecteur ligne) ;
  • Il est possible de réduire selon plusieurs axes simultanément en fournissant une liste au paramètre axis ;
  • Lorsque le rang du tenseur est réduit, il est possible d'utiliser keepdims=True pour conserver la dimension réduite à 1.

Pour un tenseur 2D (matrice) :

1234567891011121314151617181920
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())
copy
Note
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, en agrégeant tous les tenseurs de cet axe élément par élément. Le même effet s’applique quel que soit le nombre de dimensions.

Voici à quoi cela ressemble pour un tenseur 3D :

12345678910111213141516171819
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())
copy
Note
Remarque

De nombreuses autres opérations de réduction existent dans TensorFlow, mais elles fonctionnent selon les mêmes principes.

Tâche

Swipe to start coding

Contexte

Vous êtes data scientist dans une agence de recherche météorologique. Un tenseur contenant des relevés météorologiques provenant de différentes villes sur plusieurs jours vous a été confié. Le tenseur possède la structure suivante :

  • Dimension 1 : représente différentes villes ;
  • Dimension 2 : représente différents jours.
  • Chaque entrée du tenseur est un tuple de (temperature, humidity).

Objectif

  1. Calculer la température moyenne pour chaque ville sur l'ensemble des jours.
  2. Calculer la valeur maximale d'humidité enregistrée, toutes villes confondues, pour chaque jour.

Remarque

Dans ce tenseur, le premier nombre de chaque tuple correspond à la température (en degrés Celsius) et le second à l’humidité (en pourcentage) pour ce jour et cette ville.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 12
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain what the axis parameter means in more detail?

How does keepdims=True affect the output shape?

Can you show more examples with higher-dimensional tensors?

close

Awesome!

Completion rate improved to 5.56

bookOpérations de Réduction

Glissez pour afficher le menu

Opérations de réduction

Dans le domaine des opérations sur les tenseurs, de nombreuses tâches nécessitent de réduire les dimensions de nos données, soit en les résumant selon un ou plusieurs axes. Par exemple, si l’on dispose d’un tenseur 2D (une matrice), une opération de réduction peut calculer une valeur pour chaque ligne ou chaque colonne, produisant ainsi un tenseur 1D (un vecteur). TensorFlow propose 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.
12345678910111213141516171819
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())
copy
Note
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 lors de l'affichage.

Opérations selon des axes spécifiques

Les tenseurs peuvent avoir plusieurs dimensions, et il est parfois nécessaire d'effectuer des réductions selon un axe spécifique. Le paramètre axis permet de spécifier l'axe ou les axes à réduire.

  • axis=0 : effectue l'opération le long des lignes (résultant en un vecteur colonne) ;
  • axis=1 : effectue l'opération le long des colonnes (résultant en un vecteur ligne) ;
  • Il est possible de réduire selon plusieurs axes simultanément en fournissant une liste au paramètre axis ;
  • Lorsque le rang du tenseur est réduit, il est possible d'utiliser keepdims=True pour conserver la dimension réduite à 1.

Pour un tenseur 2D (matrice) :

1234567891011121314151617181920
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())
copy
Note
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, en agrégeant tous les tenseurs de cet axe élément par élément. Le même effet s’applique quel que soit le nombre de dimensions.

Voici à quoi cela ressemble pour un tenseur 3D :

12345678910111213141516171819
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())
copy
Note
Remarque

De nombreuses autres opérations de réduction existent dans TensorFlow, mais elles fonctionnent selon les mêmes principes.

Tâche

Swipe to start coding

Contexte

Vous êtes data scientist dans une agence de recherche météorologique. Un tenseur contenant des relevés météorologiques provenant de différentes villes sur plusieurs jours vous a été confié. Le tenseur possède la structure suivante :

  • Dimension 1 : représente différentes villes ;
  • Dimension 2 : représente différents jours.
  • Chaque entrée du tenseur est un tuple de (temperature, humidity).

Objectif

  1. Calculer la température moyenne pour chaque ville sur l'ensemble des jours.
  2. Calculer la valeur maximale d'humidité enregistrée, toutes villes confondues, pour chaque jour.

Remarque

Dans ce tenseur, le premier nombre de chaque tuple correspond à la température (en degrés Celsius) et le second à l’humidité (en pourcentage) pour ce jour et cette ville.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 12
single

single

some-alt