Treinamento de Modelos com o 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 de treinamento no Ultralytics YOLO26 foi projetado para um 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 que você precisa para 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 de treinamento 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 próprio treinador.
  • Treinamento na 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 de Treinamento

Os seguintes são alguns recursos notáveis do modo de treinamento 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 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 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 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 dos argumentos de treinamento.

Erro de Multiprocessamento 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 resolvê-lo.

Exemplo de Treinamento em 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)

Treinamento Multi-GPU

O treinamento Multi-GPU permite uma utilização mais eficiente dos recursos de hardware disponíveis ao distribuir a carga de treinamento entre várias GPUs. Esse 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 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

Quando você especifica 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 o uso padrão via CLI 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 em GPU Ociosa

O Treinamento em GPU Ociosa permite a seleção automática das GPUs menos utilizadas em sistemas multi-GPU, otimizando o uso de recursos sem a seleção manual da GPU. Esse recurso 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, use o parâmetro de dispositivo -1. Isso é particularmente útil em ambientes de computação compartilhados ou servidores com múltiplos 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 seleção automática prioriza GPUs com:

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

Esse recurso é especialmente valioso em ambientes de computação compartilhados ou ao executar múltiplos 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 MPS no Apple Silicon

Com o suporte para chips Apple Silicon integrado nos modelos Ultralytics YOLO, agora é possível treinar seus modelos em dispositivos que utilizam o poderoso framework 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 Apple Silicon, 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 Apple Silicon, 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 a partir 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 epochs.

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 epoch. 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 epoch por padrão, ou em intervalos fixos usando o argumento save_period, portanto, você deve concluir pelo menos 1 epoch 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 (batch size), taxa de aprendizado, momentum e decaimento de peso (weight decay). Além disso, a escolha do otimizador, da função de perda e a composição do conjunto de dados de treinamento podem impactar o processo. O ajuste cuidadoso e a experimentação com essas configurações são cruciais para otimizar o desempenho.

Otimizador MuSGD

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

