Meet YOLO26: next-gen vision AI.

Link to this sectionTreinamento de Modelo com Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Link to this sectionIntrodução#

O treinamento de um modelo de deep learning envolve fornecer dados e ajustar seus parâmetros para que ele possa fazer previsões precisas. O modo Train no Ultralytics YOLO26 foi desenvolvido para o treinamento eficaz e eficiente de modelos de detecção de objetos, utilizando plenamente os recursos de hardware modernos. Este guia visa cobrir todos os detalhes de que precisas para começar a treinar os teus próprios modelos usando o robusto conjunto de funcionalidades do YOLO26.



Watch: How to Train a YOLO model on Your Custom Dataset in Google Colab.

Link to this sectionPor que Escolher o Ultralytics YOLO para Treinamento?#

Aqui estão algumas razões convincentes para optar pelo modo Train do YOLO26:

  • Eficiência: Aproveita ao máximo o teu hardware, estejas a usar uma configuração de GPU única ou a escalar através de múltiplas GPUs.
  • Versatilidade: Treina em conjuntos de dados personalizados, além daqueles prontamente disponíveis como COCO, VOC e ImageNet.
  • Fácil de usar: Interfaces CLI e Python simples, mas poderosas, para uma experiência de treinamento direta.
  • Flexibilidade de Hiperparâmetros: Uma ampla gama de hiperparâmetros personalizáveis para ajustar o desempenho do modelo. Para um controlo mais aprofundado, podes personalizar o treinador diretamente.
  • Treinamento em Nuvem: Treina em GPUs na nuvem através da Ultralytics Platform com métricas em tempo real e verificação automática de pontos de controlo (checkpointing).

Link to this sectionPrincipais Funcionalidades do Modo Train#

As seguintes são algumas das funcionalidades notáveis do modo Train do YOLO26:

  • Download Automático de Conjunto de Dados: Conjuntos de dados padrão como COCO, VOC e ImageNet são baixados automaticamente na primeira utilização.
  • Suporte a Múltiplas GPUs: Escala os teus esforços de treinamento perfeitamente através de várias GPUs para acelerar o processo.
  • Configuração de Hiperparâmetros: A opção de modificar hiperparâmetros através de arquivos de configuração YAML ou argumentos CLI.
  • Visualização e Monitoramento: Rastreamento em tempo real das métricas de treinamento e visualização do processo de aprendizado para melhores insights.
Dica
  • Conjuntos de dados do YOLO26 como COCO, VOC, ImageNet e muitos outros são baixados automaticamente na primeira utilização, por exemplo, yolo train data=coco.yaml

Link to this sectionExemplos de uso#

Treina o YOLO26n no conjunto de dados COCO8 por 100 epochs com tamanho de imagem 640. O dispositivo de treinamento pode ser especificado usando o argumento device. Se nenhum argumento for passado, o GPU device=0 será usado quando disponível; caso contrário, device='cpu' será usado. Consulta a seção de Argumentos abaixo para uma lista completa de argumentos de treinamento.

Erro de Multi-Processamento no Windows

No Windows, podes receber um RuntimeError ao iniciar o treinamento como um script. Adiciona um bloco if __name__ == "__main__": antes do teu código de treinamento para resolver isso.

Exemplo de Treinamento com GPU Única e CPU

O dispositivo é determinado automaticamente. Se uma GPU estiver disponível, ela será usada (dispositivo CUDA padrão 0); caso contrário, o treinamento começará na CPU.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this sectionTreinamento com Múltiplas GPUs#

O treinamento com múltiplas GPUs permite uma utilização mais eficiente dos recursos de hardware disponíveis ao distribuir a carga de treinamento por várias GPUs. Esta funcionalidade está disponível tanto através da API Python quanto da interface de linha de comando. Para ativar o treinamento com múltiplas GPUs, especifica os IDs dos dispositivos GPU que desejas usar.

Exemplo de Treinamento com Múltiplas GPUs

