Cosa offre di più TensorFlow alle telecamere?


16

Sono consapevole che Keras funge da interfaccia di alto livello con TensorFlow.

Ma mi sembra che le keras possano svolgere molte funzionalità da sole (input di dati, creazione di modelli, formazione, valutazione).

Inoltre, alcune delle funzionalità di TensorFlow possono essere trasferite direttamente alle telecamere (ad es. È possibile utilizzare una funzione metrica o di perdita in telecamere).

La mia domanda è: cosa offre TensorFlow che non può essere riprodotto in keras?

Risposte:


15

I framework di Deep Learning operano a 2 livelli di astrazione:

  • Livello inferiore : Qui si trovano framework come Tensorflow, MXNet, Theano e PyTorch. Questo è il livello in cui sono implementate operazioni matematiche come la moltiplicazione Generalized Matrix-Matrix e le primitive della Rete Neurale come le operazioni Convoluzionali.
  • Livello superiore : è qui che si trovano strutture come Keras. A questo livello, le primitive di livello inferiore vengono utilizzate per implementare l'astrazione della rete neurale come livelli e modelli. In generale, a questo livello vengono implementate anche altre utili API come il salvataggio e l'addestramento dei modelli.

Non puoi confrontare Keras e TensorFlow perché si trovano su diversi livelli di astrazione. Voglio anche cogliere l'occasione per condividere la mia esperienza di utilizzo di Keras:

  • Non sono d'accordo sul fatto che Keras sia utile solo per il lavoro di apprendimento profondo di base. Keras è un'API magnificamente scritta. La natura funzionale dell'API ti aiuta completamente e fa di tutto per applicazioni più esotiche. Keras non blocca l'accesso a framework di livello inferiore.
  • Keras si traduce in un codice molto più leggibile e sintetico.
  • Le API di serializzazione / deserializzazione del modello Keras, i callback e lo streaming di dati utilizzando i generatori Python sono molto maturi.
  • Keras è stata dichiarata l'astrazione ufficiale di alto livello per TensorFlow.

9

Se usi TensorFlow come backend in keras, condividono più o meno la stessa funzionalità. Tramite keras.backendte un accesso funziona TensorFlow, mentre tramite tf.keraste hai accesso all'intera API di keras tramite TensorFlow.

Dato che questo è il caso, ti suggerisco di rimanere con keras e se trovi qualcosa che manca (ad esempio una metrica o una funzione di perdita) puoi importarlo tramite TensorFlow.


5

Keras, come dici tu, contiene tutte le funzionalità ma è pronto all'uso solo su CPU. Collegando un backend come TensorFlow o CNTK (che preferisco personalmente) si sblocca la potenza della GPU che può accelerare notevolmente alcuni carichi di lavoro ML, in particolare i carichi di lavoro DL. Se non si dispone di una GPU discreta, i vantaggi sono minimi.

Il più delle volte in pratica puoi semplicemente impostare il tuo backend e dimenticartene, e lavorare interamente all'interno di Keras, persino scambiare il tuo backend con un altro e confrontare le prestazioni. Quindi non è necessario apprendere le specifiche di TF a meno che non si desideri codificare direttamente a un livello inferiore.


5

Dato che TensorFlow è una libreria di livello più basso rispetto a Keras in generale, vedresti che offre maggiore flessibilità e prestazioni migliorate (anche se relativamente minori, dipende principalmente da come scrivi il tuo codice). Direi che se sei alla ricerca o sviluppi nuovi tipi di reti neurali, la conoscenza di TensorFlow sarebbe molto utile. A parte questo, dovresti stare bene con Keras, anche se capire come funziona TensorFlow potrebbe essere utile se lo usi come backend.

Tuttavia, qualche tempo fa ho letto che Keras e TensorFlow diventeranno più integrati, il che renderebbe la vita molto più facile per te.

Ovviamente questa è solo una mia opinione personale, quindi vorrei indicarti alcuni articoli extra in modo che tu possa leggere da solo. Questa discussione su Kaggle offre una grande panoramica degli argomenti e quando usare quali. Post medio su questo argomento.


5

Ogni principiante ha questa domanda. Sembra sempre che Keras risolva le funzionalità di base come input di dati, creazione di modelli, formazione, valutazione in meno righe di codice.

Ma poi quando inizi a sviluppare un modello ML da zero, ti rendi conto che puoi programmare molta matematica nella NN, e la libreria tensorflow fornisce molte funzionalità e controllo rendendo pratici quei concetti. Gli aspetti matematici dell'apprendimento possono essere facilmente visualizzati e realizzati usando NN realizzato usando tf.

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.