PyTorch - Terminologie
In questo capitolo discuteremo alcuni dei termini più comunemente usati in PyTorch.
PyTorch NumPy
Un tensore PyTorch è identico a un array NumPy. Un tensore è un array n-dimensionale e rispetto a PyTorch fornisce molte funzioni per operare su questi tensori.
I tensori PyTorch di solito utilizzano le GPU per accelerare i loro calcoli numerici. Questi tensori creati in PyTorch possono essere usati per adattare una rete a due strati a dati casuali. L'utente può implementare manualmente i passaggi avanti e indietro attraverso la rete.
Variabili e Autograd
Quando si utilizza autograd, il passaggio in avanti della rete definirà un file computational graph - i nodi nel grafico saranno Tensori e gli archi saranno funzioni che producono Tensori di output dai Tensori di input.
I tensori PyTorch possono essere creati come oggetti variabili in cui una variabile rappresenta un nodo nel grafo computazionale.
Grafici dinamici
I grafici statici sono utili perché l'utente può ottimizzare il grafico in anticipo. Se i programmatori stanno riutilizzando lo stesso grafico più e più volte, questa ottimizzazione iniziale potenzialmente costosa può essere mantenuta mentre lo stesso grafico viene rieseguito più e più volte.
La principale differenza tra loro è che i grafici computazionali di Tensor Flow sono statici e PyTorch utilizza grafici computazionali dinamici.
Pacchetto Optim
Il pacchetto optim in PyTorch astrae l'idea di un algoritmo di ottimizzazione che viene implementato in molti modi e fornisce illustrazioni di algoritmi di ottimizzazione comunemente usati. Questo può essere chiamato all'interno dell'istruzione import.
Multiprocessing
Il multiprocessing supporta le stesse operazioni, in modo che tutti i tensori funzionino su più processori. La coda avrà i propri dati spostati nella memoria condivisa e invierà solo un handle a un altro processo.