Para treinar com 2 GPUs, dispositivos CUDA 0 e 1, usa os seguintes comandos. Expande para GPUs adicionais conforme necessário.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
Treinamento com Múltiplas GPUs com Código Personalizado

Quando especificas múltiplos dispositivos (por exemplo, device=[0, 1]), o Ultralytics gera internamente uma nova instância de treinador e executa torch.distributed.run nos bastidores. Isso funciona perfeitamente para uso padrão em CLI e scripts Python não modificados.

No entanto, se o teu script contiver componentes personalizados — como um treinador, validador, conjunto de dados ou pipeline de aumento de dados (augmentation) personalizados — estes objetos não podem ser serializados automaticamente e transferidos para os sub-processos DDP. Neste caso, deves executar o teu script diretamente com torch.distributed.run:

python -m torch.distributed.run --nproc_per_node 2 your_training_script.py

Link to this sectionTreinamento em GPU Ociosa#

O Treinamento em GPU Ociosa permite a seleção automática das GPUs menos utilizadas em sistemas com múltiplas GPUs, otimizando o uso de recursos sem seleção manual de GPU. Esta funcionalidade identifica as GPUs disponíveis com base em métricas de utilização e disponibilidade de VRAM.

Exemplo de Treinamento em GPU Ociosa

Para selecionar e usar automaticamente a(s) GPU(s) mais ociosa(s) para treinamento, usa o parâmetro de dispositivo -1. Isto é particularmente útil em ambientes de computação partilhada ou servidores com múltiplos utilizadores.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])

O algoritmo de auto-seleção prioriza GPUs com:

  1. Menores percentagens de utilização atual
  2. Maior memória disponível (VRAM livre)
  3. Menor temperatura e consumo de energia

Esta funcionalidade é especialmente valiosa em ambientes de computação partilhada ou ao executar múltiplos trabalhos de treinamento em diferentes modelos. Ela adapta-se automaticamente a condições variáveis do sistema, garantindo a alocação ideal de recursos sem intervenção manual.

Link to this sectionTreinamento MPS no Apple Silicon#

Com o suporte para chips Apple silicon integrado nos modelos Ultralytics YOLO, agora é possível treinar os teus modelos em dispositivos que utilizam a poderosa estrutura Metal Performance Shaders (MPS). O MPS oferece uma maneira de alto desempenho de executar tarefas de computação e processamento de imagem no silício personalizado da Apple.

Para ativar o treinamento em chips Apple silicon, deves especificar 'mps' como o teu dispositivo ao iniciar o processo de treinamento. Abaixo está um exemplo de como podes fazer isto em Python e via linha de comando:

Exemplo de Treinamento MPS
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Ao aproveitar o poder computacional dos chips Apple silicon, isto permite um processamento mais eficiente das tarefas de treinamento. Para obter orientações mais detalhadas e opções de configuração avançadas, por favor, consulta a documentação do PyTorch MPS.

Link to this sectionRetomar Treinamentos Interrompidos#

Retomar o treinamento a partir de um estado salvo anteriormente é uma funcionalidade crucial ao trabalhar com modelos de deep learning. Isto pode ser útil em várias situações, como quando o processo de treinamento foi interrompido inesperadamente, ou quando desejas continuar a treinar um modelo com novos dados ou por mais épocas.

Quando o treinamento é retomado, o Ultralytics YOLO carrega os pesos do último modelo salvo e também restaura o estado do otimizador, o agendador de learning rate e o número da época. Isto permite-te continuar o processo de treinamento sem problemas a partir de onde foi deixado.

Podes retomar facilmente o treinamento no Ultralytics YOLO definindo o argumento resume como True ao chamar o método train e especificando o caminho para o arquivo .pt que contém os pesos do modelo parcialmente treinado.

Abaixo está um exemplo de como retomar um treinamento interrompido usando Python e via linha de comando:

Exemplo de Retomar Treinamento
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)

Ao definir resume=True, a função train continuará o treinamento de onde parou, usando o estado armazenado no arquivo 'path/to/last.pt'. Se o argumento resume for omitido ou definido como False, a função train iniciará uma nova sessão de treinamento.

Lembra-te de que os checkpoints são salvos no final de cada época por padrão, ou em intervalos fixos usando o argumento save_period, portanto deves completar pelo menos 1 época para retomar um treinamento.

Link to this sectionConfigurações de Treinamento#

As configurações de treinamento para modelos YOLO abrangem vários hiperparâmetros e configurações usadas durante o processo de treinamento. Estas configurações influenciam o desempenho, a velocidade e a accuracy do modelo. As principais configurações de treinamento incluem tamanho do lote (batch size), taxa de aprendizado (learning rate), momento e decaimento de peso (weight decay). Além disso, a escolha do otimizador, da loss function e da composição do conjunto de dados de treinamento pode impactar o processo. O ajuste cuidadoso e a experimentação com essas configurações são cruciais para otimizar o desempenho.

Link to this sectionOtimizador MuSGD#

No YOLO26, o MuSGD é um otimizador híbrido que combina atualizações padrão de SGD com atualizações ortogonalizadas ao estilo Muon.

É recomendado para execuções de treinamento mais longas do YOLO26 e conjuntos de dados maiores, onde as atualizações ortogonalizadas do Muon podem ajudar a estabilizar a otimização.

Apenas parâmetros com param.ndim >= 2 (como pesos convolucionais) recebem a atualização ao estilo Muon juntamente com o SGD, enquanto parâmetros de menor dimensão, como camadas de normalização de lote e termos de bias, permanecem no SGD padrão.

Quando optimizer=auto é usado, o Ultralytics seleciona automaticamente o MuSGD para execuções de treinamento mais longas (tipicamente quando as iterações > 10000). Para execuções mais curtas, o treinador volta ao AdamW.

Exemplo de uso:

yolo train model=yolo26n.pt data=coco8.yaml optimizer=MuSGD

Consulta a implementação em ultralytics/optim/muon.py e a lógica de auto-seleção de otimizador em BaseTrainer.build_optimizer.

