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

Callback

Una callback è una funzione richiamata dal ciclo di addestramento in momenti prestabiliti, per esempio alla fine di ogni epoca, per aggiungere arresto anticipato, checkpoint o registrazione.

Una callback è una funzione passata a un'altra parte di codice, che la richiama quando si verifica un evento specifico. I gestori di eventi nelle interfacce utente, le funzioni di completamento nel codice asincrono e la funzione di confronto fornita a una routine di ordinamento sono tutti esempi di callback. Nei framework di deep learning, gli eventi corrispondono a punti del ciclo di addestramento, come l'inizio dell'addestramento, la fine di ogni batch o epoca e il completamento della validazione. Le callback registrate per un evento vengono eseguite in quel punto e hanno accesso allo stato del trainer, così gli utenti possono aggiungere l'arresto anticipato per contrastare l'overfitting, il salvataggio dei checkpoint, le pianificazioni del tasso di apprendimento o la registrazione dei log senza modificare il ciclo stesso.

Come si collegano le callback all'addestramento#

Un framework mantiene un elenco di callback per ogni evento identificato e le esegue tutte quando il ciclo raggiunge l'evento, passando l'oggetto trainer o model affinché la callback possa leggere le metriche e modificare le impostazioni. Keras le raccoglie nel proprio modulo keras.callbacks, PyTorch Lightning nelle sottoclassi di Callback e Hugging Face Transformers in TrainerCallback. I nomi dei metodi variano tra le librerie, ma gli eventi seguono lo stesso ciclo:

Poiché le callback vengono eseguite all'interno del ciclo, possono anche modificarlo: una callback che imposta un flag di arresto termina l'addestramento al termine dell'epoca corrente, mentre una che modifica l'ottimizzatore cambia tutti i passaggi successivi. Le callback per lo stesso evento vengono eseguite nell'ordine in cui sono state registrate e quelle a livello di batch vengono eseguite migliaia di volte per epoca; quindi, le operazioni lente, come il caricamento di file, vanno associate agli eventi a livello di epoca. Nell'addestramento distribuito, ogni processo esegue una propria copia del ciclo e delle relative callback, quindi quelle che registrano log e salvano checkpoint agiscono in genere solo sul processo principale, il rank 0, per evitare che più GPU scrivano lo stesso file.

Callback di addestramento comuni#

  • Arresto anticipato: interrompe l'addestramento quando una metrica di validazione non migliora per un numero prestabilito di epoche, detto pazienza; in questo modo limita l'overfitting e riduce il consumo di risorse di calcolo. EarlyStopping di Keras può anche ripristinare i migliori pesi osservati prima dell'arresto.
  • Salvataggio dei checkpoint: salva il modello a ogni epoca o ogni volta che una metrica monitorata migliora, in modo da conservare i pesi migliori e poter riprendere una sessione interrotta da un arresto anomalo. La callback BackupAndRestore di Keras usa lo stato salvato per riprendere automaticamente una sessione interrotta.
  • Pianificazione del tasso di apprendimento: riduce il tasso di apprendimento quando una metrica si stabilizza, come fa ReduceLROnPlateau di Keras, oppure segue una pianificazione fissa come il decadimento coseno.
  • Tracciamento degli esperimenti: invia le perdite, le metriche e le immagini di esempio a strumenti come TensorBoard, MLflow o Weights & Biases dopo ogni epoca.
  • Ottimizzazione degli iperparametri: comunica il punteggio di ogni epoca a un ottimizzatore come Ray Tune, i cui scheduler interrompono in anticipo le prove poco promettenti.

Scrivere una callback personalizzata#

Ultralytics YOLO genera eventi identificati durante l'addestramento, la validazione, la predizione e l'esportazione, come on_train_epoch_end e on_fit_epoch_end; le sue integrazioni per MLflow, Comet, ClearML, TensorBoard e Ultralytics Platform sono registrate come callback per questi eventi. Questa callback legge la mAP50-95 di validazione dopo ogni epoca e interrompe una sessione di YOLO26 non appena raggiunge un obiettivo:

from ultralytics import YOLO


def stop_at_target(trainer):
    """Stop training once validation mAP50-95 reaches 0.6."""
    score = trainer.metrics["metrics/mAP50-95(B)"]
    print(f"Epoch {trainer.epoch + 1}: mAP50-95 {score:.3f}")
    if score >= 0.6:
        trainer.stop = True  # the trainer ends the run after this epoch


model = YOLO("yolo26n.pt")
model.add_callback("on_fit_epoch_end", stop_at_target)  # runs after each epoch's validation
model.train(data="coco8.yaml", epochs=20)

L'evento on_fit_epoch_end viene attivato dopo l'addestramento e la validazione dell'epoca, quindi trainer.metrics contiene già i punteggi di quell'epoca. Impostando trainer.stop, il trainer esce dal ciclo delle epoche, esegue la consueta validazione finale sui pesi migliori e salva i risultati, come accade quando viene raggiunto il limite integrato patience.

Callback e hook a confronto#

Spesso i due termini indicano la stessa cosa: PyTorch Lightning chiama hook i metodi implementati da una callback. In PyTorch, gli hook dei moduli registrati con register_forward_hook o register_full_backward_hook si collegano al passaggio forward o backward di un singolo livello, anziché a un evento del ciclo di addestramento; vengono usati per leggere le mappe delle caratteristiche a fini di visualizzazione o per esaminare e modificare i gradienti durante la backpropagation.

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