Tensore sparso
Python offre una libreria integrata chiamata numpy per gestire gli array multidimensionali. L'organizzazione e l'uso di questa libreria è un requisito primario per lo sviluppo della libreria pytensor. Sptensor è una classe che rappresenta il tensore sparso. Un tensore sparso è un set di dati in cui la maggior parte delle voci è zero, come avviene ad esempio in una matrice diagonale di grandi dimensioni (che ha molti elementi nulli). Non memorizza tutti i valori dell'oggetto tensore, ma solo i valori non nulli e le loro coordinate corrispondenti. I formati di memorizzazione del tensore sparso ci permettono di memorizzare solo i valori diversi da zero, riducendo così i requisiti di memorizzazione ed eliminando inutili calcoli silenziosi che coinvolgono i valori nulli. Ecco i suoi attributi principali:
- vals (numpy.ndarray). Un array monodimensionale di valori diversi da zero del tensore sparso.
- subs (numpy.ndarray). Un array bidimensionale di coordinate dei valori in vals.
- shape(tupla).
La forma del tensore sparso:
- func(binary operator). Questa funzione viene utilizzata per costruire il tensore sparso come un accumulatore.
Inoltre, le sue funzioni principali sono:
- __init__(self, subs, vals, shape = None, func=sum.__call__). Costruttore per la classe sptensor. subs e vals (numpy.ndarray) o (list) sono coordinate e valori dello sptensor.
- tondarray(self). Questa funzione restituisce un oggetto numpy. ndarray che ha gli stessi valori dello sptensor.
- permute(self, order). L'applicazione di questa funzione restituisce l'oggetto sptensor che viene permutato in base all'ordine (list) dato.
- ipermute(self, order). Restituisce l'oggetto sptensor che è permutato dall'inverso dell'ordine (list) dato.
- copy(self). Restituisce l'oggetto sptensor copiato dello sptensor.
- totensor(self). Restituisce l'oggetto tensore che ha gli stessi valori dello sptensor
- nnz(self). Restituisce il numero di elementi diversi da zero nello sptensor.
- ndims(self). Restituisce il numero di dimensioni del tensore.
- dimsize(self, ind).
- Restituisce la dimensione della dimensione specificata, come shape[ind].