ArgumentoTipoPredefiniçãoDescrição
modelstrNoneEspecifica o arquivo de modelo para treinamento. Aceita um caminho para um modelo pré-treinado .pt ou um arquivo de configuração .yaml. Essencial para definir a estrutura do modelo ou inicializar pesos.
datastrNoneCaminho para o arquivo de configuração do conjunto de dados (por exemplo, coco8.yaml). Este arquivo contém parâmetros específicos do conjunto de dados, incluindo caminhos para dados de treinamento e validation data, nomes de classes e número de classes.
epochsint100Número total de épocas de treinamento. Cada epoch representa uma passagem completa por todo o conjunto de dados. Ajustar este valor pode afetar a duração do treinamento e o desempenho do modelo.
timefloatNoneTempo máximo de treinamento em horas. Se definido, isto substitui o argumento epochs, permitindo que o treinamento pare automaticamente após a duração especificada. Útil para cenários de treinamento com restrição de tempo.
patienceint100Número de épocas de espera sem melhoria nas métricas de validação antes de parar o treinamento precocemente. Ajuda a prevenir o overfitting ao interromper o treinamento quando o desempenho estagna.
batchint ou float16Batch size, com três modos: definido como um inteiro (por exemplo, batch=16), modo automático para 60% de utilização da memória da GPU (batch=-1), ou modo automático com fração de utilização especificada (batch=0.70).
imgszint640Tamanho da imagem alvo para treinamento. As imagens são redimensionadas para quadrados com lados iguais ao valor especificado (se rect=False), preservando a proporção de aspecto para modelos YOLO, mas não para o RT-DETR. Afeta a accuracy e a complexidade computacional do modelo.
saveboolTrueHabilita o salvamento de checkpoints de treinamento e pesos finais do modelo. Útil para retomar o treinamento ou para model deployment.
save_periodint-1Frequência de salvamento de checkpoints do modelo, especificada em épocas. Um valor de -1 desativa esta funcionalidade. Útil para salvar modelos intermédios durante sessões de treinamento longas.
cacheboolFalseHabilita o cache de imagens do conjunto de dados na memória (True/ram), no disco (disk), ou desativa-o (False). Melhora a velocidade de treinamento reduzindo a E/S do disco à custa de maior uso de memória.
deviceint ou str ou listNoneEspecifica o(s) dispositivo(s) computacional(ais) para treinamento: uma única GPU (device=0), múltiplas GPUs (device=[0,1]), CPU (device=cpu), MPS para Apple silicon (device=mps), Huawei Ascend NPU (device=npu ou device=npu:0), ou auto-seleção da GPU mais ociosa (device=-1) ou múltiplas GPUs ociosas (device=[-1,-1])
workersint8Número de threads de trabalho para carregamento de dados (por RANK se o treinamento for com Múltiplas GPUs). Influencia a velocidade do pré-processamento de dados e o fornecimento ao modelo, sendo especialmente útil em configurações com múltiplas GPUs.
projectstrNoneNome do diretório do projeto onde as saídas do treinamento são salvas. Permite o armazenamento organizado de diferentes experimentos.
namestrNoneNome da execução do treinamento. Usado para criar um subdiretório dentro da pasta do projeto, onde os logs e saídas do treinamento são armazenados.
exist_okboolFalseSe True, permite a substituição de um diretório de projeto/nome existente. Útil para experimentação iterativa sem precisar limpar manualmente as saídas anteriores.
pretrainedbool ou strTrueDetermina se o treinamento deve começar a partir de pesos pré-treinados. Pode ser um valor booleano ou um caminho em string para os pesos a carregar. pretrained=False treina a partir de pesos inicializados aleatoriamente, mantendo a arquitetura do modelo.
optimizerstr'auto'Escolha do otimizador para o treinamento. As opções incluem SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, ou auto para seleção automática baseada na configuração do modelo. Afeta a velocidade de convergência e a estabilidade.
seedint0Define a semente aleatória para o treinamento, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações.
deterministicboolTrueForça o uso de algoritmos determinísticos, garantindo a reprodutibilidade, mas podendo afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos.
verboseboolTrueAtiva a saída detalhada durante o treinamento, exibindo barras de progresso, métricas por época e informações adicionais de treinamento no console.
single_clsboolFalseTrata todas as classes em conjuntos de dados multiclasse como uma única classe durante o treinamento. Útil para tarefas de classificação binária ou quando o foco é a presença de objetos em vez da classificação.
classeslist[int]NoneEspecifica uma lista de IDs de classes para treinar. Útil para filtrar e focar apenas em certas classes durante o treinamento.
rectboolFalseAtiva a estratégia de preenchimento mínimo — as imagens em um lote são preenchidas minimamente para atingir um tamanho comum, com o lado mais longo igual a imgsz. Pode melhorar a eficiência e a velocidade, mas pode afetar a precisão do modelo.
multi_scalefloat0.0Varia aleatoriamente o imgsz a cada lote por +/- multi_scale (ex: 0.25 -> 0.75x a 1.25x), arredondando para múltiplos do passo (stride) do modelo; 0.0 desativa o treinamento multiescala.
cos_lrboolFalseUtiliza um escalonador de taxa de aprendizado de cosseno, ajustando a taxa de aprendizado seguindo uma curva de cosseno ao longo das épocas. Ajuda a gerenciar a taxa de aprendizado para uma melhor convergência.
close_mosaicint10Desativa a aumentação de dados tipo mosaico nas últimas N épocas para estabilizar o treinamento antes da conclusão. Definir como 0 desativa esse recurso.
resumeboolFalseRetoma o treinamento a partir do último checkpoint salvo. Carrega automaticamente os pesos do modelo, o estado do otimizador e a contagem de épocas, continuando o treinamento de forma contínua.
ampboolTrueAtiva o treinamento com Precisão Mista Automática (AMP), reduzindo o uso de memória e possivelmente acelerando o treinamento com impacto mínimo na precisão.
fractionfloat1.0Especifica a fração do conjunto de dados a ser usada para treinamento. Permite treinar em um subconjunto do conjunto de dados completo, útil para experimentos ou quando os recursos são limitados.
profileboolFalseAtiva a criação de perfil (profiling) das velocidades de ONNX e TensorRT durante o treinamento, útil para otimizar a implantação do modelo.
freezeint ou listNoneCongela as primeiras N camadas do modelo ou camadas especificadas por índice, reduzindo o número de parâmetros treináveis. Útil para ajuste fino ou transfer learning.
lr0float0.01Taxa de aprendizado inicial (ou seja, SGD=1E-2, Adam=1E-3). Ajustar este valor é crucial para o processo de otimização, influenciando a rapidez com que os pesos do modelo são atualizados.
lrffloat0.01Taxa de aprendizado final como uma fração da taxa inicial = (lr0 * lrf), usada em conjunto com escalonadores para ajustar a taxa de aprendizado ao longo do tempo.
momentumfloat0.937Fator de momentum para SGD ou beta1 para otimizadores Adam, influenciando a incorporação de gradientes passados na atualização atual.
weight_decayfloat0.0005Termo de regularização L2, penalizando pesos grandes para evitar o overfitting.
warmup_epochsfloat3.0Número de épocas para aquecimento (warmup) da taxa de aprendizado, aumentando gradualmente a taxa de aprendizado de um valor baixo até a taxa de aprendizado inicial para estabilizar o treinamento desde o início.
warmup_momentumfloat0.8Momentum inicial para a fase de aquecimento, ajustando-se gradualmente ao momentum definido durante o período de aquecimento.
warmup_bias_lrfloat0.1Taxa de aprendizado para parâmetros de bias durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais.
boxfloat7.5Peso do componente de perda de caixa (box loss) na função de perda, influenciando quanta ênfase é colocada na previsão precisa das coordenadas da caixa delimitadora.
clsfloat0.5Peso da perda de classificação na função de perda total, afetando a importância da previsão correta da classe em relação a outros componentes.
cls_pwfloat0.0Potência para ponderação de classe para lidar com o desequilíbrio de classes usando a frequência inversa da classe. 0.0 desativa a ponderação de classe, 1.0 aplica a ponderação de frequência inversa total. Valores entre 0 e 1 fornecem ponderação parcial.
dflfloat1.5Peso da perda focal de distribuição (distribution focal loss), usada em certas versões do YOLO para classificação de granulação fina.
posefloat12.0Peso da perda de pose em modelos treinados para estimativa de pose, influenciando a ênfase na previsão precisa dos pontos-chave de pose.
kobjfloat1.0Peso da perda de objetividade de pontos-chave (keypoint objectness loss) em modelos de estimativa de pose, equilibrando a confiança da detecção com a precisão da pose.
rlefloat1.0Peso da perda de estimativa de log-verossimilhança residual em modelos de estimativa de pose, afetando a precisão da localização dos pontos-chave.
anglefloat1.0Peso da perda de ângulo em modelos obb, afetando a precisão das previsões de ângulo da caixa delimitadora orientada.
nbsint64Tamanho de lote nominal para normalização da perda.
overlap_maskboolTrueDetermina se as máscaras de objeto devem ser mescladas em uma única máscara para treinamento ou mantidas separadas para cada objeto. Em caso de sobreposição, a máscara menor é sobreposta à máscara maior durante a mesclagem.
mask_ratioint4Taxa de downsample para máscaras de segmentação, afetando a resolução das máscaras usadas durante o treinamento.
dropoutfloat0.0Taxa de dropout para regularização em tarefas de classificação, evitando o overfitting ao omitir unidades aleatoriamente durante o treinamento.
valboolTrueAtiva a validação durante o treinamento, permitindo a avaliação periódica do desempenho do modelo em um conjunto de dados separado.
plotsboolTrueGera e salva gráficos de métricas de treinamento e validação, bem como exemplos de previsão, fornecendo insights visuais sobre o desempenho do modelo e a progressão do aprendizado.
compilebool ou strFalseAtiva a compilação de grafo torch.compile do PyTorch 2.x com backend='inductor'. Aceita True"default", False → desativa, ou um modo de string como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Retorna ao modo eager com um aviso se não for suportado.
max_detint300Especifica o número máximo de objetos retidos durante a fase de validação do treinamento.
Nota sobre as configurações de tamanho de lote (batch-size)

