Treinamento de Modelo com Ultralytics YOLO

Ultralytics YOLO ecosystem and integrations

Introdução

Treinar um modelo de deep learning envolve fornecer dados a ele e ajustar seus parâmetros para que ele possa fazer previsões precisas. O modo Train no Ultralytics YOLO26 foi projetado para o treinamento eficaz e eficiente de modelos de detecção de objetos, utilizando totalmente as capacidades do hardware moderno. Este guia visa cobrir todos os detalhes necessários para você começar a treinar seus próprios modelos usando o robusto conjunto de recursos do YOLO26.



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

Por que escolher o Ultralytics YOLO para treinamento?

Aqui estão alguns motivos convincentes para optar pelo modo Train do YOLO26:

  • Eficiência: Aproveite ao máximo seu hardware, esteja você em uma configuração de GPU única ou escalando em múltiplas GPUs.
  • Versatilidade: Treine 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, porém 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 controle mais profundo, você pode personalizar o treinador por conta própria.
  • Treinamento em Nuvem: Treine em GPUs na nuvem através da Ultralytics Platform com métricas em tempo real e criação automática de checkpoints.

Principais Recursos do Modo Train

Os itens a seguir são alguns recursos 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 no primeiro uso.
  • Suporte a Multi-GPU: Escale seus esforços de treinamento perfeitamente em 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 de CLI.
  • Visualização e Monitoramento: Rastreamento em tempo real de métricas de treinamento e visualização do processo de aprendizado para melhores insights.
Dica
  • Conjuntos de dados YOLO26 como COCO, VOC, ImageNet e muitos outros são baixados automaticamente no primeiro uso, por exemplo, yolo train data=coco.yaml

Exemplos de Uso

Treine 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, a GPU device=0 será usada quando disponível; caso contrário, device='cpu' será usado. Consulte a seção de Argumentos abaixo para uma lista completa de argumentos de treinamento.

Erro de Multi-Processamento no Windows

No Windows, você pode receber um RuntimeError ao iniciar o treinamento como um script. Adicione um bloco if __name__ == "__main__": antes do seu código de treinamento para resolver isso.

Exemplo de Treinamento em GPU Única e CPU

O dispositivo é determinado automaticamente. Se uma GPU estiver disponível, ela será usada (dispositivo CUDA 0 padrão); 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)

Treinamento Multi-GPU

O treinamento Multi-GPU permite uma utilização mais eficiente dos recursos de hardware disponíveis, distribuindo a carga de treinamento em várias GPUs. Este recurso está disponível tanto através da API Python quanto da interface de linha de comando. Para habilitar o treinamento multi-GPU, especifique os IDs dos dispositivos de GPU que você deseja usar.

Exemplo de Treinamento Multi-GPU

Para treinar com 2 GPUs, os dispositivos CUDA 0 e 1, use os comandos a seguir. Expanda 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 Multi-GPU com Código Personalizado

Ao especificar vários 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 CLI padrão e scripts Python não modificados.

No entanto, se o seu script contiver componentes personalizados — como um treinador, validador, conjunto de dados ou pipeline de aumento personalizados — esses objetos não podem ser serializados automaticamente e transferidos para os subprocessos DDP. Nesse caso, você deve iniciar seu script diretamente com torch.distributed.run:

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

Treinamento com GPU Ociosa

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

Exemplo de Treinamento com GPU Ociosa

Para selecionar e usar automaticamente a(s) GPU(s) mais ociosa(s) para treinamento, use o parâmetro de dispositivo -1. Isso é particularmente útil em ambientes de computação compartilhados ou servidores com vários usuários.

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 percentuais de utilização atual
  2. Maior memória disponível (VRAM livre)
  3. Menor temperatura e consumo de energia

Este recurso é especialmente valioso em ambientes de computação compartilhados ou ao executar vários trabalhos de treinamento em diferentes modelos. Ele se adapta automaticamente às mudanças nas condições do sistema, garantindo a alocação ideal de recursos sem intervenção manual.

Treinamento Apple Silicon MPS

Com o suporte para chips de silício da Apple integrado aos modelos Ultralytics YOLO, agora é possível treinar seus 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 habilitar o treinamento em chips de silício da Apple, você deve especificar 'mps' como seu dispositivo ao iniciar o processo de treinamento. Abaixo está um exemplo de como você pode fazer isso 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 de silício da Apple, isso permite um processamento mais eficiente das tarefas de treinamento. Para orientações mais detalhadas e opções de configuração avançadas, consulte a documentação do PyTorch MPS.