Ele é recomendado para execuções de treinamento mais longas do YOLO26 e conjuntos de dados maiores, onde as 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 o SGD, enquanto parâmetros de menor dimensão, como camadas de normalização em lote e termos de viés (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 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 seleção automática do otimizador em BaseTrainer.build_optimizer.

ArgumentoTipoPredefiniçãoDescrição
modelstrNoneEspecifica o ficheiro de 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, substitui o argumento epochs, permitindo que o treino pare automaticamente após a duração especificada. Útil para cenários de treino com restrições de tempo.
patienceint100Número de épocas a esperar sem melhoria nas métricas de validação antes de parar o treino antecipadamente. Ajuda a prevenir o sobreajuste 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 de 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 o 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 para 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 intercalares durante sessões de treino longas.
cacheboolFalseAtiva a cache de imagens do conjunto de dados na memória (True/ram), no disco (disk), ou desativa-a (False). Melhora a velocidade de 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(is) para o 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 o treino for Multi-GPU). Influencia a velocidade do pré-processamento de dados e o fornecimento ao modelo, especialmente útil em configurações multi-GPU.
projectstrNoneNome do diretório do projeto onde as saídas do treino são guardadas. Permite o armazenamento organizado de diferentes experiências.
namestrNoneNome da execução do treino. Utilizado para criar um subdiretório dentro da pasta do projeto, onde os registos e saídas do treino são armazenados.
exist_okboolFalseSe Verdadeiro, permite a substituição de um diretório de projeto/nome existente. Útil para experimentação iterativa sem necessidade de limpar manualmente as saídas anteriores.
pretrainedbool ou strTrueDetermina se o treino deve começar 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, mantendo 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 baseada na configuração do modelo. Afeta a velocidade de convergência e estabilidade.
seedint0Define a semente aleatória para 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 podendo afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos.
verboseboolTrueAtiva a saída verbosa durante o treino, apresentando barras de progresso, métricas por época e informações adicionais de treino na consola.
single_clsboolFalseTrata todas as classes em conjuntos de dados multiclasse 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 classes 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 imgsz em cada lote por +/- multi_scale (por exemplo, 0.25 -> 0.75x a 1.25x), arredondando para múltiplos do passo do modelo; 0.0 desativa o treino multi-escala.
cos_lrboolFalseUtiliza um programador de taxa de aprendizagem de cosseno, ajustando a taxa de aprendizagem seguindo uma curva de cosseno ao longo das épocas. Ajuda na gestão da taxa de aprendizagem para uma melhor convergência.
close_mosaicint10Desativa o aumento de dados tipo mosaico nas últimas N épocas para estabilizar o treinamento antes da conclusão. Definir como 0 desativa este recurso.
resumeboolFalseRetoma o treinamento a partir do último ponto de verificação salvo. Carrega automaticamente os pesos do modelo, o estado do otimizador e a contagem de épocas, continuando o treinamento perfeitamente.
ampboolTrueAtiva o treinamento com Precisão Mista (AMP) automática, 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 de 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 aprendizado por transferência.
lr0float0.01Taxa de aprendizado inicial (por exemplo, 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 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 sobreajuste (overfitting).
warmup_epochsfloat3.0Número de épocas para 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.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 viés durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais.
boxfloat7.5Peso do componente de perda da 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 classe usando a frequência inversa da classe. 0.0 desativa a ponderação de classe, 1.0 aplica ponderação de frequência inversa total. Valores entre 0 e 1 fornecem ponderação parcial.
dflfloat1.5Peso da perda focal de distribuição, 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 (keypoints) da pose.
kobjfloat1.0Peso da perda de objetividade dos pontos-chave em modelos de estimativa de pose, equilibrando a confiança na 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 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_ratioint4Taxa de subamostragem 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". Retorna ao modo imediato (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:

  • Batch Size Fixo: Defina um valor inteiro (por exemplo, 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 da memória CUDA.
  • Modo Automático 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 do uso da memória da GPU.
  • Auto-Tentativa em caso de OOM: Se ocorrer um erro de falta de memória CUDA (out-of-memory) durante a primeira epoch, 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:

ArgumentoTipoPredefiniçã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 sob 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 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.0Transladar a imagem horizontal e verticalmente por uma fração do tamanho da imagem, auxiliando no aprendizado da detecção de 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 ângulos diferentes.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Aplica uma transformação de perspectiva aleatória à imagem, aumentando a capacidade do modelo de entender objetos no espaço 3D.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Inverte a imagem de cabeça 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 a ordenação incorreta 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.0Mescla duas imagens e seus rótulos, criando uma imagem composta. Aprimora a capacidade do modelo de generalizar introduzindo ruído nos rótulos e variabilidade visual.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Combina partes de duas imagens, criando uma mesclagem parcial enquanto mantém regiões distintas. Aprimora a robustez do modelo criando 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 do Albumentations para aumento de dados avançado (apenas API Python). Aceita uma lista de objetos de transformação para necessidades de aumento especializadas.

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

Informações

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

Registro (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 jogo. O Ultralytics YOLO oferece suporte para três tipos de registradores - Comet, ClearML e TensorBoard.

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

Comet

Comet é uma plataforma que permite que cientistas de dados e desenvolvedores rastreiem, comparem, expliquem e otimizem experimentos e modelos. Ele fornece funcionalidades como métricas em tempo real, diferenças de código (code diffs) e rastreamento de hiperparâmetros.

Para usar o Comet:

Exemplo
# pip install comet_ml
import comet_ml

comet_ml.init()

Lembra-te de iniciar sessão na tua conta Comet no site deles e obter a tua chave API. Precisarás de adicioná-la às tuas variáveis de ambiente ou ao teu script para registar as tuas experiências.

ClearML

ClearML é uma plataforma de código aberto que automatiza o rastreamento de experiências e ajuda na partilha eficiente de recursos. Foi concebida para ajudar as equipas a gerir, executar e reproduzir o 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, precisarás de iniciar sessão na tua conta ClearML no navegador e autenticar a tua sessão.

TensorBoard

TensorBoard é um kit de ferramentas de visualização para TensorFlow. Permite visualizar o teu grafo do TensorFlow, plotar métricas quantitativas sobre a execução do teu grafo e mostrar 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, executa o comando abaixo e visualiza os resultados em localhost:6006.

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

Isto carregará o TensorBoard e direcioná-lo-á para o diretório onde os teus registos de treino estão guardados.

Após configurar o teu logger, podes prosseguir com o treino do teu modelo. Todas as métricas de treino serão registadas automaticamente na plataforma escolhida, e podes aceder a estes registos para monitorizar o desempenho do teu modelo ao longo do tempo, comparar diferentes modelos e identificar áreas de melhoria.

FAQ

Posso treinar sem uma GPU local?

Sim. A Ultralytics Platform suporta treino na nuvem com créditos gratuitos para começares. Carrega o teu conjunto de dados, seleciona um modelo e uma GPU, e treina diretamente a partir do navegador. Vê o guia de treino na nuvem para detalhes.

Como treino um modelo de deteção de objetos usando Ultralytics YOLO26?

Para treinar um modelo de deteção de objetos usando Ultralytics YOLO26, podes usar a API de Python ou a CLI. Abaixo encontras 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, consulta a secção Definições de Treino.

Quais são as principais funcionalidades do modo de Treino do Ultralytics YOLO26?

As principais funcionalidades do modo de Treino do Ultralytics YOLO26 incluem:

  • Transferência Automática de Conjuntos de Dados: Transfere automaticamente conjuntos de dados padrão como COCO, VOC e ImageNet.
  • Suporte Multi-GPU: Escala o treino através de múltiplas GPUs para um processamento mais rápido.
  • Configuração de Hiperparâmetros: Personaliza hiperparâmetros através de ficheiros YAML ou argumentos da CLI.
  • Visualização e Monitorização: Rastreamento em tempo real de métricas de treino para melhores insights.

Estas funcionalidades tornam o treino eficiente e personalizável para as tuas necessidades. Para mais detalhes, vê a secção Principais Funcionalidades do Modo de Treino.

Como retomo o treino a partir de uma sessão interrompida no Ultralytics YOLO26?

Para retomar o treino a partir de uma sessão interrompida, define o argumento resume como True e especifica o caminho para o último checkpoint guardado.

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)

Consulta a secção sobre Retomar Treinos Interrompidos para mais informações.

Como treino um modelo num conjunto de dados desequilibrado?

O desequilíbrio de classes ocorre quando algumas classes têm significativamente menos exemplos do que outras nos teus dados de treino. Isto pode fazer com que o modelo tenha um desempenho fraco em classes raras. O Ultralytics YOLO suporta a ponderação de classes através do argumento cls_pw para resolver este 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 uma ponderação de frequência inversa total
  • Valores entre 0.0 e 1.0: Fornecem ponderação parcial para desequilíbrios moderados

Os pesos das classes são calculados como (1.0 / class_counts) ^ cls_pw e normalizados para que a sua média seja igual a 1.0.

Treino em Conjunto de Dados Desequilibrado
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

Começa com cls_pw=0.25 para conjuntos de dados moderadamente desequilibrados e aumenta para 1.0 se as classes raras continuarem com baixo desempenho. Podes verificar os pesos das classes calculados nos registos de treino para validar a distribuição dos pesos.

Posso treinar modelos YOLO26 em chips Apple silicon?

Sim, o Ultralytics YOLO26 suporta o treino em chips Apple silicon utilizando a estrutura Metal Performance Shaders (MPS). Especifica 'mps' como o teu 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, consulta a secção Treino MPS em Apple Silicon.

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

O Ultralytics YOLO26 permite configurar uma variedade de definições de treino, tais como tamanho do lote, taxa de aprendizagem, épocas e mais, através de argumentos. Aqui tens uma breve visão geral:

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

Para um guia aprofundado sobre definições de treino, consulta a secção Definições de Treino.

Comentários