Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Callback

Una función de retorno de llamada es una función que el bucle de entrenamiento invoca en eventos establecidos, como el final de cada época, para añadir parada temprana, puntos de control o registros.

Una devolución de llamada es una función que se pasa a otra parte del código y que esta invoca cuando se produce un evento concreto. Los controladores de eventos de las interfaces de usuario, las funciones de finalización del código asíncrono y la función de comparación que se pasa a una rutina de ordenación son ejemplos de devoluciones de llamada. En los marcos de aprendizaje profundo, los eventos son puntos del bucle de entrenamiento, como el inicio del entrenamiento, el final de cada lote o época y el momento en que termina la validación. Las devoluciones de llamada registradas para un evento se ejecutan en ese momento con acceso al estado del entrenador, de modo que los usuarios pueden añadir parada temprana para evitar el sobreajuste, guardar puntos de control, programar la tasa de aprendizaje o registrar datos sin modificar el propio bucle.

Cómo se conectan las devoluciones de llamada al entrenamiento#

Un marco mantiene una lista de devoluciones de llamada para cada evento con nombre y las ejecuta todas cuando el bucle llega a ese evento; les pasa el objeto del entrenador o del modelo para que puedan leer métricas y cambiar ajustes. Keras las reúne en su módulo keras.callbacks, PyTorch Lightning en subclases de Callback y Hugging Face Transformers en TrainerCallback. Los nombres de los métodos varían entre bibliotecas, pero los eventos siguen el mismo bucle:

Como las devoluciones de llamada se ejecutan dentro del bucle, también pueden modificarlo: una devolución de llamada que activa una señal de parada termina el entrenamiento al acabar la época actual, y otra que modifica el optimizador cambia cada paso posterior. Las devoluciones de llamada de un mismo evento se ejecutan en el orden en que se registraron; las de nivel de lote se ejecutan miles de veces por época, así que conviene reservar tareas lentas, como subir archivos, para los eventos de nivel de época. En el entrenamiento distribuido, cada proceso ejecuta su propia copia del bucle y de las devoluciones de llamada, por lo que las de registro de datos y guardado de puntos de control suelen actuar solo en el proceso principal, rango 0, para evitar escribir el mismo archivo desde varias GPU.

Devoluciones de llamada habituales en el entrenamiento#

  • Parada temprana: Detiene el entrenamiento cuando una métrica de validación no mejora durante un número determinado de épocas, llamado paciencia; así limita el sobreajuste y ahorra capacidad de cálculo. EarlyStopping de Keras también puede restaurar los mejores pesos observados antes de detenerse.
  • Guardado de puntos de control: Guarda el modelo en cada época o cuando mejora una métrica supervisada, para conservar los mejores pesos y poder reanudar una ejecución interrumpida por un fallo. La devolución de llamada BackupAndRestore de Keras usa el estado guardado para reanudar automáticamente una ejecución interrumpida.
  • Programación de la tasa de aprendizaje: Reduce la tasa de aprendizaje cuando una métrica se estanca, como hace ReduceLROnPlateau de Keras, o sigue una programación fija, como el decaimiento cosenoidal.
  • Seguimiento de experimentos: Envía pérdidas, métricas e imágenes de muestra a herramientas como TensorBoard, MLflow o Weights & Biases al final de cada época.
  • Ajuste de hiperparámetros: envía la puntuación de cada época a un optimizador, como Ray Tune, cuyos planificadores detienen pronto los ensayos poco prometedores.

Cómo escribir una devolución de llamada personalizada#

Ultralytics YOLO activa eventos con nombre durante el entrenamiento, la validación, la predicción y la exportación, como on_train_epoch_end y on_fit_epoch_end; sus propias integraciones con MLflow, Comet, ClearML, TensorBoard y Ultralytics Platform se registran como devoluciones de llamada para esos eventos. Esta devolución de llamada lee el mAP50-95 de validación al final de cada época y detiene una ejecución de YOLO26 en cuanto alcanza un objetivo:

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)

El evento on_fit_epoch_end se activa después del entrenamiento y la validación de la época, así que trainer.metrics ya contiene las puntuaciones de esa época. Al establecer trainer.stop, el entrenador sale del bucle de épocas, ejecuta la validación final habitual con los mejores pesos y guarda los resultados, igual que cuando se alcanza el límite integrado patience.

Funciones de retorno frente a hooks#

A menudo, las dos palabras designan lo mismo: PyTorch Lightning llama hooks a los métodos que implementa una devolución de llamada. En PyTorch, los hooks de módulo registrados con register_forward_hook o register_full_backward_hook se conectan al paso hacia delante o hacia atrás de una única capa, en vez de a un evento del bucle de entrenamiento; se usan para consultar los mapas de características con fines de visualización o para inspeccionar y modificar los gradientes durante la retropropagación.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático