Link to this sectionTreinamento de Modelo com Ultralytics YOLO#
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.
- 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.
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.
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.
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])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.pyLink 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.
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:
- Menores percentagens de utilização atual
- Maior memória disponível (VRAM livre)
- 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:
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:
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=MuSGDConsulta a implementação em ultralytics/optim/muon.py e a lógica de auto-seleção de otimizador em BaseTrainer.build_optimizer.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Especifica 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. |
data | str | None | Caminho 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. |
epochs | int | 100 | Nú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. |
time | float | None | Tempo 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. |
patience | int | 100 | Nú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. |
batch | int ou float | 16 | Batch 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). |
imgsz | int | 640 | Tamanho 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. |
save | bool | True | Habilita o salvamento de checkpoints de treinamento e pesos finais do modelo. Útil para retomar o treinamento ou para model deployment. |
save_period | int | -1 | Frequê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. |
cache | bool | False | Habilita 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. |
device | int ou str ou list | None | Especifica 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]) |
workers | int | 8 | Nú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. |
project | str | None | Nome do diretório do projeto onde as saídas do treinamento são salvas. Permite o armazenamento organizado de diferentes experimentos. |
name | str | None | Nome 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_ok | bool | False | Se 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. |
pretrained | bool ou str | True | Determina 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. |
optimizer | str | '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. |
seed | int | 0 | Define a semente aleatória para o treinamento, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações. |
deterministic | bool | True | Forç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. |
verbose | bool | True | Ativa a saída detalhada durante o treinamento, exibindo barras de progresso, métricas por época e informações adicionais de treinamento no console. |
single_cls | bool | False | Trata 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. |
classes | list[int] | None | Especifica uma lista de IDs de classes para treinar. Útil para filtrar e focar apenas em certas classes durante o treinamento. |
rect | bool | False | Ativa 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_scale | float | 0.0 | Varia 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_lr | bool | False | Utiliza 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_mosaic | int | 10 | Desativa 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. |
resume | bool | False | Retoma 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. |
amp | bool | True | Ativa 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. |
fraction | float | 1.0 | Especifica 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. |
profile | bool | False | Ativa a criação de perfil (profiling) das velocidades de ONNX e TensorRT durante o treinamento, útil para otimizar a implantação do modelo. |
freeze | int ou list | None | Congela 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. |
lr0 | float | 0.01 | Taxa 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. |
lrf | float | 0.01 | Taxa 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. |
momentum | float | 0.937 | Fator de momentum para SGD ou beta1 para otimizadores Adam, influenciando a incorporação de gradientes passados na atualização atual. |
weight_decay | float | 0.0005 | Termo de regularização L2, penalizando pesos grandes para evitar o overfitting. |
warmup_epochs | float | 3.0 | Nú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_momentum | float | 0.8 | Momentum inicial para a fase de aquecimento, ajustando-se gradualmente ao momentum definido durante o período de aquecimento. |
warmup_bias_lr | float | 0.1 | Taxa de aprendizado para parâmetros de bias durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais. |
box | float | 7.5 | Peso 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. |
cls | float | 0.5 | Peso 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_pw | float | 0.0 | Potê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. |
dfl | float | 1.5 | Peso da perda focal de distribuição (distribution focal loss), usada em certas versões do YOLO para classificação de granulação fina. |
pose | float | 12.0 | Peso da perda de pose em modelos treinados para estimativa de pose, influenciando a ênfase na previsão precisa dos pontos-chave de pose. |
kobj | float | 1.0 | Peso 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. |
rle | float | 1.0 | Peso 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. |
angle | float | 1.0 | Peso da perda de ângulo em modelos obb, afetando a precisão das previsões de ângulo da caixa delimitadora orientada. |
nbs | int | 64 | Tamanho de lote nominal para normalização da perda. |
overlap_mask | bool | True | Determina 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_ratio | int | 4 | Taxa de downsample para máscaras de segmentação, afetando a resolução das máscaras usadas durante o treinamento. |
dropout | float | 0.0 | Taxa de dropout para regularização em tarefas de classificação, evitando o overfitting ao omitir unidades aleatoriamente durante o treinamento. |
val | bool | True | Ativa a validação durante o treinamento, permitindo a avaliação periódica do desempenho do modelo em um conjunto de dados separado. |
plots | bool | True | Gera 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. |
compile | bool ou str | False | Ativa 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_det | int | 300 | Especifica o número máximo de objetos retidos durante a fase de validação do treinamento. |
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=-1para 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:
| Argumento | Tipo | Predefinição | Tarefas Suportadas | Intervalo | Descrição |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Ajusta 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_s | float | 0.7 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Altera a saturação da imagem por uma fração, afetando a intensidade das cores. Útil para simular diferentes condições ambientais. |
hsv_v | float | 0.4 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Modifica o valor (brilho) da imagem por uma fração, ajudando o modelo a ter um bom desempenho sob diversas condições de iluminação. |
degrees | float | 0 | detect, segment, pose, obb | 0.0 - 180 | Rotaciona a imagem aleatoriamente dentro do intervalo de graus especificado, melhorando a capacidade do modelo de reconhecer objetos em várias orientações. |
translate | float | 0.1 | detect, segment, pose, obb | 0.0 - 1.0 | Translada a imagem horizontal e verticalmente por uma fração do tamanho da imagem, ajudando a aprender a detectar objetos parcialmente visíveis. |
scale | float | 0.5 | detect, segment, pose, obb, classify | 0 - 1 | Escala a imagem por um fator de ganho, simulando objetos a diferentes distâncias da câmera. |
shear | float | 0 | detect, segment, pose, obb | -180 - +180 | Inclina a imagem por um grau especificado, imitando o efeito de objetos sendo vistos de diferentes ângulos. |
perspective | float | 0 | detect, segment, pose, obb | 0.0 - 0.001 | Aplica uma transformação de perspectiva aleatória à imagem, aprimorando a capacidade do modelo de entender objetos no espaço 3D. |
flipud | float | 0 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Inverte a imagem de cima para baixo com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as características do objeto. |
fliplr | float | 0.5 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Inverte 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. |
bgr | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Inverte os canais da imagem de RGB para BGR com a probabilidade especificada, útil para aumentar a robustez a ordenações incorretas de canais. |
mosaic | float | 1 | detect, segment, pose, obb | 0.0 - 1.0 | Combina 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. |
mixup | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Mistura 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. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Combina 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_paste | float | 0 | segment | 0.0 - 1.0 | Copia e cola objetos entre imagens para aumentar as instâncias de objetos. |
copy_paste_mode | str | flip | segment | - | Especifica a estratégia de copy-paste a ser usada. As opções incluem 'flip' e 'mixup'. |
auto_augment | str | randaugment | classify | - | Aplica uma política de aumento predefinida ('randaugment', 'autoaugment' ou 'augmix') para aprimorar o desempenho do modelo através da diversidade visual. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Apaga aleatoriamente regiões da imagem durante o treinamento para incentivar o modelo a focar em características menos óbvias. |
augmentations | list | `` | 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.
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:
# 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:
# 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:
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directoryPara usar o TensorBoard localmente, execute o comando abaixo e veja os resultados em localhost:6006.
tensorboard --logdir ultralytics/runs # replace with 'runs' directoryIsso 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:
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.
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 classescls_pw=1.0: Aplica ponderação de frequência inversa total- Valores entre
0.0e1.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.
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)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.
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:
| Argumento | Predefinição | Descrição |
|---|---|---|
model | None | Caminho para o arquivo do modelo para treinamento. |
data | None | Caminho para o arquivo de configuração do conjunto de dados (por exemplo, coco8.yaml). |
epochs | 100 | Número total de épocas de treinamento. |
batch | 16 | Tamanho do lote (batch size), ajustável como inteiro ou modo automático. |
imgsz | 640 | Tamanho de imagem alvo para o treinamento. |
device | None | Dispositivo(s) computacional(is) para treinamento como cpu, 0, 0,1 ou mps. |
save | True | Habilita 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.