Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Opérations de Base : Algèbre Linéaire | Tenseurs
Introduction à TensorFlow

bookOpérations de Base : Algèbre Linéaire

Opérations d’algèbre linéaire

TensorFlow propose un ensemble de fonctions dédiées aux opérations d’algèbre linéaire, facilitant la manipulation des matrices.

Multiplication de matrices

Petit rappel sur le fonctionnement de la multiplication de matrices.

Il existe deux approches équivalentes pour la multiplication de matrices :

  • La fonction tf.matmul() ;
  • L’utilisation de l’opérateur @.
1234567891011121314
import tensorflow as tf # Create two matrices matrix1 = tf.constant([[1, 2], [3, 4], [2, 1]]) matrix2 = tf.constant([[2, 0, 2, 5], [2, 2, 1, 3]]) # Multiply the matrices product1 = tf.matmul(matrix1, matrix2) product2 = matrix1 @ matrix2 # Display tensors print(product1) print('-' * 50) print(product2)
copy
Note
Remarque

La multiplication de matrices de taille 3x2 et 2x4 donne une matrice de 3x4.

Inversion de matrice

L'inverse d'une matrice peut être obtenue à l'aide de la fonction tf.linalg.inv(). Vérifions également une propriété fondamentale de la matrice inverse.

123456789101112131415
import tensorflow as tf # Create 2x2 matrix matrix = tf.constant([[1., 2.], [3., 4.]]) # Compute the inverse of a matrix inverse_mat = tf.linalg.inv(matrix) # Check the result identity = matrix @ inverse_mat # Display tensors print(inverse_mat) print('-' * 50) print(identity)
copy
Note
Remarque

La multiplication d'une matrice par son inverse doit donner une matrice identité, qui possède des uns sur sa diagonale principale et des zéros ailleurs. De plus, le module tf.linalg propose un large éventail de fonctions d’algèbre linéaire. Pour plus de détails ou des opérations avancées, consulter la documentation officielle.

Transposée

La fonction tf.transpose() permet d'obtenir une matrice transposée.

123456789101112
import tensorflow as tf # Create a matrix 3x2 matrix = tf.constant([[1, 2], [3, 4], [2, 1]]) # Get the transpose of a matrix transposed = tf.transpose(matrix) # Display tensors print(matrix) print('-' * 40) print(transposed)
copy

Produit scalaire

Le produit scalaire peut être obtenu à l'aide de la fonction tf.tensordot(). En configurant l'argument axes, il est possible de choisir selon quels axes calculer le produit scalaire. Par exemple, pour deux vecteurs, en définissant axes=1, on obtient le produit scalaire classique entre vecteurs. Mais en utilisant axes=0, on obtient une matrice diffusée le long de l'axe 0 :

1234567891011121314
import tensorflow as tf # Create two vectors matrix1 = tf.constant([1, 2, 3, 4]) matrix2 = tf.constant([2, 0, 2, 5]) # Compute the dot product of two tensors dot_product_axes1 = tf.tensordot(matrix1, matrix2, axes=1) dot_product_axes0 = tf.tensordot(matrix1, matrix2, axes=0) # Display tensors print(dot_product_axes1) print('-' * 40) print(dot_product_axes0)
copy
Note
Remarque

Si vous prenez deux matrices avec des dimensions appropriées (NxM @ MxK, où NxM représente les dimensions de la première matrice et MxK celles de la seconde), et que vous calculez le produit scalaire selon axes=1, cela réalise essentiellement une multiplication de matrices.

Tâche

Swipe to start coding

Contexte

Un système d'équations linéaires peut être représenté sous forme matricielle à l'aide de l'équation :

AX = B

Où :

  • A est une matrice de coefficients ;
  • X est une matrice colonne des variables ;
  • B est une matrice colonne représentant les valeurs du côté droit des équations.

La solution de ce système peut être trouvée à l'aide de la formule :

X = A^-1 B

A^-1 est l'inverse de la matrice A.

Objectif

Étant donné un système d'équations linéaires, utiliser TensorFlow pour le résoudre. Le système d'équations linéaires suivant est donné :

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Représenter le système d'équations sous forme matricielle (séparer en matrices A et B).
  2. À l'aide de TensorFlow, trouver l'inverse de la matrice A.
  3. Multiplier l'inverse de la matrice A par la matrice B pour obtenir la matrice solution X, qui contient les valeurs de x, y et z.

Remarque

Le découpage (slicing) dans TensorFlow fonctionne de manière similaire à NumPy. Ainsi, X[:, 0] permet de récupérer tous les éléments de la colonne à l'indice 0. Nous aborderons le découpage plus tard dans le cours.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 9
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 the difference between tf.matmul() and the @ operator?

How do I interpret the output of the matrix inversion example?

Can you show more examples of using tf.tensordot() with different axes?