O argumento batch pode ser configurado de três maneiras:

  • Tamanho de Lote Fixo: Defina um valor inteiro (ex: batch=16), especificando o número de imagens por lote diretamente.
  • Modo Automático (60% da Memória da GPU): Use batch=-1 para ajustar automaticamente o tamanho do lote para aproximadamente 60% da utilização de memória CUDA.
  • Modo Automático com Fração de Utilização: Defina um valor fracionário (ex: batch=0.70) para ajustar o tamanho do lote com base na fração especificada do uso de memória da GPU.
  • Tentativa Automática de OOM: Se ocorrer um erro de falta de memória CUDA (out-of-memory) durante a primeira época, o treinador reduz automaticamente o tamanho do lote pela metade e tenta novamente (até 3 vezes). Isso se aplica apenas ao treinamento em uma única GPU; o treinamento multi-GPU (DDP) gerará o erro imediatamente.

Link to this sectionConfigurações de Aumentação e Hiperparâmetros#

Técnicas de aumentação são essenciais para melhorar a robustez e o desempenho dos modelos YOLO, introduzindo variabilidade nos dados de treinamento, ajudando o modelo a generalizar melhor para dados não vistos. A tabela a seguir descreve o propósito e o efeito de cada argumento de aumentação:

ArgumentoTipoPredefiniçãoTarefas SuportadasIntervaloDescrição
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Ajusta a matiz (hue) da imagem por uma fração da roda de cores, introduzindo variabilidade de cor. Ajuda o modelo a generalizar em diferentes condições de iluminação.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Altera a saturação da imagem por uma fração, afetando a intensidade das cores. Útil para simular diferentes condições ambientais.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Modifica o valor (brilho) da imagem por uma fração, ajudando o modelo a ter um bom desempenho sob diversas condições de iluminação.
degreesfloat0detect, segment, pose, obb0.0 - 180Rotaciona a imagem aleatoriamente dentro do intervalo de graus especificado, melhorando a capacidade do modelo de reconhecer objetos em várias orientações.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Translada a imagem horizontal e verticalmente por uma fração do tamanho da imagem, ajudando a aprender a detectar objetos parcialmente visíveis.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Escala a imagem por um fator de ganho, simulando objetos a diferentes distâncias da câmera.
shearfloat0detect, segment, pose, obb-180 - +180Inclina a imagem por um grau especificado, imitando o efeito de objetos sendo vistos de diferentes ângulos.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Aplica uma transformação de perspectiva aleatória à imagem, aprimorando a capacidade do modelo de entender objetos no espaço 3D.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Inverte a imagem de cima para baixo com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as características do objeto.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Inverte a imagem da esquerda para a direita com a probabilidade especificada, útil para aprender objetos simétricos e aumentar a diversidade do conjunto de dados.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Inverte os canais da imagem de RGB para BGR com a probabilidade especificada, útil para aumentar a robustez a ordenações incorretas de canais.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Combina quatro imagens de treinamento em uma, simulando diferentes composições de cena e interações de objetos. Altamente eficaz para a compreensão de cenas complexas.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Mistura duas imagens e seus rótulos, criando uma imagem composta. Melhora a capacidade do modelo de generalizar ao introduzir ruído de rótulo e variabilidade visual.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Combina porções de duas imagens, criando uma mistura parcial enquanto mantém regiões distintas. Aumenta a robustez do modelo ao criar cenários de oclusão.
copy_pastefloat0segment0.0 - 1.0Copia e cola objetos entre imagens para aumentar as instâncias de objetos.
copy_paste_modestrflipsegment-Especifica a estratégia de copy-paste a ser usada. As opções incluem 'flip' e 'mixup'.
auto_augmentstrrandaugmentclassify-Aplica uma política de aumento predefinida ('randaugment', 'autoaugment' ou 'augmix') para aprimorar o desempenho do modelo através da diversidade visual.
erasingfloat0.4classify0.0 - 1.0Apaga aleatoriamente regiões da imagem durante o treinamento para incentivar o modelo a focar em características menos óbvias.
augmentationslist``detect, segment, pose, obb-Transformações personalizadas de Albumentations para aumento de dados avançado (apenas API Python). Aceita uma lista de objetos de transformação para necessidades de aumento especializadas.

Estas configurações podem ser ajustadas para atender aos requisitos específicos do conjunto de dados e da tarefa em questão. Experimentar com diferentes valores pode ajudar a encontrar a estratégia de aumento ideal que leva ao melhor desempenho do modelo.

Info

Para mais informações sobre operações de aumento de treinamento, veja a seção de referência.

Link to this sectionRegistro (Logging)#

Ao treinar um modelo YOLO26, você pode achar valioso acompanhar o desempenho do modelo ao longo do tempo. É aqui que o registro entra em ação. O Ultralytics YOLO oferece suporte a três tipos de loggers - Comet, ClearML e TensorBoard.

Para usar um logger, selecione-o no menu suspenso no trecho de código acima e execute-o. O logger escolhido será instalado e inicializado.

Link to this sectionComet#

Comet é uma plataforma que permite a cientistas de dados e desenvolvedores rastrear, comparar, explicar e otimizar experimentos e modelos. Ele oferece funcionalidades como métricas em tempo real, diffs de código e rastreamento de hiperparâmetros.

Para usar o Comet:

Exemplo
# pip install comet_ml
import comet_ml

comet_ml.init()

Lembre-se de entrar na sua conta Comet no site deles e obter sua chave de API. Você precisará adicioná-la às suas variáveis de ambiente ou ao seu script para registrar seus experimentos.

