Ir para o conteúdo

Receita de treino do YOLO26

Introdução

Este guia descreve exatamente treino receita utilizada para produzir o produto oficial YOLO26 pontos de verificação pré-treinados em COCO. Cada hiperparâmetro O que aqui se mostra já está integrado na versão lançada .pt ponderados e podem ser inspecionados programaticamente.

Compreender como os modelos base foram treinados ajuda-o a tomar melhores decisões durante o ajuste fino: quais as técnicas de aumento de dados que deve manter, quais os pesos da função de perda que deve ajustar e quais as configurações do otimizador que funcionam melhor para o tamanho do seu conjunto de dados.

A quem se destina este guia?

Este guia destina-se a profissionais que pretendem compreender os elementos que constituem os checkpoints oficiais do YOLO26 — não apenas a arquitetura, mas também os esquemas de taxa de aprendizagem, os pipelines de aumento de dados e os pesos de perda que determinaram o seu desempenho. Utilize estas informações para tomar decisões informadas ao realizar o ajuste fino nos seus próprios dados.

Verificar os argumentos de treino

Cada Ultralytics armazena a configuração completa do treino utilizada para o gerar. Pode consultar estas definições a qualquer momento:

Verificar os argumentos de treino do ponto de controlo

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])
import torch

# Load any official checkpoint
ckpt = torch.load("yolo26n.pt", map_location="cpu", weights_only=False)

# Print all training arguments
for k, v in sorted(ckpt["train_args"].items()):
    print(f"{k}: {v}")

Isto funciona para qualquer .pt checkpoint — tanto versões oficiais como os seus próprios modelos ajustados. Para obter a lista completa de argumentos de treino configuráveis, consulte o Referência de configuração de formação.

Visão geral da formação

Todos os modelos base do YOLO26 foram treinados no COCO resolução de 640x640, utilizando o otimizador MuSGD com um tamanho de lote de 128. Os modelos foram inicializados a partir de pesos pré-treinados intermédios e aperfeiçoados com hiperparâmetros determinados através de pesquisa evolutiva. Os registos completos de treino e as métricas para cada tamanho de modelo estão disponíveis na Ultralytics :

Principais características de design em todos os tamanhos:

  • Formação integral (end2end=True) com cabeça individual NMS
  • Otimizador MuSGD que combina SGD atualizações ortogonalizadas do tipo Muon para pesos de redes convolucionais
  • Aumento significativo do mosaico (probabilidade de ~0,9-1,0) desativado nas últimas 10 épocas (close_mosaic=10)
  • Aumento agressivo da escala (0,56-0,95) para lidar com objetos de diferentes tamanhos
  • Rotação/deslocamento mínimos para a maioria dos tamanhos, mantendo a distorção geométrica baixa

Hiperparâmetros por tamanho do modelo

Otimizador e taxa de aprendizagem

ConfigurandoNSMLX
optimizerMuSGDMuSGDMuSGDMuSGDMuSGD
lr00.00540.000380.000380.000380.00038
lrf0.04950.8820.8820.8820.882
momentum0.9470.9480.9480.9480.948
weight_decay0.000640.000270.000270.000270.00027
warmup_epochs0.980.990.990.990.99
epochs24570806040
batch128128128128128
imgsz640640640640640

Estratégia de taxa de aprendizagem

O modelo N utilizou uma taxa de aprendizagem inicial mais elevada com um decréscimo acentuado (lrf=0.0495), enquanto os modelos S/M/L/X utilizaram um LR inicial muito mais baixo com um plano de aumento mais gradual (lrf=0.882). Isto reflete as diferentes dinâmicas de convergência entre modelos mais pequenos e modelos maiores — os modelos mais pequenos necessitam de atualizações mais agressivas para aprenderem de forma eficaz.

Pesos de Perda

ConfigurandoNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

O modelo N dá prioridade à perda DFL, enquanto os modelos S/M/L/X colocam a ênfase na regressão da caixa delimitadora. A perda de classificação mantém-se relativamente consistente em todos os tamanhos.

Pipeline de Aumento

Para uma explicação detalhada de cada técnica, consulte o guia de aumentoYOLO .

ConfigurandoNSMLX
mosaic0.9090.9920.9920.9920.992
mixup0.0120.050.4270.4270.427
copy_paste0.0750.4040.3040.4040.404
scale0.5620.90.950.950.95
fliplr0.6060.3040.3040.3040.304
degrees1.11~0~0~0~0
shear1.46~0~0~0~0
translate0.0710.2750.2750.2750.275
hsv_h0.0140.0130.0130.0130.013
hsv_s0.6450.3530.3530.3530.353
hsv_v0.5660.1940.1940.1940.194
bgr0.1060.00.00.00.0

Os modelos de maior dimensão utilizam, em geral, um aumento mais agressivo (maior mixup, cópia e colagem e escalonamento), uma vez que têm maior capacidade e beneficiam de uma regularização mais forte. O modelo N é o único tamanho com aumento significativo por rotação, cisalhamento e BGR.

Parâmetros de formação interna

Avançado: parâmetros internos do pipeline

Os pontos de verificação também contêm parâmetros que foram utilizados no pipeline de treino interno, mas que são não disponibilizadas como definições configuráveis pelo utilizador em default.yaml:

ConfigurandoDescriçãoNSMLX
muon_wAtualização do peso do muão no MuSGD0.5280.4360.4360.4360.436
sgd_wSGD do peso SGD no MuSGD0.6740.4790.4790.4790.479
cls_wPeso de classificação interna2.743.483.483.483.48
o2mPeso da perda de carga de um para muitos1.00.7050.7050.7050.705
topkAtribuição de rótulos «Top-k»85555

Estes valores são registados para garantir a reprodutibilidade, mas não é necessário defini-los durante o ajuste fino. Consulte as Perguntas Frequentes para obter mais detalhes.

Orientações para o ajuste fino

Ao ajustar o YOLO26 ao seu próprio conjunto de dados, não é necessário replicar todo o processo de pré-treino. Os pesos pré-treinados já incorporam os conhecimentos de aumento de dados e otimização adquiridos durante COCO . Para conhecer as melhores práticas de treino de modelos em geral, consulte Dicas para o treino de modelos.

Comece de forma simples

Ajustar com as predefinições

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
yolo train model=yolo26n.pt data=your-dataset.yaml epochs=100 imgsz=640

O ajuste fino com os valores predefinidos constitui uma boa base de partida. Apenas ajuste os hiperparâmetros se tiver um motivo específico para o fazer.

Quando ajustar

Small datasets (< 1,000 images):

  • Reduzir a intensidade do aumento: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Taxa de aprendizagem mais baixa: lr0=0.001
  • Use menos épocas com paciência: epochs=50, patience=20
  • Considere congelar as camadas da espinha dorsal: freeze=10

Conjuntos de dados de grande dimensão (> 50 000 imagens):

  • Seguir mais rigorosamente a receita de pré-treino
  • Considere optimizer=MuSGD para percursos mais longos
  • Aumento do aumento: mosaic=1.0, mixup=0.3, scale=0.9

Imagens específicas de cada área (aéreas, médicas, subaquáticas):

  • Aumento flipud=0.5 se a orientação vertical variar
  • Aumento degrees se os objetos aparecerem com rotações arbitrárias
  • Ajustar hsv_s e hsv_v se as condições de iluminação diferirem significativamente das do COCO

Para obter informações sobre a otimização automatizada de hiperparâmetros, consulte o guia de ajuste de hiperparâmetros.

Escolher o tamanho do modelo

ModeloIdeal ParaOrientações sobre o tamanho do lote
YOLO26nDispositivos periféricos, dispositivos móveis, em tempo real na CPULotes grandes (64-128) em GPUs de consumo
YOLO26sEquilíbrio entre velocidade e precisãoLotes médios (32-64)
YOLO26mMaior precisão com recursos computacionais moderadosLotes mais pequenos (16-32)
YOLO26lAlta precisão quando GPU disponívelLotes pequenos (8-16) ouGPU
YOLO26xMáxima precisão, implementação em servidorLotes pequenos (4-8) ouGPU

Para obter informações sobre as opções de exportação e implementação, consulte o Guia de exportação e as Opções de implementação de modelos.

FAQ

Como posso ver os hiperparâmetros exatos utilizados em qualquer ponto de verificação?

Carregue o ponto de verificação com torch.load() e aceder ao train_args tecla, ou use model.ckpt["train_args"] com a Ultralytics . Consulte Verificar os argumentos de treino para ver exemplos completos.

Por que é que o número de épocas difere consoante o tamanho do modelo?

Os modelos maiores convergem mais rapidamente no COCO têm maior capacidade. O modelo N precisou de 245 épocas, enquanto o modelo X precisou apenas de 40. Ao realizar o ajuste fino no seu próprio conjunto de dados, o número ideal de épocas depende do tamanho e da complexidade do seu conjunto de dados, e não do tamanho do modelo. Utilize a interrupção antecipada (patience) para encontrar automaticamente o ponto de paragem certo.

Devo usar o MuSGD para o ajuste fino?

Quando optimizer=auto (por predefinição), Ultralytics seleciona Ultralytics MuSGD para treinos mais longos (>10 000 iterações) e AdamW para os mais curtos. Pode definir explicitamente optimizer=MuSGD se preferir. Para mais informações sobre a seleção do otimizador, consulte o documentação de formação.

O que são muon_w, sgd_w, cls_w, o2m, e topk no posto de controlo?

Estes são parâmetros internos do pipeline de treino que gerou os pontos de verificação de base. São armazenados para garantir a reprodutibilidade, mas são não opções configuráveis pelo utilizador em default.yaml. Não é necessário defini-los durante o ajuste fino. Ver Parâmetros de formação interna para mais detalhes.

Posso reproduzir exatamente o pré-treino a partir do zero?

Os pontos de verificação foram criados utilizando um ramo de formação interno com funcionalidades adicionais que não constam na base de código pública (como a configuração o2m pesos e cls_w). É possível obter resultados muito semelhantes utilizando os hiperparâmetros documentados nesta página com o Ultralytics público Ultralytics , mas para uma reprodução exata é necessário utilizar o ramo interno.



📅 Criado há 0 dias ✏️ Atualizado há 0 dias
raimbekovm

Comentários