Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Callback

Scopri come i callback ottimizzano l'addestramento Ultralytics . Impara a implementare l'interruzione anticipata, il checkpointing e la registrazione personalizzata per migliorare i tuoi flussi di lavoro di IA.

Nel campo dell'ingegneria del software e dell' intelligenza artificiale (AI), un callback è un pezzo di codice eseguibile che viene passato come argomento ad altro codice, il quale dovrà poi eseguire (richiamare) l'argomento in un determinato momento. Nel contesto specifico del deep learning (DL) , i callback sono strumenti essenziali che consentono agli sviluppatori di personalizzare il comportamento del ciclo di addestramento del modello senza modificare il codice di addestramento di base stesso. Agiscono come trigger automatizzati che eseguono azioni specifiche in varie fasi del processo di addestramento, come l'inizio o la fine di un' epoca, un batch di addestramento o l'intera sessione di addestramento.

Il ruolo dei callback nell'apprendimento automatico

Addestramento di una rete neurale complessa rete neurale può richiedere ore o addirittura giorni. Senza callback, il processo di addestramento è essenzialmente una "scatola nera" che funziona fino al completamento, richiedendo spesso una supervisione manuale. I callback introducono osservabilità e controllo, consentendo al sistema di autoregolarsi in base a metriche di performance in tempo reale.

Quando si utilizzano librerie di alto livello come PyTorch o TensorFlow, i callback offrono un modo per inserire la logica nell' algoritmo di ottimizzazione. Ad esempio, se un modello sta imparando bene, un callback potrebbe salvare lo stato attuale; se smette di imparare, un callback potrebbe interrompere il processo per risparmiare risorse. Questo rende l' flusso di lavoro dell'apprendimento automatico (ML) più efficiente e robusto.

Applicazioni comuni ed esempi reali

I callback sono versatili e possono essere utilizzati per un'ampia gamma di attività durante il monitoraggio dei modelli e ottimizzazione dei modelli.

  • Arresto anticipato: uno degli usi più comuni è l' l'arresto anticipato. Questa callback monitora una metrica specifica, come i dati di convalida . Se la perdita smette di diminuire per un determinato numero di epoche, la callback interrompe l'addestramento. Ciò impedisce il overfitting, assicurando che il modello generalizzi bene sui nuovi dati piuttosto che memorizzare i dati di addestramento.
  • Checkpointing del modello: nei cicli di formazione lunghi, i guasti hardware possono essere catastrofici. Una callback di checkpointing salva i pesi del modello a intervalli regolari (ad esempio, ogni epoca) o solo quando il modello raggiunge un nuovo punteggio "migliore" su metriche come l' accuratezza o precisione media (mAP). In questo modo si ha sempre una versione salvata del modello con le migliori prestazioni.
  • Pianificazione del tasso di apprendimento: Il velocità di apprendimento controlla quanto il modello cambia in risposta all'errore stimato ogni volta che i pesi del modello vengono aggiornati. Una callback può regolare dinamicamente questa velocità, riducendola quando l'apprendimento raggiunge un plateau per aiutare il modello a convergere su una soluzione ottimale, una tecnica spesso denominata decadimento del tasso di apprendimento.
  • Registrazione e visualizzazione: i callback sono spesso utilizzati per l'integrazione con strumenti di monitoraggio degli esperimenti . Trasmettono le metriche a dashboard come TensorBoard o MLflow, consentendo ai data scientist di visualizzare le le funzioni di perdita e i grafici delle prestazioni in tempo reale.

Implementazione dei callback con Ultralytics YOLO

Ultralytics supporta un solido sistema di callback, che consente agli utenti di collegarsi agli eventi durante l'addestramento di modelli come YOLO26. Ciò è particolarmente utile per gli utenti che gestiscono flussi di lavoro sulla Ultralytics che necessitano di registrazioni personalizzate o di una logica di controllo.

Di seguito è riportato un esempio sintetico di come definire e registrare un callback personalizzato che stampa un messaggio alla fine di ogni epoca di addestramento utilizzando l' Python :

from ultralytics import YOLO


# Define a custom callback function
def on_train_epoch_end(trainer):
    """Callback function to execute at the end of each training epoch."""
    print(f"Epoch {trainer.epoch + 1} complete. Current Fitness: {trainer.fitness}")


# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")

# Register the custom callback to the model
model.add_callback("on_train_epoch_end", on_train_epoch_end)

# Train the model with the callback active
model.train(data="coco8.yaml", epochs=3)

Callback vs. Hook

Sebbene siano correlati, è utile distinguere i callback dai hook. In framework come PyTorch, gli hook sono generalmente funzioni di livello inferiore associate a specifici tensor o a livelli di reti neurali per ispezionare o modificare gradienti e output durante il passaggio in avanti o all'indietro. Al contrario, i callback sono tipicamente astrazioni di livello superiore legate al ciclo di addestramento (inizio, fine, elaborazione batch) piuttosto che al grafico di calcolo matematico stesso.

Ulteriori letture e risorse

Per coloro che desiderano approfondire la propria comprensione su come ottimizzare i flussi di lavoro di formazione, esplorare la la regolazione degli iperparametri è un passo logico successivo. Inoltre, comprendere la attività di visione artificiale (CV) come il rilevamento di oggetti rilevamento di oggetti e la segmentazione di istanze forniranno il contesto sul perché sia necessario un controllo preciso dell'addestramento tramite callback. Per una gestione di livello aziendale di questi processi, la Ultralytics offre soluzioni integrate che automatizzano molti di questi comportamenti guidati dai callback.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora