Saiba como o tamanho do lote afeta a velocidade e a precisão do treinamento de aprendizado de máquina. Explore as restrições de hardware e otimize Ultralytics usando o AutoBatch.
No domínio da aprendizagem automática e particularmente da aprendizagem profunda, o tamanho do lote refere-se ao número de exemplos de treino utilizados numa iteração do treino do modelo. Em vez de alimentar todos os dados de treino na rede neural de uma só vez — o que muitas vezes é computacionalmente impossível devido a restrições de memória —, o conjunto de dados é dividido em subconjuntos menores chamados lotes. O modelo processa um lote, calcula o erro e atualiza os seus pesos internos através da retropropagação antes de passar para o próximo lote. Este hiperparâmetro desempenha um papel fundamental na determinação da velocidade do treino e da estabilidade do processo de aprendizagem .
A escolha do tamanho do lote altera fundamentalmente a forma como o algoritmo de otimização, normalmente uma variante do descida do gradiente estocástico, navega pelo panorama de perdas.
Os profissionais muitas vezes precisam selecionar um tamanho de lote com base nas limitações de hardware, em vez de uma preferência puramente teórica. Os modelos de deep learning, especialmente arquiteturas grandes como transformadores ou redes convolucionais avançadas, são armazenados na VRAM de um GPU.
Ao utilizar NVIDIA CUDA para aceleração, a VRAM deve conter os parâmetros do modelo, o lote de dados de entrada e as saídas de ativação intermediárias necessárias para o cálculo do gradiente. Se o tamanho do lote exceder a memória disponível, o treinamento irá travar com um erro de "Memória insuficiente" (OOM). Técnicas como o treinamento de precisão mista são frequentemente empregadas para reduzir o uso de memória, permitindo tamanhos de lote maiores no mesmo hardware.
Para configurar o treino de forma eficaz, é essencial distinguir o tamanho do lote de outros termos temporais no ciclo de treino .
Ajustar o tamanho do lote é uma necessidade rotineira ao implementar soluções de visão computacional em vários setores.
Ao utilizar o PacotePython Ultralytics, definir o tamanho do lote
é simples. Pode especificar um número inteiro fixo ou usar o dinâmico batch=-1 configuração, que utiliza
o Funcionalidade AutoBatch para calcular automaticamente
o tamanho máximo do lote que o seu hardware pode processar com segurança.
O exemplo a seguir demonstra como treinar um modelo YOLO26— o mais recente padrão em velocidade e precisão — usando uma configuração de lote específica.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)
Para gerir experiências em grande escala e visualizar como diferentes tamanhos de lote afetam as suas métricas de treino, ferramentas como a Ultralytics fornecem um ambiente abrangente para registar e comparar execuções. O ajuste adequado dos hiperparâmetros do tamanho do lote é frequentemente o passo final para obter o melhor desempenho do seu modelo.