Tensor esparso
O Python oferece uma biblioteca integrada chamada Numpy para manipular matrizes multidimensionais. A organização e o uso dessa biblioteca é um requisito primário para o desenvolvimento da biblioteca pytensor. Sptensor é uma classe que representa o tensor esparso. Tensor esparso é um dataset no qual a maioria das entradas são zero. Um exemplo seria uma grande matriz diagonal (que tem muitos elementos zero). Ele não armazena os valores inteiros do objeto tensor, mas armazena os valores diferentes de zero e as coordenadas correspondentes deles. Os formatos de armazenamento do tensor de análise permitem armazenar somente valores diferentes de zero, reduzindo os requisitos de armazenamento e eliminando cálculos silenciosos desnecessários que envolvem valores zero. Os principais atributos são:
- vals (numpy.ndarray) Uma matriz unidimensional de valores diferentes de zero do tensor esparso.
- subs (numpy.ndarray) Uma matriz bidimensional de coordenadas dos valores em vals.
- shape(tuple)
A forma do tensor esparso.
- func(binary operator) Esta função é usada para construir o tensor esparso como um acumulador.
Além disso, suas principais funções são:
- __init__(self, subs, vals, shape = None, func=sum.__call__) Construtor para a classe sptensor. subs e vals (numpy.ndarray) ou (lista) são coordenadas e valores do sptensor.
- tondarray(self) Esta função retorna um objeto numpy. ndarray que tem os mesmos valores do sptensor.
- permute(self, order) Ao aplicar esta função, ela retornará o objeto sptensor permutado pela ordem fornecida (list).
- ipermute(self, order) Retorna o objeto sptensor permutado pelo inverso da ordem fornecida (list).
- copy(self) Retorna o objeto sptensor copiado do sptensor.
- totensor(self) Retorna o objeto tensor que tem os mesmos valores do sptensor.
- nnz(self) Retorna o número de elementos diferentes de zero no sptensor.
- ndims(self) Retorna o número de dimensões do tensor.
- dimsize(self, ind)
- Retorna o tamanho da dimensão especificada. Igual à shape[ind].