Scegliendo tra TensorFlow o Theano come backend per Keras


20

Keras supporta sia TensorFlow che Theano come backend: quali sono i pro / contro della scelta l'uno rispetto all'altro, oltre al fatto che attualmente non tutte le operazioni sono implementate con il backend TensorFlow?


4
Tornando a questo. Penso che cambierò la mia opinione oggi: D
Dawny33

@ Dawny33 grazie guarderò per la risposta aggiornata :-)
Franck Dernoncourt

Risposte:


9

Se mi fosse data l'opzione, andrei con Theano .

Motivi:

  • Implementazioni e API RNN all'avanguardia , che TensorFlow purtroppo non possiede e ha ancora molta strada da fare . E in un dominio in cui RNN è di gran moda, Theano ha un grande vantaggio lì.
  • Ampia gamma di implementazioni . TensorFlow ha molta strada da fare. Molti recenti modelli ML sono stati realizzati con l'aiuto di Theano, quindi è qualcosa di simile a uno standard quando si tratta di reti neurali.
  • Looping ottimizzato e migliorato : la scansione di Theano è un modo meraviglioso per eseguire il looping nelle reti neurali, che utilizza il fantastico framework di riduzione delle mappe. Ma sono abbastanza sicuro che TensorFlow migliorerebbe in questo senso, poiché il suo creatore Jeff Dean è il papà di Map Reduce. Tuttavia, a partire da ora; è Theano
  • Enorme vantaggio in termini di analisi video.

Tuttavia, TensorFlow supporta entrambe le interfacce cpp e Python che potrebbero essere un vantaggio per la comunità cpp. Ma, quando si tratta di ML e di prodotti per la scienza dei dati, Python è stato lo standard, quindi non sarebbe un enorme vantaggio dell'IMO.

Tuttavia, l'implementazione del modello e la facilità d'uso nella produzione è il punto in cui TensorFlow ha il vero vantaggio. Poiché utilizza Eigen per una migliore e facile implementazione, sarebbe un tesoro per gli ingegneri. Se diventa compatibile con Windows, vedrai una grande migrazione. Ma mi sono abituato al sovraccarico di Python, posso aspettare fino a quando non sarà più lucido.

Quindi, Theano per ora. Posso aspettare felicemente che TensorFlow raggiunga.

Se stai implementando reti neurali di complessità da semplice a media, scegli Tensorflow. Se l'apprendimento profondo, quindi Theano.


1
Dati i miglioramenti apportati a TensorFlow negli ultimi 1,5 anni, hai un'opinione diversa?
Seanny123

1
@ Seanny123 Lo so. Non ho avuto il tempo di metterlo giù come risposta: D. Scriverò presto :). [PS non correlato: verifica anche Pytorch]
Dawny33

8

È stato annunciato il 28-09-2017 che Theano sarà sospeso:

Da https://groups.google.com/forum/#!topic/theano-users/7Poq8BZutbY (Yoshua Bengio):

Dopo quasi dieci anni di sviluppo, abbiamo il rammarico di annunciare che metteremo fine allo sviluppo di Theano dopo la versione 1.0, che è prevista per le prossime settimane. Continueremo la manutenzione minima per farla funzionare per un anno, ma smetteremo di implementare attivamente nuove funzionalità. Theano continuerà a essere disponibile in seguito, secondo il nostro impegno nei confronti del software open source, ma MILA non si impegna a dedicare tempo alla manutenzione o al supporto dopo tale periodo di tempo.

Quindi TensorFlow è un'opzione migliore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.