Retomando Treinamentos Interrompidos

Retomar o treinamento de um estado salvo anteriormente é um recurso crucial ao trabalhar com modelos de deep learning. Isso pode ser útil em vários cenários, como quando o processo de treinamento foi interrompido inesperadamente, ou quando você deseja continuar treinando 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 taxa de aprendizado e o número da época. Isso permite que você continue o processo de treinamento perfeitamente de onde parou.

Você pode 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 contendo 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 Retomada de 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.

Lembre-se de que os checkpoints são salvos no final de cada época por padrão, ou em intervalos fixos usando o argumento save_period, então você deve completar pelo menos 1 época para retomar uma execução de treinamento.

Definições de Treino

As configurações de treinamento para modelos YOLO abrangem vários hiperparâmetros e configurações usadas durante o processo de treinamento. Essas configurações influenciam o desempenho, a velocidade e a precisão do modelo. As principais configurações de treinamento incluem tamanho do lote, taxa de aprendizado, momentum e decaimento de peso. Além disso, a escolha do otimizador, função de perda e a composição do conjunto de dados de treinamento podem afetar o processo de treinamento. Ajustes cuidadosos e experimentação com essas configurações são cruciais para otimizar o desempenho.

Otimizador MuSGD

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

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

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

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

Exemplo de uso:

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

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

