PyTorch - Introduzione
PyTorch è definita come una libreria di machine learning open source per Python. Viene utilizzato per applicazioni come l'elaborazione del linguaggio naturale. È inizialmente sviluppato dal gruppo di ricerca sull'intelligenza artificiale di Facebook e dal software Pyro di Uber per la programmazione probabilistica che è costruito su di esso.
In origine, PyTorch è stato sviluppato da Hugh Perkins come wrapper Python per LusJIT basato sul framework Torch. Esistono due varianti di PyTorch.
PyTorch riprogetta e implementa Torch in Python condividendo le stesse librerie C di base per il codice di backend. Gli sviluppatori di PyTorch hanno ottimizzato questo codice back-end per eseguire Python in modo efficiente. Hanno anche mantenuto l'accelerazione hardware basata su GPU e le funzionalità di estensibilità che hanno reso Torch basato su Lua.
Caratteristiche
Le caratteristiche principali di PyTorch sono menzionate di seguito:
Easy Interface- PyTorch offre API facili da usare; quindi è considerato molto semplice da usare e gira su Python. L'esecuzione del codice in questo framework è abbastanza semplice.
Python usage- Questa libreria è considerata Pythonic che si integra perfettamente con lo stack di data science di Python. Pertanto, può sfruttare tutti i servizi e le funzionalità offerti dall'ambiente Python.
Computational graphs- PyTorch fornisce un'eccellente piattaforma che offre grafici computazionali dinamici. Pertanto un utente può modificarli durante il runtime. Ciò è molto utile quando uno sviluppatore non ha idea di quanta memoria è necessaria per creare un modello di rete neurale.
PyTorch è noto per avere tre livelli di astrazione come indicato di seguito:
Tensore: matrice n-dimensionale imperativa che gira su GPU.
Variabile - Nodo nel grafico computazionale. Memorizza dati e gradiente.
Modulo: livello di rete neurale che memorizzerà pesi di stato o apprendibili.
Vantaggi di PyTorch
I seguenti sono i vantaggi di PyTorch:
È facile eseguire il debug e comprendere il codice.
Include molti strati come Torch.
Include molte funzioni di perdita.
Può essere considerato come un'estensione NumPy alle GPU.
Consente di costruire reti la cui struttura dipende dal calcolo stesso.
TensorFlow contro PyTorch
Esamineremo le principali differenze tra TensorFlow e PyTorch di seguito:
PyTorch | TensorFlow |
---|---|
PyTorch è strettamente correlato al framework Torch basato su lua che viene utilizzato attivamente in Facebook. |
TensorFlow è sviluppato da Google Brain e utilizzato attivamente da Google. |
PyTorch è relativamente nuovo rispetto ad altre tecnologie competitive. |
TensorFlow non è nuovo ed è considerato uno strumento da portare via da molti ricercatori e professionisti del settore. |
PyTorch include tutto in modo imperativo e dinamico. |
TensorFlow include grafici statici e dinamici come una combinazione. |
Il grafico di calcolo in PyTorch viene definito durante il runtime. |
TensorFlow non include alcuna opzione di runtime. |
PyTorch include la distribuzione in primo piano per framework mobili e incorporati. |
TensorFlow funziona meglio per i framework incorporati. |