Link to this sectionClearML#

ClearML é uma plataforma de código aberto que automatiza o rastreamento de experimentos e ajuda no compartilhamento eficiente de recursos. Ela é projetada para ajudar equipes a gerenciar, executar e reproduzir seu trabalho de ML de forma mais eficiente.

Para usar o ClearML:

Exemplo
# pip install clearml
import clearml

clearml.browser_login()

Após executar este script, você precisará entrar na sua conta ClearML no navegador e autenticar sua sessão.

Link to this sectionTensorBoard#

TensorBoard é um kit de ferramentas de visualização para TensorFlow. Ele permite visualizar seu grafo do TensorFlow, plotar métricas quantitativas sobre a execução do seu grafo e exibir dados adicionais, como imagens que passam por ele.

Para usar o TensorBoard no Google Colab:

Exemplo
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Para usar o TensorBoard localmente, execute o comando abaixo e veja os resultados em localhost:6006.

Exemplo
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Isso carregará o TensorBoard e o direcionará para o diretório onde seus logs de treinamento estão salvos.

Após configurar seu logger, você pode prosseguir com o treinamento do seu modelo. Todas as métricas de treinamento serão registradas automaticamente na plataforma escolhida, e você poderá acessar esses logs para monitorar o desempenho do seu modelo ao longo do tempo, comparar diferentes modelos e identificar áreas para melhoria.

Link to this sectionFAQ#

Link to this sectionPosso treinar sem uma GPU local?#

Sim. A Plataforma Ultralytics suporta treinamento na nuvem com créditos gratuitos para você começar. Carregue seu conjunto de dados, selecione um modelo e uma GPU e treine diretamente pelo navegador. Veja o guia de treinamento na nuvem para detalhes.

Link to this sectionComo treino um modelo de detecção de objetos usando o Ultralytics YOLO26?#

Para treinar um modelo de detecção de objetos usando o Ultralytics YOLO26, você pode usar a API Python ou a CLI. Abaixo está um exemplo para ambos:

Exemplo de Treinamento com GPU Única e CPU
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Para mais detalhes, consulte a seção Configurações de Treinamento.

