Contenu du cours
Introduction à TensorFlow
Introduction à TensorFlow
Opérations de Base : Arithmétique
Opérations Arithmétiques
TensorFlow offre de nombreuses opérations arithmétiques pour la manipulation des tenseurs. Ces opérations et bien d'autres dans TensorFlow prennent en charge le broadcasting, ce qui facilite l'exécution d'opérations élément par élément sur des tenseurs de formes différentes.
Addition
Pour l'addition de tenseurs, nous pouvons utiliser les méthodes tf.add()
, .assign_add()
et le signe plus +
. Nous pouvons également utiliser le broadcasting avec le signe plus +
ou avec la méthode tf.add()
.
Le Broadcasting permet d'effectuer des opérations élémentaires sur des tenseurs de formes différentes, mais compatibles, en étendant virtuellement le plus petit tenseur pour correspondre à la forme du plus grand tenseur.
import tensorflow as tf # Create two tensors a = tf.Variable([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise addition with TF method c1 = tf.add(a, b) # Same as `c1` calculation, but shorter c2 = a + b # Using broadcasting; # Same as `[1, 2, 3] + [3, 3, 3]` c3 = a + 3 # The most efficient one; # Changes the object inplace without creating a new one; # Result is the same as for `c1` and `c2`. a.assign_add(b) print('TF method:\t', c1) print('Plus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Remarque
Pour la méthode en place, l'élément fondamental doit être un type
Variable
mutable plutôt qu'une constante.
Soustraction
Nous avons des analogues de toutes les méthodes pour la soustraction comme pour l'addition :
tf.add()
devienttf.subtract()
;- Le signe plus
+
devient le signe moins-
; .assign_add()
devient.assign_sub()
.
import tensorflow as tf # Create two tensors a = tf.Variable([4, 5, 6]) b = tf.constant([1, 2, 3]) # Perform element-wise substraction c1 = tf.subtract(a, b) c2 = a - b # Using broadcasting; # Same as `[4, 5, 6] - [3, 3, 3]` c3 = a - 3 # Inplace substraction a.assign_sub(b) print('TF method:\t', c1) print('Minus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Multiplication (Élément par élément)
Pour la multiplication, il n'existe pas de méthode sur place puisque la multiplication de matrices résulte intrinsèquement en un nouvel objet. Cependant, d'autres opérations ont leurs équivalents :
tf.add()
correspond àtf.multiply()
;- Le signe plus
+
correspond au signe astérisque*
.
import tensorflow as tf # Create two tensors a = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise multiplication c1 = tf.multiply(a, b) c2 = a * b # Using broadcasting; # Same as `[1, 2, 3] * [3, 3, 3]` c3 = a * 3 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Division
Similaire à la multiplication, mais avec tf.divide()
et le signe /
.
import tensorflow as tf # Create two tensors a = tf.constant([6, 8, 10]) b = tf.constant([2, 4, 5]) # Perform element-wise division c1 = tf.divide(a, b) c2 = a / b # Using broadcasting; # Same as `[6, 8, 10] / [2, 2, 2]` c3 = a / 2 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Diffusion
Diffusion est le terme utilisé pour décrire comment les tenseurs de formes différentes sont automatiquement et implicitement traités lors des opérations arithmétiques afin qu'ils apparaissent comme s'ils avaient la même forme. Cela permet d'effectuer des opérations sur des tenseurs de tailles différentes sans les redimensionner explicitement au préalable.
Swipe to start coding
Étant donné un ensemble de matrices, effectuez les opérations suivantes :
- Addition en place d'une matrice 2x2.
- Soustraction en utilisant la méthode
tf.subtract()
pour une matrice 2x3. - Multiplication par émission d'une matrice 3x2 avec une autre matrice 1x2.
- Division par émission entre deux matrices, l'une de taille 2x3 et l'autre 2x1.
Remarque
Notez le comportement d'émission dans les opérations de multiplication et de division. Dans la multiplication, c'est comme multiplier
[[1, 2], [3, 4], [5, 6]]
avec[[2, 4], [2, 4], [2, 4]]
. Dans la division, c'est comme diviser[[2, 4, 6], [4, 8, 12]]
par[[2, 2, 2], [4, 4, 4]]
.Dans le premier cas, l'émission étend la matrice le long de l'axe 0 (premier paramètre de la forme), tandis que dans le second cas, la matrice est étendue le long de l'axe 1 (deuxième paramètre de la forme). Cela dépend de la forme des matrices.
Solution
Merci pour vos commentaires !
Opérations de Base : Arithmétique
Opérations Arithmétiques
TensorFlow offre de nombreuses opérations arithmétiques pour la manipulation des tenseurs. Ces opérations et bien d'autres dans TensorFlow prennent en charge le broadcasting, ce qui facilite l'exécution d'opérations élément par élément sur des tenseurs de formes différentes.
Addition
Pour l'addition de tenseurs, nous pouvons utiliser les méthodes tf.add()
, .assign_add()
et le signe plus +
. Nous pouvons également utiliser le broadcasting avec le signe plus +
ou avec la méthode tf.add()
.
Le Broadcasting permet d'effectuer des opérations élémentaires sur des tenseurs de formes différentes, mais compatibles, en étendant virtuellement le plus petit tenseur pour correspondre à la forme du plus grand tenseur.
import tensorflow as tf # Create two tensors a = tf.Variable([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise addition with TF method c1 = tf.add(a, b) # Same as `c1` calculation, but shorter c2 = a + b # Using broadcasting; # Same as `[1, 2, 3] + [3, 3, 3]` c3 = a + 3 # The most efficient one; # Changes the object inplace without creating a new one; # Result is the same as for `c1` and `c2`. a.assign_add(b) print('TF method:\t', c1) print('Plus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Remarque
Pour la méthode en place, l'élément fondamental doit être un type
Variable
mutable plutôt qu'une constante.
Soustraction
Nous avons des analogues de toutes les méthodes pour la soustraction comme pour l'addition :
tf.add()
devienttf.subtract()
;- Le signe plus
+
devient le signe moins-
; .assign_add()
devient.assign_sub()
.
import tensorflow as tf # Create two tensors a = tf.Variable([4, 5, 6]) b = tf.constant([1, 2, 3]) # Perform element-wise substraction c1 = tf.subtract(a, b) c2 = a - b # Using broadcasting; # Same as `[4, 5, 6] - [3, 3, 3]` c3 = a - 3 # Inplace substraction a.assign_sub(b) print('TF method:\t', c1) print('Minus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Multiplication (Élément par élément)
Pour la multiplication, il n'existe pas de méthode sur place puisque la multiplication de matrices résulte intrinsèquement en un nouvel objet. Cependant, d'autres opérations ont leurs équivalents :
tf.add()
correspond àtf.multiply()
;- Le signe plus
+
correspond au signe astérisque*
.
import tensorflow as tf # Create two tensors a = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise multiplication c1 = tf.multiply(a, b) c2 = a * b # Using broadcasting; # Same as `[1, 2, 3] * [3, 3, 3]` c3 = a * 3 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Division
Similaire à la multiplication, mais avec tf.divide()
et le signe /
.
import tensorflow as tf # Create two tensors a = tf.constant([6, 8, 10]) b = tf.constant([2, 4, 5]) # Perform element-wise division c1 = tf.divide(a, b) c2 = a / b # Using broadcasting; # Same as `[6, 8, 10] / [2, 2, 2]` c3 = a / 2 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Diffusion
Diffusion est le terme utilisé pour décrire comment les tenseurs de formes différentes sont automatiquement et implicitement traités lors des opérations arithmétiques afin qu'ils apparaissent comme s'ils avaient la même forme. Cela permet d'effectuer des opérations sur des tenseurs de tailles différentes sans les redimensionner explicitement au préalable.
Swipe to start coding
Étant donné un ensemble de matrices, effectuez les opérations suivantes :
- Addition en place d'une matrice 2x2.
- Soustraction en utilisant la méthode
tf.subtract()
pour une matrice 2x3. - Multiplication par émission d'une matrice 3x2 avec une autre matrice 1x2.
- Division par émission entre deux matrices, l'une de taille 2x3 et l'autre 2x1.
Remarque
Notez le comportement d'émission dans les opérations de multiplication et de division. Dans la multiplication, c'est comme multiplier
[[1, 2], [3, 4], [5, 6]]
avec[[2, 4], [2, 4], [2, 4]]
. Dans la division, c'est comme diviser[[2, 4, 6], [4, 8, 12]]
par[[2, 2, 2], [4, 4, 4]]
.Dans le premier cas, l'émission étend la matrice le long de l'axe 0 (premier paramètre de la forme), tandis que dans le second cas, la matrice est étendue le long de l'axe 1 (deuxième paramètre de la forme). Cela dépend de la forme des matrices.
Solution
Merci pour vos commentaires !