La continuità Tensorflow e PyTorch

Tensorflow septmber update social 1

Buongiorno cari lettori, oggi vi andremo a parlare di TensorFlow.

TensorFlow è, ad oggi, il framework di deep learning più diffuso. Riceve quasi il doppio delle domande su StackOverflow ogni mese rispetto a PyTorch. D’altra parte, TensorFlow non è cresciuto dal 2018 circa. PyTorch invece ha guadagnato costantemente. Kera invece è stato rilasciato più o meno nello stesso periodo di TensorFlow, ma negli ultimi anni è crollato. La breve spiegazione di ciò è che Keras è un po’ semplicistico e troppo lento per le esigenze della maggior parte degli utenti.

Il traffico StackOverflow per TensorFlow potrebbe non diminuire, ma sta comunque diminuendo, e ci sono ragioni per credere che questo declino diventerà più pronunciato nei prossimi anni, in particolare nel mondo di Python .

Sviluppato da Google, TensorFlow potrebbe essere stato uno dei primi framework a presentarsi alla festa del deep learning alla fine del 2015. Tuttavia, la prima versione era piuttosto complicata da usare. Ecco perché Meta ha iniziato a sviluppare PyTorch come mezzo per offrire praticamente le stesse funzionalità di TensorFlow, ma rendendolo più facile da usare.

Le persone dietro TensorFlow ne hanno presto preso atto e hanno adottato molte delle funzionalità più popolari di PyTorch in TensorFlow 2.0. Una buona regola empirica è che puoi fare tutto ciò che fa PyTorch in TensorFlow. Ti ci vorrà solo il doppio dello sforzo per scrivere il codice.

PyTorch ha più modelli disponibili

Molte aziende e istituzioni accademiche non dispongono dell’enorme potenza di calcolo necessaria per costruire modelli di grandi dimensioni. Con HuggingFace , gli ingegneri devono utilizzare modelli di grandi dimensioni, addestrati e ottimizzati e incorporarli nelle loro pipeline con poche righe di codice. Tuttavia, uno sbalorditivo 85% di questi modelli può essere utilizzato solo con PyTorch. Solo l’8% circa dei modelli HuggingFace è esclusivo di TensorFlow. Il resto è disponibile per entrambi i framework.

L’ecosistema di PyTorch

I framework software contano solo nella misura in cui sono circondati da un ecosistema. Sia PyTorch che TensorFlow hanno ecosistemi abbastanza sviluppati, inclusi repository per modelli addestrati diversi da HuggingFace, sistemi di gestione dei dati, meccanismi di prevenzione dei guasti e altro ancora.

Vale la pena affermare che, fin d’ora, TensorFlow ha un ecosistema leggermente più sviluppato rispetto a PyTorch. Tuttavia, tieni presente che PyTorch è stato pubblicato più recentemente rispetto TensorFlow.

TensorFlow ha la migliore infrastruttura di distribuzione

Per quanto ingombrante possa essere il codice di TensorFlow, una volta scritto è molto più facile da implementare rispetto a PyTorch. Strumenti come TensorFlow Serving e TensorFlow Lite rendono la distribuzione su cloud, server, dispositivi mobili e IoT in un batter d’occhio.

PyTorch, d’altra parte, è stato notoriamente lento nel rilasciare strumenti di distribuzione. Detto questo, negli ultimi tempi ha colmato il divario con TensorFlow abbastanza rapidamente.

È difficile prevedere in questo momento, ma è del tutto possibile che PyTorch possa eguagliare o addirittura superare l’infrastruttura di distribuzione di TensorFlow negli anni a venire.

La ragione principale della popolarità di PyTorch è causato dal fatto che molte persone usano Python. Ma Python non è l’unico linguaggio disponibile per l’apprendimento automatico.  Al giorno d’oggi, si può usare TensorFlow con JavaScript, Java e C++. La community sta inoltre iniziando a sviluppare il supporto per altri linguaggi come Julia, Rust, Scala e Haskell, tra gli altri. PyTorch, d’altra parte, è molto incentrato su Python, esiste un’API C++ , ma non c’è la metà del supporto per altri linguaggi offerto da TensorFlow.

È abbastanza concepibile che PyTorch supererà TensorFlow riferendosi agli sviluppatpri che usano Python. D’altra parte, TensorFlow, con il suo impressionante ecosistema, le funzionalità di implementazione e il supporto per altri linguaggi, rimarrà un framework importante nel deep learning.