MXNet può resistere a TensorFlow e PyTorch?
 
“MXNet, nato e cresciuto qui alla CMU, è il framework più scalabile per l’apprendimento profondo che abbia mai visto ed è un ottimo esempio di ciò che rende così bella quest’area dell’informatica – che hai diverse discipline che funzionano tutte così bene insieme: fantasioso l’algebra lineare funziona in un modo nuovo con un’enorme computazione distribuita che porta a un gioco completamente nuovo per l’apprendimento profondo”, ha  affermato Andrew Moore, ex preside di Informatica presso la Carnegie Mellon University.

Sviluppato dalla Apache Software Foundation, MXNet è un framework di deep learning open source completo, flessibile e scalabile . In breve tempo, MXNet è emerso come uno dei forti contendenti ai framework preferiti del settore come TensorFlow e PyTorch. In particolare, Amazon lo utilizza per i suoi servizi web di deep learning. 

Nato nel mondo accademico
Nel 1986, David Rumelhart, Geoffy E e Ronald J Williams hanno introdotto l’algoritmo di apprendimento della backpropagation per addestrare le reti neurali. Tuttavia, le reti neurali sono rimaste un’area trascurata negli anni successivi quando la regressione logistica e le macchine vettoriali di supporto (SVM) hanno iniziato a prendere slancio.

Tuttavia, i set di dati hanno iniziato a crescere in modo significativo negli anni ’90. Lo storage e l’elevata larghezza di banda di rete sono diventati molto più convenienti, rendendo più facile lavorare con i big data. Le reti neurali sono molto utili nei problemi di riconoscimento dei modelli associati a enormi set di dati. Naturalmente, le reti neurali hanno iniziato a sostituire i modelli Markov dominanti in precedenza. GPU e cluster si sono presentati come una buona via d’uscita per l’addestramento accelerato delle reti neurali. Tuttavia, il problema era che stack di calcolo scientifico familiari come Matlab, R o NumPy non erano abbastanza buoni per sfruttare appieno queste risorse distribuite (GPU e cluster).

Inserisci MXNet. Offre potenti strumenti agli sviluppatori per sfruttare tutte le capacità delle GPU e del cloud computing. MXNet definisce, addestra e distribuisce reti neurali profonde.

Lo sviluppo di MXNet è radicato nel mondo accademico. È stato introdotto per la prima volta in un documento intitolato “MXNet: A Flexible and Efficient Machine Learning Library for Heterogeneous Distributed Systems” scritto da ricercatori di dieci istituzioni, tra cui la Carnegie Mellon University e l’Università di Washington e Stanford. Fin dall’inizio, MXNet ha supportato linguaggi di programmazione come C++, Python, R, Scala, Matlab e Javascript.

Caratteristiche di MXNet
MXNet sta per mix-net poiché è stato sviluppato combinando diversi approcci di programmazione in uno. Supporta linguaggi come Python, R, C++, Perl e Julia. MXNet si adatta a piccole quantità di memoria e ipso facto può essere implementato su dispositivi mobili o sistemi più piccoli.

Le caratteristiche di MXNet includono:

Offre formazione multi-GPU e distribuita come altri framework come TensorFlow e PyTorch.
Offre una maggiore flessibilità nello sviluppo dell’apprendimento automatico e consente allo sviluppatore di esportare un neurale per l’inferenza in un massimo di otto lingue diverse.
Dispone di un ampio set di librerie per supportare le applicazioni nella visione artificiale e nell’elaborazione del linguaggio naturale.
Ha una vasta comunità di utenti che interagiscono con il suo repository GitHub e altri forum.
Amazon AWS è uno dei casi d’uso più popolari di MXNet. Amazon ha scelto MXNet per tre motivi:

Velocità di sviluppo e programmabilità
Abbastanza portatile da funzionare su un’ampia gamma di dispositivi e piattaforme e posizioni con diverse strutture di rete
Scalabile su più GPU per addestrare modelli più grandi e sofisticati con set di dati più grandi.
MXNet vs TensorFlow e PyTorch
Quindi, come si accumula MXNet contro TensorFlow e PyTorch ?

MXNet ottiene grandi risultati su due fronti: facilità di apprendimento e velocità.

 

Parlando di facilità di apprendimento, TensorFlow è relativamente poco amichevole poiché la sua interfaccia cambia dopo ogni aggiornamento. PyTorch ha applicazioni più semplici e flessibili, persegue un minor numero di pacchetti e supporta codici semplici. A differenza di TensorFlow, PyTorch può fare buon uso del linguaggio principale, Python. D’altra parte, MXNet supporta sia i linguaggi imperativi che quelli dichiarativi, è altamente flessibile, offre un modulo di formazione completo e supporta più lingue.

MXNet offre velocità di calcolo e utilizzo delle risorse più elevate sulla GPU. In confronto, TensorFlow è inferiore; tuttavia, quest’ultimo ha prestazioni migliori sulla CPU.

Tuttavia, parlando di popolarità, PyTorch e TensorFlow sono ancora molto avanti, conquistando le prime posizioni. La ragione di ciò è la disponibilità di API di alto livello e la facilità di personalizzazione dei modelli di deep learning. Inoltre, TensorFlow e Pytorch godono di un supporto comunitario vivace ed esteso; il che significa che gli aggiornamenti più recenti sono prontamente disponibili. 

Sulla base del numero di menzioni nei documenti di arxiv.org nel 2018 e nel 2018, TensorFlow e Pytorch si sono classificati tra i primi due, mentre MXNet si è attestato al sesto posto.

 

Di ihal