Tensor disperso
Python ofrece una biblioteca incorporada llamada numpy para manipular arreglos multidimensionales. La organización y el uso de esta biblioteca son un requisito principal para desarrollar la biblioteca pytensor.
Sptensor es una clase que representa el tensor disperso. Un tensor disperso es un conjunto de datos en el que la mayoría de las entradas son cero; un ejemplo de ello sería una matriz diagonal grande. (que tiene muchos elementos cero). No almacena los valores completos del objeto tensor, sino que almacena los valores no nulos y sus coordenadas correspondientes. Los formatos de almacenamiento de tensores dispersos nos permiten almacenar solo los valores distintos de cero, lo que reduce los requisitos de almacenamiento y elimina los cálculos silenciosos innecesarios que involucran valores cero. Estos son sus atributos principales:
- vals (numpy.ndarray) Un arreglo unidimensional de valores distintos de cero del tensor disperso.
- subs (numpy.ndarray) Un array bidimensional de coordenadas de los valores en vals.
- shape(tuple)
La forma del tensor disperso.
- func(operador binario) Esta función se utiliza para construir el tensor disperso como un acumulador.
Además, sus funciones principales son:
- __init__(self, subs, vals, shape = None, func=sum.__call__) Constructor para la clase sptensor. subs y vals (numpy.ndarray) o (list) son las coordenadas y los valores del sptensor.
- tondarray(self) Esta función devuelve un numpy. objeto ndarray que tiene los mismos valores que el sptensor.
- permute(self, order) Al aplicar esta función, se devolverá el objeto sptensor permutado según el orden (lista) especificado.
- ipermute(self, order) Devuelve el objeto sptensor que se permuta por la inversa del orden (lista) especificado.
- copy(self) Devuelve el objeto sptensor copiado del sptensor.
- totensor(self) Devuelve el objeto tensor que tiene los mismos valores que el sptensor.
- nnz(self) Devuelve la cantidad de elementos distintos de cero en el sptensor.
- ndims(self) Devuelve la cantidad de dimensiones del tensor.
- dimsize(self, ind)
- Devuelve el tamaño de la dimensión especificada. Igual que shape[ind].