Tenseur sparse
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. 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)
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].