Tenseurs

Un Tenseur est une Matrice à N dimensions :

  • Un scalaire est un tenseur de dimension 0
  • Un vecteur est un tenseur unidimensionnel
  • Une matrice est un tenseur à 2 dimensions

Un tenseur est une généralisation de vecteurs et de matrices à des dimensions supérieures.

ScalaireVecteur(s)
1
1
2
3
 
1 2 3

MatriceTenseur
1 2 3
4 5 6
 
1 2 3
4 5 6
 
4 5 6
1 2 3
 

Rangs de tenseur

Le nombre de directions qu'un tenseur peut avoir dans un espace à N dimensions est appelé le Rang du tenseur.

Le rang est noté R .

Un scalaire est un nombre unique. R = 0 .

  • Il a 0 axes
  • Il a un rang de 0
  • C'est un tenseur de dimension 0

Un vecteur est un tableau de nombres. R = 1 .

  • Il a 1 axe
  • Il a un rang de 1
  • C'est un tenseur unidimensionnel

Une matrice est un tableau à 2 dimensions. R = 2 .

  • Il a 2 axes
  • Il a un rang de 2
  • C'est un Tenseur à 2 dimensions

Tenseurs réels

Techniquement, tout ce qui précède sont des tenseurs, mais quand on parle de tenseurs, on parle généralement de matrices de dimension supérieure à 2 ( R > 2 ).


Algèbre linéaire en JavaScript

En algèbre linéaire, l'objet mathématique le plus simple est le Scalaire :

const scalar = 1;

Un autre objet mathématique simple est le Array :

const array = [ 1, 2, 3 ];

Les matrices sont des tableaux à 2 dimensions :

const matrix = [ [1,2],[3,4],[5,6] ];

Les vecteurs peuvent être écrits sous forme de matrices avec une seule colonne :

const vector = [ [1],[2],[3] ];

Les vecteurs peuvent également être écrits sous forme de tableaux :

const vector = [ 1, 2, 3 ];

Les tenseurs sont des tableaux à N dimensions :

const tensor = [ [1,2,3],[4,5,6],[7,8,9] ];

Opérations de tenseur JavaScript

La programmation d'opérations tensorielles en JavaScript peut facilement devenir un spaghetti de boucles.

L'utilisation d'une bibliothèque JavScript vous évitera bien des maux de tête.

L'une des bibliothèques les plus courantes à utiliser pour les opérations tensorielles s'appelle tensorflow.js .

Ajout de tenseur

const tensorA = tf.tensor([[1, 2], [3, 4], [5, 6]]);
const tensorB = tf.tensor([[1,-1], [2,-2], [3,-3]]);

// Tensor Addition
const tensorAdd = tensorA.add(tensorB);

// Result [ [2, 1], [5, 2], [8, 3] ]

Soustraction du tenseur

const tensorA = tf.tensor([[1, 2], [3, 4], [5, 6]]);
const tensorB = tf.tensor([[1,-1], [2,-2], [3,-3]]);

// Tensor Subtraction
const tensorSub = tensorA.sub(tensorB);

// Result [ [0, 3], [1, 6], [2, 9] ]

En savoir plus sur Tensorflow...