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

Batch Size

O tamanho do lote é o número de exemplos de treino que um modelo processa por atualização de pesos. Determina a utilização da memória da GPU, a velocidade de treino e o ruído do gradiente.

O tamanho do lote é o número de exemplos de treinamento que um modelo processa em conjunto antes de atualizar seus pesos. Em vez de passar todo o conjunto de dados de treinamento pela rede neural de uma só vez, o treinamento o divide em lotes. Para cada lote, o modelo faz previsões, a função de perda as avalia, a retropropagação calcula os gradientes e o otimizador dá um passo. O tamanho do lote é um hiperparâmetro que determina três coisas ao mesmo tempo: quanta memória da GPU o treinamento exige, quanto tempo leva cada época e o quanto cada estimativa de gradiente é ruidosa.

Como o tamanho do lote afeta o treinamento#

Cada lote fornece ao algoritmo de otimização uma estimativa do gradiente para todo o conjunto de dados, e a estimativa fica mais precisa à medida que o lote aumenta. O trecho de código PyTorch abaixo mede essa precisão diretamente, calculando a média dos gradientes por amostra em muitos lotes aleatórios de cada tamanho:

import torch

torch.manual_seed(0)

# Per-sample gradients of a squared-error loss for 10,000 samples
x = torch.randn(10_000)
y = 2 * x + torch.randn(10_000)
w = torch.tensor(0.0)
per_sample_grads = 2 * (w * x - y) * x

# Estimate the gradient from 1,000 random batches at each batch size
for batch_size in (8, 64, 512):
    idx = torch.randint(0, len(x), (1000, batch_size))
    batch_grads = per_sample_grads[idx].mean(dim=1)
    print(f"batch {batch_size:3d}: gradient std {batch_grads.std():.3f}")

A dispersão da estimativa do gradiente cai de 2.248 com tamanho de lote 8 para 0.771 com 64 e 0.267 com 512. Cada aumento de 8 vezes no tamanho do lote reduz o ruído em cerca de 2.9 vezes, próximo à raiz quadrada de 8, como ocorre ao calcular a média de amostras independentes.

Esse ruído influencia o equilíbrio entre lotes pequenos e grandes:

  • Lotes pequenos (por exemplo, de 8 a 32): Atualizações ruidosas e muitas etapas por época. O ruído age como um leve regularizador que costuma ajudar o descenso estocástico do gradiente (SGD) a generalizar, e lotes pequenos cabem em hardware modesto, mas cada época demora mais porque a GPU fica parcialmente ociosa.
  • Lotes grandes (por exemplo, 256 ou mais): Gradientes mais suaves, menos etapas por época e alta utilização do hardware. Lotes muito grandes tendem a convergir para mínimos agudos, que generalizam pior, como Keskar et al. constataram; além disso, como exigem menos etapas por época, precisam de uma taxa de aprendizado proporcionalmente maior e de um período de aquecimento. Com essa regra de escala linear, Goyal et al. treinaram a ResNet-50 no ImageNet com tamanho de lote 8,192 em 256 GPUs durante uma hora, igualando a precisão do treinamento com lotes pequenos.

Limites de memória e acumulação de gradientes#

A memória da GPU precisa comportar os pesos do modelo, o estado do otimizador e as ativações intermediárias necessárias para a retropropagação; a memória das ativações cresce linearmente com o tamanho do lote e a resolução das imagens. Um lote que não cabe interrompe o treinamento com um erro de falta de memória (OOM). O treinamento com precisão mista reduz aproximadamente pela metade a memória das ativações, e a acumulação de gradientes permite atingir um lote efetivo maior, somando os gradientes de vários lotes pequenos antes de cada atualização dos pesos.

O treinamento da Ultralytics YOLO já inclui esse recurso: acumula gradientes até processar cerca de 64 imagens, o tamanho nominal do lote nbs; assim, após o aquecimento, o padrão batch=16 atualiza os pesos a cada quatro lotes. Definir batch=-1 executa o AutoBatch, que escolhe o maior lote que cabe em cerca de 60% da memória CUDA livre e usa como alternativa um tamanho de lote 16 em dispositivos CPU e Apple MPS.

from ultralytics import YOLO

# Carrega um modelo YOLO26n pré-treinado
model = YOLO("yolo26n.pt")

# batch=-1 permite que o AutoBatch escolha o tamanho do lote com base na memória GPU disponível
# Usa um inteiro (batch=16) para um tamanho fixo ou um float (batch=0.70) para uma fração da memória
results = model.train(data="coco8.yaml", epochs=5, batch=-1)

Antes do início do treinamento, o AutoBatch executa o modelo YOLO26 com tamanhos de lote de 1 a 16 (até 64 em GPUs com 16 GB ou mais), ajusta uma reta ao uso de memória medido e a usa para calcular o tamanho do lote que atinge a fração desejada.

  • Época e iteração: Uma época é uma passagem pelo conjunto de dados inteiro, e uma iteração é uma atualização dos pesos. O número de iterações por época é igual ao tamanho do conjunto de dados dividido pelo tamanho do lote, arredondado para cima; assim, 1,000 imagens com tamanho de lote 100 exigem 10 iterações.
  • Minilote: Sinônimo de lote na maioria dos textos sobre aprendizado profundo. Tecnicamente, o descenso do gradiente em lote usa o conjunto de dados inteiro a cada atualização, o descenso estocástico do gradiente usa um único exemplo e o descenso do gradiente por minilotes fica entre os dois — é assim que quase todas as redes modernas são treinadas.
  • Normalização em lote: Camada que normaliza as ativações usando a média e a variância do lote atual, então suas estatísticas ficam pouco confiáveis com tamanhos de lote muito pequenos. A normalização por grupos evita essa dependência e apresentou erro 10.6% menor que a normalização em lote na ResNet-50 no ImageNet com tamanho de lote 2.
  • Tamanho do lote de inferência: Na implantação, o agrupamento em lotes troca latência de inferência por throughput. Agrupar quadros de várias câmeras aumenta o número de imagens processadas por segundo, enquanto cada quadro aguarda o preenchimento do lote.

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