ArgumentoTipoPadrãoDescrição
modelstrNoneEspecifica o ficheiro do modelo para treino. Aceita um caminho para um modelo pré-treinado .pt ou um ficheiro de configuração .yaml. Essencial para definir a estrutura do modelo ou inicializar pesos.
datastrNoneCaminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro contém parâmetros específicos do conjunto de dados, incluindo caminhos para dados de treino e dados de validação, nomes de classes e número de classes.
epochsint100Número total de épocas de treino. Cada época representa uma passagem completa por todo o conjunto de dados. Ajustar este valor pode afetar a duração do treino e o desempenho do modelo.
timefloatNoneTempo máximo de treino em horas. Se definido, isto substitui o argumento epochs, permitindo que o treino pare automaticamente após a duração especificada. Útil para cenários de treino limitados pelo tempo.
patienceint100Número de épocas de espera sem melhoria nas métricas de validação antes de parar o treino antecipadamente. Ajuda a prevenir o overfitting ao parar o treino quando o desempenho estabiliza.
batchint ou float16Tamanho do lote, com três modos: definido como um número 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 de imagem alvo para treino. As imagens são redimensionadas para quadrados com lados iguais ao valor especificado (se rect=False), preservando a proporção para modelos YOLO, mas não para RT-DETR. Afeta a precisão do modelo e a complexidade computacional.
saveboolTrueAtiva a gravação de pontos de verificação de treino e pesos finais do modelo. Útil para retomar o treino ou implementação de modelos.
save_periodint-1Frequência de gravação de pontos de verificação do modelo, especificada em épocas. Um valor de -1 desativa esta funcionalidade. Útil para guardar modelos intermédios durante sessões de treino longas.
cacheboolFalseAtiva a colocação em cache de imagens do conjunto de dados na memória (True/ram), em disco (disk), ou desativa-a (False). Melhora a velocidade do treino ao reduzir I/O de disco à custa de um maior uso de memória.
deviceint ou str ou listNoneEspecifica o(s) dispositivo(s) computacional(ais) para treino: 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 seleção automática 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 for treino Multi-GPU). Influencia a velocidade do pré-processamento de dados e alimentação para o modelo, especialmente útil em configurações Multi-GPU.
projectstrNoneNome do diretório do projeto onde os resultados do treino são guardados. Permite um armazenamento organizado de diferentes experiências.
namestrNoneNome da execução do treino. Usado para criar um subdiretório dentro da pasta do projeto, onde os registos e resultados do treino são armazenados.
exist_okboolFalseSe for True, permite a substituição de um diretório de projeto/nome existente. Útil para experimentação iterativa sem precisar de limpar manualmente resultados anteriores.
pretrainedbool ou strTrueDetermina se deve começar o treino a partir de pesos pré-treinados. Pode ser um valor booleano ou um caminho de string para os pesos a carregar. pretrained=False treina a partir de pesos inicializados aleatoriamente enquanto mantém a arquitetura do modelo.
optimizerstr'auto'Escolha do otimizador para treino. As opções incluem SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, ou auto para seleção automática com base na configuração do modelo. Afeta a velocidade e estabilidade da convergência.
seedint0Define a semente aleatória para o treino, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações.
deterministicboolTrueForça a utilização de algoritmos determinísticos, garantindo a reprodutibilidade, mas pode afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos.
verboseboolTrueAtiva a saída detalhada durante o treino, exibindo barras de progresso, métricas por época e informações adicionais de treino na consola.
single_clsboolFalseTrata todas as classes em conjuntos de dados de várias classes como uma única classe durante o treino. Útil para tarefas de classificação binária ou quando se foca na presença de objetos em vez da classificação.
classeslist[int]NoneEspecifica uma lista de IDs de classe para treinar. Útil para filtrar e focar apenas em certas classes durante o treino.
rectboolFalseAtiva a estratégia de preenchimento mínimo—as imagens num lote são minimamente preenchidas 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 em +/- multi_scale (por exemplo, 0.25 -> 0.75x a 1.25x), arredondando para múltiplos do stride do modelo; 0.0 desativa o treinamento multi-escala.
cos_lrboolFalseUtiliza um agendador 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 de 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 sem interrupções.
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 o treinamento em um subconjunto do conjunto de dados completo, útil para experimentos ou quando os recursos são limitados.
profileboolFalseAtiva a análise de desempenho (profiling) das velocidades do ONNX e TensorRT durante o treinamento, útil para otimizar a implantação do modelo.
freezeint ou listNoneCongela as primeiras N camadas do modelo ou as 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 agendadores para ajustar a taxa de aprendizado ao longo do tempo.
momentumfloat0.937Fator de momento 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 sobreajuste (overfitting).
warmup_epochsfloat3.0Número de épocas para o aquecimento (warmup) da taxa de aprendizado, aumentando gradualmente a taxa de aprendizado de um valor baixo para a taxa de aprendizado inicial para estabilizar o treinamento desde o início.
warmup_momentumfloat0.8Momento inicial para a fase de aquecimento, ajustando-se gradualmente ao momento definido durante o período de aquecimento.
warmup_bias_lrfloat0.1Taxa de aprendizado para parâmetros de viés (bias) durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais.
boxfloat7.5Peso do componente de perda de caixa na função de perda, influenciando o quanto de ênfase é colocada na previsão precisa das coordenadas da bounding box.
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 desequilíbrio de classe usando a frequência inversa de classe. 0.0 desativa a ponderação de classe, 1.0 aplica ponderação total de frequência inversa. 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 keypoints de pose.
kobjfloat1.0Peso da perda de objetividade dos keypoints 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 keypoints.
anglefloat1.0Peso da perda de ângulo em modelos obb, afetando a precisão das previsões de ângulo da caixa delimitadora orientada.
nbsint64Tamanho nominal do lote para normalização da perda.
overlap_maskboolTrueDetermina se as máscaras de objetos 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 é colocada sobre a máscara maior durante a mesclagem.
mask_ratioint4Razão 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 sobreajuste 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 das 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". Volta para o 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 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 (por exemplo, batch=16), especificando o número de imagens por lote diretamente.
  • Modo Auto (60% da Memória da GPU): Use batch=-1 para ajustar automaticamente o tamanho do lote para aproximadamente 60% de utilização da memória CUDA.
  • Modo Auto com Fração de Utilização: Defina um valor de fração (por exemplo, batch=0.70) para ajustar o tamanho do lote com base na fração especificada de uso de memória da GPU.
  • Auto-Tentativa de OOM: Se ocorrer um erro de falta de memória CUDA 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 GPU única; o treinamento multi-GPU (DDP) levantará o erro imediatamente.

Configurações de Aumento e Hiperparâmetros

As técnicas de aumento 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 aumento:

ArgumentoTipoPadrãoTarefas SuportadasIntervaloDescrição
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Ajusta a matiz da imagem por uma fração da roda de cores, introduzindo variabilidade de cor. Ajuda o modelo a generalizar entre 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 em várias 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, auxiliando no aprendizado a detectar objetos parcialmente visíveis.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Escala a imagem por um fator de ganho, simulando objetos em 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, melhorando 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 contra ordenação incorreta de canais.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Combina quatro imagens de treino 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.0Mescla duas imagens e seus rótulos, criando uma imagem composta. Aprimora a capacidade de generalização do modelo ao introduzir ruído de rótulo e variabilidade visual.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Combina partes de duas imagens, criando uma mescla parcial enquanto mantém regiões distintas. Melhora a robustez do modelo criando cenários de oclusão.
copy_pastefloat0segment0.0 - 1.0Copia e cola objetos através de imagens para aumentar instâncias de objetos.
copy_paste_modestrflipsegment-Especifica a estratégia de copy-paste a ser utilizada. As opções incluem 'flip' e 'mixup'.
auto_augmentstrrandaugmentclassify-Aplica uma política de aumento predefinida ('randaugment', 'autoaugment' ou 'augmix') para melhorar o desempenho do modelo por meio de diversidade visual.
erasingfloat0.4classify0.0 - 1.0Apaga aleatoriamente regiões da imagem durante o treino 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 via API Python). Aceita uma lista de objetos de transformação para necessidades específicas de aumento.

Essas configurações podem ser ajustadas para atender aos requisitos específicos do conjunto de dados e da tarefa em questão. Experimentar com valores diferentes 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 durante o treino, consulte a seção de referência.

Logging

Ao treinar um modelo YOLO26, você pode achar valioso acompanhar o desempenho do modelo ao longo do tempo. É aqui que o registro (logging) entra em cena. 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 snippet de código acima e execute-o. O logger escolhido será instalado e inicializado.

Comet

Comet é uma plataforma que permite a cientistas de dados e desenvolvedores rastrear, comparar, explicar e otimizar experimentos e modelos. Ela 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.

ClearML

ClearML é uma plataforma de código aberto que automatiza o rastreamento de experimentos e ajuda no compartilhamento eficiente de recursos. Ela foi 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.

TensorBoard

TensorBoard é um kit de ferramentas de visualização para TensorFlow. Ele permite que você visualize seu grafo do TensorFlow, plote métricas quantitativas sobre a execução do seu grafo e mostre 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 treino estão salvos.

Após configurar seu logger, você pode prosseguir com o treinamento do seu modelo. Todas as métricas de treino 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.

Perguntas Frequentes

Posso treinar sem uma GPU local?

Sim. A Plataforma Ultralytics suporta treino na nuvem com créditos gratuitos para começar. Faça o upload do seu conjunto de dados, selecione um modelo e uma GPU e treine diretamente pelo navegador. Consulte o guia de treino na nuvem para mais detalhes.

Como 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 em 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 Treino.

Quais são os principais recursos do modo de Treino do Ultralytics YOLO26?

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

  • Download Automático de Conjunto de Dados: Baixa automaticamente conjuntos de dados padrão como COCO, VOC e ImageNet.
  • Suporte a Múltiplas GPUs: Escala o treino entre várias GPUs para processamento mais rápido.
  • Configuração de Hiperparâmetros: Personalize hiperparâmetros através de arquivos YAML ou argumentos de CLI.
  • Visualização e Monitoramento: Rastreamento em tempo real de métricas de treino para melhores insights.

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

Como retomo um treinamento de uma sessão interrompida no Ultralytics YOLO26?

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

Exemplo de Retomada de Treinamento
from ultralytics import YOLO

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

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

Confira a seção sobre Retomada de Treinamentos Interrompidos para mais informações.

Como 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 treino. Isso pode fazer com que o modelo tenha um desempenho ruim em classes raras. O Ultralytics YOLO suporta ponderação de classe através do argumento cls_pw para resolver esse problema.

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

  • cls_pw=0.0 (padrão): Desativa a ponderação de classe
  • cls_pw=1.0: Aplica ponderação completa de frequência inversa
  • 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.

Treinando em um 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 computados nos logs de treino para verificar a distribuição de peso.

Posso treinar modelos YOLO26 em chips Apple silicon?

Sim, o Ultralytics YOLO26 suporta treinamento em chips Apple silicon utilizando a estrutura Metal Performance Shaders (MPS). Especifique 'mps' como seu dispositivo de treino.

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 Treino com Apple Silicon MPS.

Quais são as configurações comuns de treino e como as configuro?

O Ultralytics YOLO26 permite que você configure uma variedade de configurações de treino, como tamanho de lote, taxa de aprendizado, épocas e mais, através de argumentos. Aqui está uma breve visão geral:

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

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

Comentários