Link to this sectionQuais são os principais recursos do modo de Treinamento do Ultralytics YOLO26?#

Os principais recursos do modo de Treinamento do Ultralytics YOLO26 incluem:

  • Download Automático de Conjuntos de Dados: Baixa automaticamente conjuntos de dados padrão como COCO, VOC e ImageNet.
  • Suporte a Multi-GPU: Escala o treinamento em múltiplas GPUs para processamento mais rápido.
  • Configuração de Hiperparâmetros: Personalize hiperparâmetros por meio de arquivos YAML ou argumentos da CLI.
  • Visualização e Monitoramento: Rastreamento em tempo real de métricas de treinamento para melhores insights.

Esses recursos tornam o treinamento eficiente e personalizável para suas necessidades. Para mais detalhes, veja a seção Principais Recursos do Modo de Treinamento.

Link to this sectionComo retomo o treinamento de uma sessão interrompida no Ultralytics YOLO26?#

Para retomar o treinamento de uma sessão interrompida, defina o argumento resume como True e especifique o caminho para o último checkpoint salvo.

Exemplo de Retomar Treinamento
from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)

Verifique a seção sobre Retomando Treinamentos Interrompidos para mais informações.

Link to this sectionComo treino um modelo em um conjunto de dados desbalanceado?#

O desbalanceamento de classes ocorre quando algumas classes têm significativamente menos exemplos do que outras nos seus dados de treinamento. Isso pode fazer com que o modelo tenha um desempenho ruim em classes raras. O Ultralytics YOLO suporta ponderação de classes por meio do argumento cls_pw para resolver esse problema.

O argumento cls_pw controla o poder de ponderação de classes com base na frequência inversa da classe:

  • cls_pw=0.0 (padrão): Desativa a ponderação de classes
  • cls_pw=1.0: Aplica ponderação de frequência inversa total
  • Valores entre 0.0 e 1.0: Fornecem ponderação parcial para desbalanceamento moderado

The class weights are computed as (1.0 / class_counts) ^ cls_pw and normalized so their mean equals 1.0.

Treinamento em Conjunto de Dados Desbalanceado
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train with full class weighting for severely imbalanced data
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=1.0)

# Or use partial weighting (0.25) for moderate imbalance
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=0.25)
Dica

Comece com cls_pw=0.25 para conjuntos de dados moderadamente desbalanceados e aumente para 1.0 se as classes raras ainda tiverem um desempenho abaixo do esperado. Você pode verificar os pesos de classe calculados nos logs de treinamento para verificar a distribuição de peso.

Link to this sectionPosso treinar modelos YOLO26 em chips de silício da Apple?#

Sim, o Ultralytics YOLO26 suporta treinamento em chips de silício da Apple utilizando o framework Metal Performance Shaders (MPS). Especifique 'mps' como seu dispositivo de treinamento.

Exemplo de Treinamento MPS
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Para mais detalhes, consulte a seção Treinamento MPS em Apple Silicon.

Link to this sectionQuais são as configurações comuns de treinamento e como as configuro?#

O Ultralytics YOLO26 permite que você configure uma variedade de definições de treinamento, como tamanho do lote, taxa de aprendizado, épocas e mais, por meio de argumentos. Aqui está uma breve visão geral:

ArgumentoPredefiniçãoDescrição
modelNoneCaminho para o arquivo do modelo para treinamento.
dataNoneCaminho para o arquivo de configuração do conjunto de dados (por exemplo, coco8.yaml).
epochs100Número total de épocas de treinamento.
batch16Tamanho do lote (batch size), ajustável como inteiro ou modo automático.
imgsz640Tamanho de imagem alvo para o treinamento.
deviceNoneDispositivo(s) computacional(is) para treinamento como cpu, 0, 0,1 ou mps.
saveTrueHabilita o salvamento de checkpoints de treinamento e pesos finais do modelo.

Para um guia detalhado sobre as configurações de treinamento, confira a seção Configurações de Treinamento.

Comentários