Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Keras

Keras è un'API Python di alto livello per creare e addestrare reti neurali che, da Keras 3, esegue lo stesso codice su JAX, TensorFlow o PyTorch.

Keras è un'API Python open source di alto livello per creare e addestrare reti neurali. François Chollet l'ha presentata nel marzo 2015 per rendere rapida la scrittura di esperimenti di apprendimento profondo: un modello è una pila o un grafo di livelli, compile imposta l'ottimizzatore, la funzione di perdita e le metriche, mentre fit esegue il ciclo di addestramento. Keras è diventata l'API ufficiale di alto livello di TensorFlow e Keras 3, rilasciata nel novembre 2023, esegue lo stesso codice del modello su JAX, TensorFlow o PyTorch, scelto al momento dell'importazione di Keras. Il codice breve e leggibile la rende una scelta comune per l'insegnamento, la prototipazione e le competizioni Kaggle, oltre che per modelli di produzione nella classificazione delle immagini e nell'elaborazione del linguaggio naturale.

Come funziona Keras#

Un modello Keras è composto da livelli come Dense, Conv2D, LSTM e MultiHeadAttention, ciascuno con i propri pesi. Keras offre tre modi per assemblarli: l'API Sequential per una semplice pila, l'API funzionale per grafi con diramazioni, livelli condivisi o più ingressi e la sottoclasse keras.Model per avere il pieno controllo del passaggio in avanti. Un modello compilato viene addestrato con fit, che gestisce il raggruppamento in batch, la retropropagazione, le metriche, i dati di convalida e i callback per il salvataggio dei checkpoint o l'arresto anticipato, quindi valuta nuovi dati con evaluate e predict. Questo codice addestra un piccolo classificatore di cifre sul dataset MNIST incluso in Keras:

import os

os.environ["KERAS_BACKEND"] = "torch"  # or "jax" or "tensorflow", set before importing Keras

import keras

# MNIST handwritten digits, with pixels scaled to [0, 1]
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# Define the model as a stack of layers
model = keras.Sequential(
    [
        keras.Input(shape=(28, 28)),
        keras.layers.Flatten(),
        keras.layers.Dense(128, activation="relu"),
        keras.layers.Dense(10, activation="softmax"),
    ]
)

# Configure training, then train and evaluate
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
model.fit(x_train, y_train, epochs=2, batch_size=64, verbose=0)
loss, accuracy = model.evaluate(x_test, y_test, verbose=0)
print(f"Test accuracy: {accuracy:.3f}")

Dopo due epoche, stampa un'accuratezza di test di circa 0.96; modificando "torch" in "jax" o "tensorflow", lo stesso modello viene eseguito su un altro framework senza modificare nessun'altra riga.

Keras 3 e i suoi backend#

In origine Keras funzionava con diversi motori, tra cui Theano, TensorFlow e CNTK. Keras 2.3, rilasciata nel settembre 2019, è stata l'ultima versione con più backend; in seguito, lo sviluppo è confluito in TensorFlow come tf.keras. Keras 3 ha ripristinato l'indipendenza dai backend: livelli e modelli vengono scritti usando keras.ops, un insieme di operazioni in stile NumPy implementato da ciascun backend, così un modello salvato nel formato .keras può essere ricaricato e addestrato con qualsiasi backend. Con il backend PyTorch, un modello Keras è anche un torch.nn.Module utilizzabile in un ciclo di addestramento PyTorch personalizzato; inoltre, da Keras 3.8, un backend OpenVINO dedicato all'inferenza esegue i modelli addestrati su hardware Intel.

Da TensorFlow 2.16, l'installazione di TensorFlow installa Keras 3, mentre il codice che richiede ancora Keras 2 usa il pacchetto separato tf_keras. Anche i convertitori di modelli supportano Keras: quando Ultralytics YOLO esporta YOLO26 in un TensorFlow SavedModel, il convertitore onnx2tf ricostruisce la rete PyTorch dal grafo ONNX come modello Keras, livello per livello, prima di salvarla.

Modelli preaddestrati in KerasHub#

KerasHub offre implementazioni Keras 3 di architetture popolari con checkpoint preaddestrati, come ResNet per le immagini, BERT per il testo e i modelli linguistici di grandi dimensioni Gemma. Il nome di una configurazione predefinita carica un modello pronto per il transfer learning: keras_hub.models.ImageClassifier.from_preset("resnet_50_imagenet") restituisce un classificatore addestrato su ImageNet che il fine-tuning adatta a un nuovo dataset con la stessa chiamata fit usata sopra. Come il resto di Keras 3, i modelli KerasHub funzionano con tutti e tre i backend di addestramento.

Keras a confronto con TensorFlow e PyTorch#

  • TensorFlow: un framework completo con runtime, compilatore e strumenti di distribuzione propri, come TensorFlow Serving e LiteRT. Keras è l'API con cui molti utenti di TensorFlow scrivono i modelli, mentre TensorFlow è uno dei motori che eseguono il codice Keras.
  • PyTorch: un framework in cui gli utenti in genere scrivono da sé il ciclo di addestramento o usano una libreria come PyTorch Lightning. Keras fornisce il ciclo tramite fit e può usare PyTorch come backend, quindi i due non si escludono a vicenda.
  • JAX: la libreria di Google che offre trasformazioni di funzioni componibili per la differenziazione, la compilazione XLA e la vettorializzazione. JAX non ha API integrate per i livelli o l'addestramento; Keras è uno dei modi per aggiungerne una.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning