Revenir au contenu principal

Qu'est-ce qu'un tenseur creux ?

Un tenseur économe en mémoire qui ne stocke que les valeurs non nulles avec leurs indices et leur forme, optimisant ainsi le stockage et le calcul pour les ensembles de données épars.

10 Personas Data Science

Summary

  • Encode les tenseurs à l'aide de trois composantes : un tableau d'indices pour les positions non nulles, un tableau de valeurs pour les données proprement dites et une fonction dense_shape définissant les dimensions totales.
  • Réduit considérablement l'empreinte mémoire pour les données telles que les plongements lexicaux, les matrices d'interaction utilisateur-élément et les nuages ​​de points 3D dont la sparsité dépasse 90 %.
  • Prend en charge des opérations spécialisées comme la multiplication et la convolution de matrices creuses. Cependant, certaines opérations peuvent densifier les données et entraîner des pics de mémoire si elles ne sont pas gérées avec précaution.

Python fournit une bibliothèque intégrée, numpy, qui permet de manipuler des tableaux multidimensionnels. Cette bibliothèque doit impérativement être organisée et utilisée pour développer la bibliothèque pytensor. Tenseur sparse Sptensor est une classe qui représente le tenseur sparse. Un tenseur sparse est un dataset dont la plupart des entrées ont la valeur zéro, comme dans une grande matrice diagonale (qui comprend de nombreux éléments nuls). Elle ne stocke pas les valeurs complètes de l'objet tenseur, mais les valeurs non nulles et leurs coordonnées. Les formats de stockage des tenseurs sparse nous permettent de stocker uniquement les valeurs non nulles, et donc de diminuer les besoins en stockage, tout en réduisant les calculs silencieux inutiles impliquant des valeurs nulles. Voici ses principaux attributs :

  • vals (numpy.ndarray) Tableau à 1 dimension de valeurs non nulles du tenseur sparse.
  • subs (numpy.ndarray) Tableau à 2 dimensions des coordonnées des valeurs de vals.
  • shape(tuple)
UN LEADER 5X

Gartner® : Databricks, leader des bases de données cloud

Forme du tenseur sparse.

  • func(binary operator) Cette fonction permet de construire le tenseur sparse en tant qu'accumulateur.

Ensuite, voici ses principales fonctions :

  • __init__(self, subs, vals, shape = None, func=sum.__call__) Constructeur de la classe sptensor. subs et vals (numpy.ndarray) ou (list) sont les coordonnées et les valeurs du sptensor.
  • tondarray(self) Cette fonction renvoie un numpy, un objet ndarray qui a les mêmes valeurs que le sptensor.
  • permute(self, order) Cette fonction renvoie l'objet sptensor permuté selon l'ordre indiqué (list).
  • ipermute(self, order) Renvoie l'objet sptensor permuté selon l'inverse de l'ordre indiqué (list).
  • copy(self) Renvoie l'objet sptensor copié du sptensor.
  • totensor(self) Renvoie un objet tensor ayant les mêmes valeurs que le sptensor.
  • nnz(self) Renvoie le nombre d'éléments non nuls dans le sptensor.
  • ndims(self) Renvoie le nombre de dimensions du tenseur.
  • dimsize(self, ind)
  • Renvoie la taille de la dimension spécifiée. Identique à shape[ind].

Ressources complémentaires

Ne manquez jamais un article Databricks

Abonnez-vous à notre blog et recevez les derniers articles dans votre boîte mail.