Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Callback

Uma função de callback é chamada pelo ciclo de treino em eventos definidos, como o fim de cada época, para acrescentar paragem antecipada, pontos de controlo ou registo.

Um callback é uma função passada a outro trecho de código, que a chama de volta quando ocorre um evento específico. Manipuladores de eventos em interfaces de usuário, funções de conclusão em código assíncrono e a função de comparação fornecida a uma rotina de ordenação são todos callbacks. Em frameworks de aprendizado profundo, os eventos são pontos do ciclo de treinamento, como o início do treinamento, o fim de cada lote ou época e o momento em que a validação termina. Os callbacks registrados para um evento são executados nesse ponto e têm acesso ao estado do trainer, permitindo que os usuários adicionem parada antecipada contra sobreajuste, salvamento de checkpoints, cronogramas da taxa de aprendizado ou registros sem editar o próprio ciclo.

Como os callbacks se conectam ao treinamento#

Um framework mantém uma lista de callbacks para cada evento nomeado e chama cada um deles quando o ciclo chega a esse evento, passando o objeto trainer ou model para que um callback possa ler métricas e alterar configurações. O Keras os reúne no módulo keras.callbacks, o PyTorch Lightning em subclasses de Callback, e o Transformers da Hugging Face em TrainerCallback. Os nomes dos métodos variam entre as bibliotecas, mas os eventos seguem o mesmo ciclo:

Como os callbacks são executados dentro do ciclo, eles também podem alterá-lo: um callback que define uma sinalização de parada encerra o treinamento após a época atual, e um que edita o otimizador altera todas as etapas seguintes. Os callbacks do mesmo evento são executados na ordem em que foram registrados, e os callbacks no nível de lote são executados milhares de vezes por época; por isso, tarefas lentas, como enviar arquivos, devem ficar nos eventos de nível de época. No treinamento distribuído, cada processo executa sua própria cópia do ciclo e dos callbacks, então callbacks de registro e salvamento de checkpoints geralmente atuam somente no processo principal, rank 0, para evitar gravar o mesmo arquivo a partir de várias GPUs.

Callbacks comuns de treinamento#

  • Parada antecipada: Interrompe o treinamento quando uma métrica de validação não melhora por um número definido de épocas, chamado paciência, o que limita o sobreajuste e economiza recursos computacionais. O EarlyStopping do Keras também pode restaurar os melhores pesos observados antes da parada.
  • Salvamento de checkpoints: Salva o modelo a cada época ou sempre que uma métrica monitorada melhora, para preservar os melhores pesos e permitir retomar uma execução interrompida por uma falha. O callback BackupAndRestore do Keras usa o estado salvo para retomar automaticamente uma execução interrompida.
  • Agendamento da taxa de aprendizado: Reduz a taxa de aprendizado quando uma métrica se estabiliza, como faz o ReduceLROnPlateau do Keras, ou segue um cronograma fixo, como o decaimento cosseno.
  • Rastreamento de experimentos: Envia perdas, métricas e imagens de amostra para ferramentas como TensorBoard, MLflow ou Weights & Biases após cada época.
  • Ajuste de hiperparâmetros: envia a pontuação de cada época a um ajustador, como o Ray Tune, cujos escalonadores encerram antecipadamente os testes pouco promissores.

Como escrever um callback personalizado#

O Ultralytics YOLO dispara eventos nomeados durante o treinamento, a validação, a predição e a exportação, como on_train_epoch_end e on_fit_epoch_end; suas próprias integrações com MLflow, Comet, ClearML, TensorBoard e Ultralytics Platform são registradas como callbacks nesses eventos. Este callback lê o mAP50-95 de validação após cada época e interrompe uma execução do YOLO26 assim que ela atinge uma meta:

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)

O evento on_fit_epoch_end é disparado após o treinamento e a validação da época, portanto trainer.metrics já contém as pontuações dessa época. Definir trainer.stop faz o trainer sair do ciclo de épocas, executar a validação final habitual com os melhores pesos e salvar os resultados, assim como acontece quando o limite integrado patience é atingido.

Callbacks vs. hooks#

Essas duas palavras costumam designar a mesma coisa: no PyTorch Lightning, os métodos implementados por um callback são chamados de hooks. No próprio PyTorch, hooks de módulo registrados com register_forward_hook ou register_full_backward_hook se conectam à passagem direta ou reversa de uma única camada, em vez de a um evento do ciclo de treinamento; eles são usados para ler mapas de características para visualização ou para inspecionar e modificar gradientes durante a retropropagação.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina