CHE COS’E’ PYTORCH E A COSA SERVE

PyTorch cos'è e a che cosa serve

PyTorch consente una sperimentazione rapida e flessibile, oltre ad una produzione efficiente, attraverso un front-end intuitivo ed un ecosistema di strumenti e librerie.

PyTorch è un framework completo per la creazione di modelli di deep learning, un tipo di machine learning utilizzato in applicazioni come il riconoscimento delle immagini e l’elaborazione del linguaggio.

Scritto in Python, è relativamente facile da apprendere grazie ad un’interfaccia API intuitiva. La piattaforma si distingue per l’uso delle GPU e per la differenziazione automatica in modalità inversa che permette di modificare i grafi di calcolo.

Sviluppato da Meta (ex Facebook) AI Research fa ora parte dalla Linux Foundation, PyTorch è stato creato per trasferire una libreria di training automatico nell’ambiente Python risolvendo le problematiche d’integrazione del deep learning di Keras e le limitazioni iniziali dell’API di TensorFlow.

Le versioni recenti supportano la visualizzazione di TensorBoard di Google, la compilazione just-in-time ed ONNX  (Open Neural Network Exchange), che consente agli sviluppatori di adattarsi ai framework in base alle loro necessità.

Il framework combina le librerie backend efficienti, accelerate da GPU, di Torch con un frontend Python intuitivo che si concentra sulla prototipazione rapida, codice leggibile e compatibilità con numerosi modelli di deep learning.

La relativa facilità lo rende uno dei tool preferiti dai ricercatori ed ha una comunità molto collaborativa. PyTorch è alla base di alcuni modelli di training per risolvere il mistero dei Papiri di Ercolano, un’impresa che entrerà nella storia per la difficoltà di lettura del materiale carbonizzato.

Quali vantaggi offre?

  • È scritto in Python ed integrato con popolari librerie come NumPy, SciPy e Cython per compilare Python in C e migliorarne le performance.
  • E’ compatibile con le più diffuse piattaforme Cloud.
  • Il linguaggio, chiamato TorchScript, è facile e flessibile soprattutto con la modalità di esecuzione ad avvio veloce in cui le operazioni sono eseguite immediatamente così come vengono chiamate da Python.
  • Il lavoro computazionale può essere distribuito tra più core CPU e GPU per elaborazioni parallele, nonché l’addestramento su più macchine.
  • PyTorch supporta grafi computazionali dinamici, consentendo di modificare il comportamento della rete in fase di esecuzione. Un notevole vantaggio rispetto alla maggior parte dei framework di machine learning che richiedono la definizione di reti neurali come oggetti statici prima del runtime.
  • L’Hub è un repository di modelli preaddestrati che possono essere richiamati, in alcuni casi con una sola riga di codice.
  • È possibile creare nuovi componenti personalizzati come sottoclassi. I parametri possono essere facilmente condivisi con toolkit esterni come TensorBoard e le librerie possono essere importate ed utilizzate in linea.
  • Un set di API estende le funzionalità principali.

I Graphs (grafi) sono strutture dati costituite da vertici o nodi e collegamenti detti spigoli o archi (cammini).

Grafo non-orientato

I framework per il deep learning si basano sul concetto di grafo in cui le reti neurali sono rappresentate come una struttura grafica di calcoli. PyTorch conserva un registro dei tensori e delle operazioni eseguite in un grafico aciclico diretto (DAG) costituito da oggetti Funzione, dove i nodi sono operazioni come somme o moltiplicazioni ed i vertici sono il flusso d’informazioni fra le operazioni.

PyTorch Esempio di come PyTorch crea un grafo computazionale “aumentato”.

L’obiettivo del deep learning è ottimizzare questi parametri costituiti da pesi e bias che in PyTorch sono memorizzati in tensor (tensori).

Esempi di utilizzo

Elaborazione del linguaggio naturale (NLP): da Siri a Google Traslate. La maggior parte di questi strumenti impiega un tipo di modello chiamato rete neurale ricorrente (RNN) per elaborare una sequenza di parole o caratteri. Molti linguisti pensano che il linguaggio sia compreso meglio come un albero gerarchico di frasi. PyTorch semplifica questi ed altri modelli complessi di elaborazione del linguaggio naturale.

Trovate maggiori risorse su PyTorch.org.

 

RIPRODUZIONE RISERVATA – © 2023 SHOWTECHIES – Quando la Tecnologia è spettacolo™

Immagini: PyTorch.org

Commenta per primo

Lascia un commento

L'indirizzo email non sarà pubblicato.


*