Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Callback

Descubra como os callbacks otimizam o treinamento Ultralytics . Aprenda a implementar parada antecipada, pontos de verificação e registo personalizado para aprimorar seus fluxos de trabalho de IA.

No domínio da engenharia de software e inteligência artificial (IA), um callback é um pedaço de código executável que é passado como um argumento para outro código, que deverá então executar (chamar de volta) o argumento em um determinado momento. No contexto específico do deep learning (DL) , os callbacks são ferramentas essenciais que permitem aos desenvolvedores personalizar o comportamento do treinamento do modelo sem modificar o código de treino principal em si. Eles atuam como gatilhos automatizados que executam ações específicas em vários estágios do processo de treino, como o início ou o fim de uma época, um lote de treino ou toda a sessão de treino.

O papel dos callbacks na aprendizagem automática

Treinar uma rede neural complexa rede neural pode levar horas ou até dias. Sem callbacks, o processo de treinamento é essencialmente uma "caixa preta" que funciona até ser concluído, muitas vezes exigindo supervisão manual. Os callbacks introduzem observabilidade e controle, permitindo que o sistema se autorregule com base em métricas de desempenho em tempo real.

Ao usar bibliotecas de alto nível como PyTorch ou TensorFlow, os callbacks oferecem uma maneira de injetar lógica no algoritmo de otimização. Por exemplo, se um modelo estiver a aprender bem, um callback pode salvar o estado atual; se ele parar de aprender, um callback pode interromper o processo para economizar recursos. Isso torna o fluxo de trabalho de aprendizagem automática (ML) fluxo de trabalho de aprendizado de máquina (ML)

Aplicações comuns e exemplos reais

Os callbacks são versáteis e podem ser usados para uma ampla gama de tarefas durante monitorização e otimização.

  • Paragem antecipada: Uma das utilizações mais comuns é paragem antecipada. Essa chamada de retorno monitora uma métrica específica, como dados de validação . Se a perda deixar de diminuir por um número definido de épocas, a chamada de retorno interrompe o treinamento. Isso evita o sobreajuste, garantindo que o modelo generalize bem para novos dados, em vez de memorizar os dados de treino.
  • Verificação do modelo: Em treinos longos, falhas de hardware podem ser catastróficas. Uma chamada de verificação salva os pesos do modelo em intervalos regulares (por exemplo, a cada época) ou apenas quando o modelo atinge uma nova pontuação "melhor" em métricas como precisão ou precisão média (mAP). Isso garante que você sempre tenha uma versão salva do modelo com melhor desempenho.
  • Programação da taxa de aprendizagem: A taxa de aprendizagem controla o quanto o modelo muda em resposta ao erro estimado cada vez que os pesos do modelo são atualizados. Uma chamada de retorno pode ajustar dinamicamente essa taxa, reduzindo-a quando a aprendizagem estabiliza para ajudar o modelo a convergir para uma solução ideal, uma técnica frequentemente chamada de decadência da taxa de aprendizagem.
  • Registo e visualização: As chamadas de retorno são frequentemente utilizadas para integração com ferramentas de acompanhamento de experiências . Eles transmitem métricas para painéis como o TensorBoard ou MLflow, permitindo que os cientistas de dados visualizem funções de perda e gráficos de desempenho em tempo real.

Implementando Callbacks com Ultralytics YOLO

Ultralytics suporta um sistema de retorno de chamada robusto, permitindo que os utilizadores se conectem a eventos durante o treinamento de modelos como YOLO26. Isso é particularmente útil para usuários que gerenciam fluxos de trabalho na Ultralytics que precisam de registo personalizado ou lógica de controlo.

Abaixo está um exemplo conciso de como definir e registar um callback personalizado que imprime uma mensagem no final de cada época de treino usando a 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)

Callbacks vs. Hooks

Embora estejam relacionados, é útil distinguir callbacks de hooks. Em frameworks como PyTorch, os hooks são geralmente funções de nível inferior associadas a tensores específicos tensor ou camadas de redes neurais para inspecionar ou modificar gradientes e saídas durante a passagem para a frente ou para trás. Em contrapartida, os callbacks são normalmente abstrações de nível superior ligadas ao ciclo de treino (início, fim, processamento em lote), em vez do próprio gráfico de cálculo matemático.

Leituras e recursos adicionais

Para aqueles que desejam aprofundar seus conhecimentos sobre como otimizar os fluxos de trabalho de treinamento, explorar o o ajuste de hiperparâmetros é um próximo passo lógico. Além disso, compreender a tarefas de visão computacional (CV) , como a detecção de objetos e segmentação de instâncias fornecerão contexto sobre por que o controlo preciso do treinamento por meio de callbacks é necessário. Para o gerenciamento de nível empresarial desses processos, a Ultralytics oferece soluções integradas que automatizam muitos desses comportamentos orientados por callbacks.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora