Keras: l'API di alto livello per TensorFlow

Keras è l'API di alto livello della piattaforma TensorFlow. Fornisce un'interfaccia accessibile e altamente produttiva per risolvere i problemi di machine learning (ML), con particolare attenzione al moderno deep learning. Keras copre ogni fase del flusso di lavoro del machine learning, dall'elaborazione dei dati all'ottimizzazione degli iperparametri fino alla distribuzione. È stato sviluppato con l'obiettivo di consentire una sperimentazione rapida.

Con Keras hai pieno accesso alla scalabilità e alle funzionalità multipiattaforma di TensorFlow. Puoi eseguire Keras su un pod TPU o su grandi cluster di GPU ed esportare modelli Keras per l'esecuzione nel browser o su dispositivi mobili. Puoi anche servire i modelli Keras tramite un'API web.

Keras è progettato per ridurre il carico cognitivo raggiungendo i seguenti obiettivi:

  • Offri interfacce semplici e coerenti.
  • Ridurre al minimo il numero di azioni richieste per i casi d'uso comuni.
  • Fornire messaggi di errore chiari e utilizzabili.
  • Segui il principio della progressiva divulgazione della complessità: è facile iniziare e puoi completare flussi di lavoro avanzati imparando mentre procedi.
  • Aiutarti a scrivere codice conciso e leggibile.

Chi dovrebbe usare Keras

La risposta breve è che ogni utente TensorFlow dovrebbe utilizzare le API Keras per impostazione predefinita. Che tu sia un ingegnere, un ricercatore o un professionista del machine learning, dovresti iniziare con Keras.

Esistono alcuni casi d'uso (ad esempio, la creazione di strumenti su TensorFlow o lo sviluppo della propria piattaforma ad alte prestazioni) che richiedono le API TensorFlow Core di basso livello. Ma se il tuo caso d'uso non rientra in una delle applicazioni API Core , dovresti preferire Keras.

Componenti dell'API Keras

Le strutture dati principali di Keras sono livelli e modelli . Uno strato è una semplice trasformazione di input/output e un modello è un grafico aciclico diretto (DAG) di strati.

Strati

La classe tf.keras.layers.Layer è l'astrazione fondamentale in Keras. Un Layer incapsula uno stato (pesi) e alcuni calcoli (definiti nel metodo tf.keras.layers.Layer.call ).

I pesi creati dai livelli possono essere addestrabili o non addestrabili. I livelli sono componibili ricorsivamente: se assegni un'istanza di livello come attributo di un altro livello, il livello esterno inizierà a tenere traccia dei pesi creati dal livello interno.

Puoi anche utilizzare i livelli per gestire attività di preelaborazione dei dati come la normalizzazione e la vettorizzazione del testo. I livelli di preelaborazione possono essere inclusi direttamente in un modello, durante o dopo l'addestramento, rendendo il modello portabile.

Modelli

Un modello è un oggetto che raggruppa insieme i livelli e che può essere addestrato sui dati.

Il tipo più semplice di modello è il modello Sequential , che è una pila lineare di livelli. Per architetture più complesse, puoi utilizzare l' API funzionale Keras , che ti consente di creare grafici arbitrari di livelli, oppure utilizzare la sottoclasse per scrivere modelli da zero .

La classe tf.keras.Model presenta metodi di formazione e valutazione integrati:

  • tf.keras.Model.fit : addestra il modello per un numero fisso di epoche.
  • tf.keras.Model.predict : genera previsioni di output per i campioni di input.
  • tf.keras.Model.evaluate : restituisce i valori di perdita e metrica per il modello; configurato tramite il metodo tf.keras.Model.compile .

Questi metodi ti danno accesso alle seguenti funzionalità di formazione integrate:

  • Richiami . Puoi sfruttare i callback integrati per l'arresto anticipato, il checkpoint del modello e il monitoraggio TensorBoard . Puoi anche implementare callback personalizzati .
  • Formazione distribuita . Puoi facilmente ampliare la tua formazione su più GPU, TPU o dispositivi.
  • Fase di fusione. Con l' steps_per_execution in tf.keras.Model.compile , puoi elaborare più batch in un'unica chiamata tf.function , migliorando notevolmente l'utilizzo del dispositivo sulle TPU.

Per una panoramica dettagliata su come utilizzare fit , consultare la guida alla formazione e alla valutazione . Per informazioni su come personalizzare i cicli di formazione e valutazione integrati, vedere Personalizzazione di ciò che accade in fit() .

Altre API e strumenti

Keras fornisce molte altre API e strumenti per il deep learning, tra cui:

Per un elenco completo delle API disponibili, consulta il riferimento API Keras . Per saperne di più su altri progetti e iniziative Keras, vedere L'ecosistema Keras .

Prossimi passi

Per iniziare a utilizzare Keras con TensorFlow, consulta i seguenti argomenti:

Per ulteriori informazioni su Keras, consultare i seguenti argomenti su keras.io :