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.