close

Awesome!

Completion rate improved to 5.56

bookOpérations de Base : Algèbre Linéaire

Glissez pour afficher le menu

Opérations d’algèbre linéaire

TensorFlow propose un ensemble de fonctions dédiées aux opérations d’algèbre linéaire, facilitant la manipulation des matrices.

Multiplication de matrices

Petit rappel sur le fonctionnement de la multiplication de matrices.

Il existe deux approches équivalentes pour la multiplication de matrices :

  • La fonction tf.matmul() ;
  • L’utilisation de l’opérateur @.
1234567891011121314
import tensorflow as tf # Create two matrices matrix1 = tf.constant([[1, 2], [3, 4], [2, 1]]) matrix2 = tf.constant([[2, 0, 2, 5], [2, 2, 1, 3]]) # Multiply the matrices product1 = tf.matmul(matrix1, matrix2) product2 = matrix1 @ matrix2 # Display tensors print(product1) print('-' * 50) print(product2)
copy
Note
Remarque

La multiplication de matrices de taille 3x2 et 2x4 donne une matrice de 3x4.

Inversion de matrice

L'inverse d'une matrice peut être obtenue à l'aide de la fonction tf.linalg.inv(). Vérifions également une propriété fondamentale de la matrice inverse.

123456789101112131415
import tensorflow as tf # Create 2x2 matrix matrix = tf.constant([[1., 2.], [3., 4.]]) # Compute the inverse of a matrix inverse_mat = tf.linalg.inv(matrix) # Check the result identity = matrix @ inverse_mat # Display tensors print(inverse_mat) print('-' * 50) print(identity)
copy
Note
Remarque

La multiplication d'une matrice par son inverse doit donner une matrice identité, qui possède des uns sur sa diagonale principale et des zéros ailleurs. De plus, le module tf.linalg propose un large éventail de fonctions d’algèbre linéaire. Pour plus de détails ou des opérations avancées, consulter la documentation officielle.

Transposée

La fonction tf.transpose() permet d'obtenir une matrice transposée.

123456789101112
import tensorflow as tf # Create a matrix 3x2 matrix = tf.constant([[1, 2], [3, 4], [2, 1]]) # Get the transpose of a matrix transposed = tf.transpose(matrix) # Display tensors print(matrix) print('-' * 40) print(transposed)
copy

Produit scalaire

Le produit scalaire peut être obtenu à l'aide de la fonction tf.tensordot(). En configurant l'argument axes, il est possible de choisir selon quels axes calculer le produit scalaire. Par exemple, pour deux vecteurs, en définissant axes=1, on obtient le produit scalaire classique entre vecteurs. Mais en utilisant axes=0, on obtient une matrice diffusée le long de l'axe 0 :

1234567891011121314
import tensorflow as tf # Create two vectors matrix1 = tf.constant([1, 2, 3, 4]) matrix2 = tf.constant([2, 0, 2, 5]) # Compute the dot product of two tensors dot_product_axes1 = tf.tensordot(matrix1, matrix2, axes=1) dot_product_axes0 = tf.tensordot(matrix1, matrix2, axes=0) # Display tensors print(dot_product_axes1) print('-' * 40) print(dot_product_axes0)
copy
Note
Remarque

Si vous prenez deux matrices avec des dimensions appropriées (NxM @ MxK, où NxM représente les dimensions de la première matrice et MxK celles de la seconde), et que vous calculez le produit scalaire selon axes=1, cela réalise essentiellement une multiplication de matrices.

Tâche

Swipe to start coding

Contexte

Un système d'équations linéaires peut être représenté sous forme matricielle à l'aide de l'équation :

AX = B

Où :

  • A est une matrice de coefficients ;
  • X est une matrice colonne des variables ;
  • B est une matrice colonne représentant les valeurs du côté droit des équations.

La solution de ce système peut être trouvée à l'aide de la formule :

X = A^-1 B

A^-1 est l'inverse de la matrice A.

Objectif

Étant donné un système d'équations linéaires, utiliser TensorFlow pour le résoudre. Le système d'équations linéaires suivant est donné :

  1. 2x + 3y - z = 1.
  2. 4x + y + 2z = 2.
  3. -x + 2y + 3z = 3.
Dot Product
  1. Représenter le système d'équations sous forme matricielle (séparer en matrices A et B).
  2. À l'aide de TensorFlow, trouver l'inverse de la matrice A.
  3. Multiplier l'inverse de la matrice A par la matrice B pour obtenir la matrice solution X, qui contient les valeurs de x, y et z.

Remarque

Le découpage (slicing) dans TensorFlow fonctionne de manière similaire à NumPy. Ainsi, X[:, 0] permet de récupérer tous les éléments de la colonne à l'indice 0. Nous aborderons le découpage plus tard dans le cours.

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 9
single

single

some-alt