YOLO26 Eğitim Reçetesi#
Giriş#
Bu kılavuz, eğitim sırasında YOLO26 için COCO üzerinde resmî önceden eğitilmiş kontrol noktalarını üretmekte kullanılan tam reçeteyi belgeler. Burada gösterilen her hiperparametre, yayımlanan .pt ağırlıklarına zaten gömülüdür; ağırlıklarla birlikte epoch başına eğitim günlüğü ve çalıştırmanın kod revizyonu da sunulur ve tüm bunlar programatik olarak incelenebilir.
Resmî kontrol noktalarının oluşturulmasında rol oynayan unsurları — yalnızca mimariyi değil, performanslarını şekillendiren öğrenme oranı çizelgelerini, veri artırma işlem hatlarını ve kayıp ağırlıklarını da — bilmek, ince ayar yaparken daha iyi kararlar almana yardımcı olur: hangi veri artırma yöntemlerini koruyacağını, hangi kayıp fonksiyonu ağırlıklarını ayarlayacağını ve veri kümenin boyutuna göre hangi optimizasyon algoritması ayarlarının en iyi sonucu vereceğini.
Bu sayfada yayımlanan kontrol noktalarında kaydedilen hiperparametreler ele alınır. Mimari, kayıp ve etiket atama değişiklikleri ile ablasyonlar da dâhil olmak üzere bunların ardındaki gerekçeler için Ultralytics YOLO26: Birleşik Gerçek Zamanlı Uçtan Uca Görsel Modeller makalesini oku.
Eğitime Genel Bakış#
Tüm YOLO26 temel modelleri iki aşamada eğitildi: 150 epoch süren Objects365v1 ön eğitimi ve ardından COCO ince ayarı. Her iki aşama da 640x640 çözünürlükte, MuSGD optimizer'ı ve 128 batch boyutuyla yürütüldü. Hiçbir YOLO26 kontrol noktası rastgele ağırlıklardan başlayarak COCO üzerinde eğitilmedi; bu nedenle çoğu boyutta COCO aşaması kısadır ve COCO aşamasının hiperparametreleri evrimsel aramayla bulundu. Her model boyutuna ait tam eğitim günlükleri ve metrikler yayımlanan kontrol noktalarının içinde saklanır ve Ultralytics Platform üzerinde grafik olarak gösterilir.
Tüm boyutlarda öne çıkan tasarım tercihleri:
- COCO aşamasından önce her boyut için Objects365 ön eğitimi
- Hem one-to-many hem de one-to-one denetimi kullanan çift başlıklı eğitim; çıkarımda varsayılan olarak NMS kullanılır,
nms=Falseise NMS içermeyen başlığı seçer - Ağırlık matrisleri (2D doğrusal ağırlıklar ve 2D'ye yeniden şekillendirilen 4D evrişim filtreleri) için SGD'yi Muon tarzı ortogonalleştirilmiş güncellemelerle birleştiren MuSGD optimizer'ı
- Yoğun mozaik veri artırma (~0.9-1.0 olasılık), son epoch'larda devre dışı bırakılır (ön eğitimde
close_mosaic=8, COCO'daclose_mosaic=10) - Farklı boyutlardaki nesneleri ele almak için agresif ölçek veri artırma (0.5-0.95)
- Geometrik bozulmayı düşük tutmak için çoğu boyutta asgari düzeyde döndürme/kaydırma
Aşama 1: Objects365 Ön Eğitimi#
Her YOLO26 COCO kontrol noktası, aynı boyuttaki bir Objects365v1 kontrol noktasından ince ayar yapılarak oluşturuldu. Bu önceden eğitilmiş ağırlıklar da yayımlandı ve Objects365 veri kümesi sayfasında belgelendi. Her COCO kontrol noktası, başlangıç ağırlıklarının adını .pt dosyasına gömülü eğitim yapılandırmasında belirtir; aşağıdaki YOLO26 Kontrol Noktası Eğitim Argümanlarını İnceleme bölümü bunların nasıl okunacağını gösterir:
| COCO kontrol noktası | Başlangıç ağırlıkları |
|---|---|
yolo26n.pt | yolo26n-objv1-150.pt |
yolo26s.pt | yolo26s-objv1-150.pt |
yolo26m.pt | yolo26m-objv1-150.pt |
yolo26l.pt | yolo26l-objv1-150.pt |
yolo26x.pt | yolo26x-objv1-150.pt |
Ön eğitimde, aramayla bulunan değerler yerine çoğunlukla varsayılan ayarlar kullanıldı. lr0, lrf, momentum, weight_decay, box ve cls, default.yaml ile eşleşirken warmup_epochs, close_mosaic ve dfl için farklı değerler kullanıldı. X modelindeki warmup_epochs, veri artırma güçleri ve tablolardan sonra listelenen dahili MuSGD ve başlık ağırlıkları dışında ayarlar tüm boyutlarda ortaktır:
| Ayar | Değer |
|---|---|
data | Objects365v1 |
epochs | 150 |
imgsz | 640 |
batch | 128 |
optimizer | MuSGD |
lr0 / lrf | 0.01 / 0.01 |
momentum | 0.937 |
weight_decay | 0.0005 |
warmup_epochs | 1 (X için 2) |
close_mosaic | 8 |
box / cls / dfl | 7.5 / 0.5 / 6.0 |
| Veri artırma | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
mixup | 0.0 | 0.05 | 0.15 | 0.15 | 0.2 |
copy_paste | 0.1 | 0.15 | 0.4 | 0.5 | 0.6 |
scale | 0.5 | 0.9 | 0.9 | 0.9 | 0.9 |
Bu tablolar, tüm yapılandırmayı değil, ön eğitimi şekillendiren ayarları kapsar. Kontrol noktaları 100'den fazla argüman kaydeder; bu nedenle yetkili liste için aşağıda gösterildiği gibi train_args değerini yazdır.
İleri düzey: dahili ön eğitim parametreleri
Ön eğitimde ayrıca Dahili Eğitim Parametreleri bölümünde açıklanan türden deneysel dal parametreleri de değiştirildi. cls_w tüm boyutlarda 1.0 değerindeydi:
| Ayar | N | S | M | L | X |
|---|---|---|---|---|---|
muon_w | 0.45 | 0.5 | 0.45 | 0.45 | 0.5 |
sgd_w | 0.55 | 0.5 | 0.55 | 0.55 | 0.6 |
o2m | 0.1 | 0.1 | 0.1 | 1.0 | 1.0 |
1. aşamayı yeniden kullanmak için Objects365 veri kümesine ihtiyacın yok. Önceden eğitilmiş ağırlıklar, diğer Ultralytics varlıkları gibi otomatik olarak indirilir; böylece bu ağırlıklara kendi veri kümen üzerinde ince ayar yapabilirsin:
from ultralytics import YOLO
model = YOLO("yolo26s-objv1-150.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)Bunun yerine COCO aşamasını yeniden çalıştırmak için aynı ağırlıklardan başla ve aşağıdaki tablolarda ilgili boyut için verilen 2. aşama optimizer, loss ve artırma değerlerini kullan. Tablolarda warmup_momentum, warmup_bias_lr, perspective, flipud ve cutmix gibi varsayılan olmayan daha küçük argümanlar yer almadığından, tam yapılandırmayı görmek için kontrol noktasından train_args değerini yazdır. Dahili parametreler yayımlanan paket tarafından kabul edilmez; bunları kullanmak için deneysel dal gerekir.
YOLO26 Kontrol Noktası Eğitim Argümanlarını İnceleme#
Her Ultralytics kontrol noktası, kendisini oluşturmak için kullanılan eğitim yapılandırmasının tamamını saklar; böylece bu sayfadaki her sayıyı kendin doğrulayabilirsin:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])Çıktı, bu sayfada belgelenen tüm tarif değerleri dâhil 100'den fazla girdinin tam yapılandırmasını listeler. yolo26n.pt için bir alıntı:
batch: 128
...
box: 5.62767
...
close_mosaic: 10
cls: 0.56099
...
dfl: 9.03871
...
epochs: 245
...
lr0: 0.0054
lrf: 0.04952
...
optimizer: MuSGDBu, hem resmî sürümler hem de kendi ince ayar yaptığın modeller olmak üzere tüm .pt kontrol noktalarında çalışır. Yapılandırılabilir eğitim argümanlarının tam listesi için eğitim yapılandırması başvurusuna bak.
Eğitim Eğrilerini Görüntüleme#
Saklanan tek şey train_args değildir. Her kontrol noktası, onu oluşturan çalışmanın her dönemine ait eksiksiz results.csv verilerini ve son doğrulama metriklerini de içerir. Resmî YOLO26 kontrol noktalarının eğrileri Ultralytics Platform'da yayımlanır; ayrıca herhangi bir .pt dosyasını bir projeye sürükleyip bırakabilir ve dosyadaki meta verilerin otomatik olarak ayrıştırılmasıyla aynı verileri grafik hâlinde görüntüleyebilirsin.
Her kontrol noktası, onu oluşturan aşamayı kapsar; bu nedenle COCO eğrileri yolo26s.pt içinde, 150 dönemlik Objects365 eğrileri ise yolo26s-objv1-150.pt içinde bulunur.
Kod Revizyonunu Kontrol Etme#
ckpt["git"], kontrol noktasını oluşturan commit'i kaydeder. Bu commit'ler Ultralytics deposunun herkese açık deneysel dallarında bulunduğundan, eğitim kodunun tam sürümünü alabilirsin:
from ultralytics import YOLO
print(YOLO("yolo26n.pt").ckpt["git"])
# {'root': ..., 'branch': 'exp-main', 'commit': 'cb13d5f9cfbd6f299da3620c625f81d721dc2849', ...}git fetch origin cb13d5f9cfbd6f299da3620c625f81d721dc2849
git checkout cb13d5f9cfbd6f299da3620c625f81d721dc2849Deneysel dallar, main sürümüne hiç eklenmemiş çalışmaları (yapılandırılabilir o2m ve cls_w gibi) içerir. Aşağıda belgelenen hiperparametrelerle main üzerinde eğitim yapmak bit düzeyinde aynı sonucu vermez, ancak yayımlanmış metriklerden ihmal edilebilir ölçüde farklı sonuçlar üretir.
Model Boyutuna Göre YOLO26 Eğitim Hiperparametreleri#
Bunlar, yukarıdaki Objects365 ağırlıklarına uygulanan 2. aşama değerleridir. Aşağıdaki tablolar tarifi kategorilere ayırır: optimizer ve zamanlama, loss ağırlıkları ve artırma. Her değer, yayımlanan kontrol noktalarına gömülü train_args yapılandırmasından alınmıştır.
Optimizer ve Öğrenme Oranı#
Bu optimizer ve zamanlama ayarları, her boyut için COCO ince ayar sürecini yönlendirdi; N modelinin diğerlerinden nasıl ayrıldığına dikkat et:
| Ayar | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
N modeli, hızlı azalma (lrf=0.0495) ile daha yüksek bir başlangıç öğrenme oranı kullandı; S/M/L/X modelleri ise daha yumuşak bir zamanlamayla (lrf=0.882) çok daha düşük bir başlangıç öğrenme oranı kullandı. Bu, küçük ve büyük modellerin farklı yakınsama dinamiklerini yansıtır: küçük modellerin etkili öğrenebilmesi için daha agresif güncellemelere ihtiyacı vardır.
Loss Ağırlıkları#
Loss ağırlıkları, tespit loss'unun üç bileşenini dengeler: sınırlayıcı kutu IoU regresyonu (box), sınıflandırma (cls) ve kutu uzaklığı regresyon terimi (dfl). DFL içermeyen YOLO26'nın dfl kazancını dağılım odaklı loss yerine normalize edilmiş kutu uzaklıkları üzerinde L1 loss'u ağırlıklandırmak için kullandığını unutma:
| Ayar | N | S | M | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
N modeli, dfl uzaklık regresyon terimine öncelik verirken S/M/L/X modelleri vurguyu IoU tabanlı kutu regresyonuna kaydırır. Sınıflandırma loss'u tüm boyutlarda nispeten tutarlıdır.
Artırma İşlem Hattı#
Her tekniğin ayrıntılı açıklaması için YOLO Veri Artırma kılavuzuna bak.
| Ayar | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
~0 olarak gösterilen değerler gerçek kontrol noktalarında 0,01'in altındadır (örneğin S modeli için degrees=0.00012); yani artırma pratikte devre dışıdır.
Daha büyük modeller genel olarak daha agresif artırma (daha yüksek mixup ve ölçek) kullanır; çünkü kapasiteleri daha fazladır ve daha güçlü düzenlileştirmeden yararlanırlar. Anlamlı düzeyde döndürme, kesme ve BGR artırması kullanan tek boyut N modelidir.
Dahili Eğitim Parametreleri#
İleri düzey: dahili işlem hattı parametreleri
Kontrol noktaları, deneysel eğitim dalında kullanılan ancak default.yaml içinde kullanıcı tarafından yapılandırılabilir ayarlar olarak sunulmayan parametreleri de içerir:
| Ayar | Açıklama | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | MuSGD'de Muon güncelleme ağırlığı | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | MuSGD'de SGD güncelleme ağırlığı | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Dahili sınıflandırma ağırlığı | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Bire-çok başlık loss ağırlığı | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Top-k etiket ataması | 8 | 5 | 5 | 5 | 5 |
İnce ayar sırasında ne anlama geldiklerini öğrenmek için bu parametrelere ilişkin SSS yanıtına bak.
YOLO26'yı Kendi Veri Kümen Üzerinde İnce Ayarlama#
YOLO26'yı kendi veri kümen üzerinde ince ayarlarken ön eğitim tarifinin tamamını tekrarlaman gerekmez. Önceden eğitilmiş ağırlıklar, COCO eğitiminin artırma ve optimizasyon bilgisini zaten içerir. Genel eğitim en iyi uygulamaları için Model Eğitimi İpuçları sayfasına bak.
Varsayılan Ayarlarla İnce Ayar#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)Varsayılanlarla ince ayar yapmak güçlü bir başlangıç noktasıdır. Hiperparametreleri yalnızca belirli bir nedenin varsa değiştir.
YOLO26 Hiperparametrelerini Ne Zaman Ayarlamalısın?#
Küçük veri kümeleri (< 1.000 görüntü):
- Artırma şiddetini azalt:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - Açıkça belirtilmiş bir optimizer ile öğrenme oranını düşür:
optimizer=AdamW,lr0=0.001 - Sabır değeriyle birlikte daha az dönem kullan:
epochs=50,patience=20 - Omurga katmanlarını dondurmayı değerlendir:
freeze=10
Büyük veri kümeleri (> 50.000 görüntü):
- Ön eğitim tarifine daha yakından uy
- Daha uzun çalışmalar için
optimizer=MuSGDkullanmayı değerlendir - Artırmayı artır:
mosaic=1.0,mixup=0.3,scale=0.9
Belirli alanlara özgü görüntüler (hava, tıbbi, su altı):
- Dikey yönelim değişkenlik gösteriyorsa
flipud=0.5değerini artır - Nesneler rastgele açılarda görünüyorsa
degreesdeğerini artır - Aydınlatma koşulları COCO'dan önemli ölçüde farklıysa
hsv_svehsv_vdeğerlerini ayarla
Otomatik hiperparametre optimizasyonu için Hiperparametre Ayarlama kılavuzuna bak.
Model Boyutu Seç#
| Model | En Uygun Kullanım Alanı | Batch Boyutu Rehberi |
|---|---|---|
| YOLO26n | Uç cihazlar, mobil, CPU üzerinde gerçek zamanlı kullanım | Tüketici GPU'larında büyük batch boyutları (64-128) |
| YOLO26s | Hız ve doğruluk dengesi | Orta büyüklükte batch boyutları (32-64) |
| YOLO26m | Orta düzey hesaplama gücüyle daha yüksek doğruluk | Daha küçük batch boyutları (16-32) |
| YOLO26l | GPU mevcutsa yüksek doğruluk | Küçük batch boyutları (8-16) veya çoklu GPU |
| YOLO26x | Maksimum doğruluk, sunucu dağıtımı | Küçük batch boyutları (4-8) veya çoklu GPU |
Dışa aktarma ve dağıtım seçenekleri için Dışa Aktarma kılavuzuna ve Model Dağıtım Seçenekleri sayfasına bak.
Sonuç#
YOLO26 kontrol noktaları, eksiksiz eğitim tariflerini içlerinde taşır; böylece her model boyutunun tam hiperparametrelerine tek bir train_args sorgusuyla ulaşabilirsin. İnce ayara varsayılanlarla başla, bu sayfadaki tabloları kullanarak bilinçli değişiklikler yap ve her değişikliği kendi doğrulama kümenle kontrol et. Süreç boyunca soruların olursa Ultralytics GitHub deposunda veya Ultralytics Discord sunucusunda topluluğa sor.
Sık Sorulan Sorular#
Kontrol noktasını
torch.load()ile yükleyiptrain_argsanahtarına eriş veya Ultralytics API ilemodel.ckpt["train_args"]kullan. Tam örnekler için YOLO26 Kontrol Noktası Eğitim Argümanlarını İnceleme sayfasına bak.Her boyut, Objects365 üzerinde aynı 150 dönemlik ön eğitimi aldı; dolayısıyla COCO sayıları yalnızca ince ayar aşamasını kapsar. Büyük modeller COCO'da bu aşamanın daha az döneminde yakınsar: X modeli 40, N modeli 245 dönem kullandı. Sayılar kesin olarak artan bir sıra izlemez (S modeli 70, M modeli 80 dönem kullandı); çünkü model boyutuna özel hiperparametre aramasından elde edildiler. Kendi veri kümen üzerinde ince ayar yaparken en uygun dönem sayısı model boyutuna değil, veri kümenin boyutuna ve karmaşıklığına bağlıdır. Uygun durdurma noktasını otomatik olarak bulmak için erken durdurmayı (
patience) kullan.Bunlar, temel kontrol noktalarını oluşturan deneysel daldan gelir ve yeniden üretilebilirlik için
train_argsiçinde kaydedilmiştir.default.yamliçinde kullanıcı tarafından yapılandırılabilir ayarlar değildir ve yayımlanan paket bunları okumadığındanmodel.train()parametresine aktarıldıklarında geçersiz argüman hatası oluşur. İnce ayar yaparken bunları ayarlaman gerekmez; her model boyutunun değerleri için Dahili Eğitim Parametreleri sayfasına bak.Hayır. Her COCO kontrol noktası, 1. Aşama: Objects365 Ön Eğitimi bölümünde ve YOLO26 makalesinde açıklandığı gibi, aynı boyuttaki ve Objects365v1 üzerinde önceden 150 dönem eğitilmiş bir kontrol noktasından ince ayar yapılarak oluşturuldu. Yayımlanan sayıların arkasında sıfırdan yürütülmüş bir COCO eğitimi yoktur; bu nedenle sıfırdan eğitim sonuçlarını bu sayılarla karşılaştırmak eşdeğer bir karşılaştırma olmaz.
Kontrol noktalarının içinde bulunurlar ve Ultralytics Platform'da grafik hâlinde görüntülenirler. Her kontrol noktası, çalışmasının dönem başına eksiksiz
results.csvverilerini saklar; bu nedenle bir.ptdosyasını Platform projesine bırakmak, herhangi bir kod kullanmadan loss değerlerini, mAP ilerlemesini ve öğrenme oranlarını grafik hâlinde gösterir. Eğitim Eğrilerini Görüntüleme bölümüne bak. Objects365 aşamasınınyolo26*-objv1-150.ptkontrol noktalarında kendine ait bir günlüğü vardır.Yayımlanan metriklere yakın sonuçlar elde edersin, ancak sonuçlar birebir aynı olmaz. Birebir aynı kurulum için kontrol noktasında kaydedilen commit'i al ve o dalda eğitim yap. Kod Revizyonunu Kontrol Etme bölümüne bak.