İlk Modelini Eğit
Tek bir çağrıyla veri kümen üzerinde YOLO26'ya ince ayar yap, canlı eğitim günlüğünü satır satır oku ve çalıştırma klasöründe best.pt ile önemli grafikleri bul.
Bir algılayıcıyı sıfırdan eğitmek günler ve devasa veri kümeleri gerektirir. Önceden eğitilmiş bir YOLO26'ya yaklaşık yüz görüntüyle ince ayar yapmak, dizüstü bilgisayar CPU'sunda yaklaşık bir dakika sürer; çünkü aktarım öğrenimi, modelin kenarlar, şekiller ve nesneler hakkında zaten bildiklerini yeniden kullanır.
Bu derste hap veri kümesi üzerinde eğitim yapacak, mAP50-95 değerinin sıfıra yakın bir başlangıç seviyesinden on epoch'ta 0.66'ya yükselişini izleyecek ve günlükten bir çalıştırmanın sağlıklı mı yoksa zamanını boşa mı harcadığını erkenden anlamayı öğreneceksin.
Uygulamalı
Uygulamalı Örnek: Hap Algılayıcıyı Eğit#

Ultralytics Platform'un Yeni Model Eğit iletişim kutusu, aşağıdaki kodla aynı seçenekleri sorar — temel model, veri kümesi, epoch sayısı, görüntü boyutu — ve bunları ya bulut GPU'larında çalıştırır ya da eşleşen yerel komutu oluşturur. Bu ayarlarla dizüstü bilgisayar CPU'sunda eğitim yaklaşık bir dakikada tamamlanır:
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # COCO üzerinde önceden eğitilmiş
results = model.train(data="my_dataset/data.yaml", epochs=10, imgsz=320, name="pills_v1")
print(results.save_dir)CLI ve Python eşdeğerdir. epochs=10 ve imgsz=320 CPU çalıştırmalarını kısa tutar; GPU'da ikisini de kaldırıp varsayılanları (epochs=100, imgsz=640) kullan, çünkü daha fazla epoch ve piksel neredeyse her zaman işe yarar. Eğit modu bu döngüyü senin için çalıştırır:
Günlüğü Satır Satır Oku#
İlk ve son iki epoch'a kısaltılmış gerçek çıktı:
optimizer: AdamW(lr=0.002, momentum=0.9) with parameter groups ...
Using 92 train, 23 val images for fraction=1.0 at imgsz=320
Epoch GPU_mem box_loss cls_loss l1_loss Instances Size
1/10 0G 1.818 3.899 0.008805 206 320: 100% 6/6 3.3s
all 23 399 0.957 0.805 0.927 0.548
2/10 0G 1.434 3.291 0.006285 208 320: 100% 6/6 4.4s
all 23 399 0.953 0.911 0.964 0.592
...
9/10 0G 1.121 1.103 0.005143 194 320: 100% 6/6 5.0s
all 23 399 0.949 0.957 0.975 0.656
10/10 0G 1.174 1.125 0.005068 212 320: 100% 6/6 5.1s
all 23 399 0.97 0.957 0.977 0.659
10 epochs completed in 0.015 hours.optimizer: AdamW(lr=0.002 ...): varsayılanoptimizer=autosenin için eniyileyiciyi ve öğrenme oranını seçti.Using 92 train, 23 val images: bunların veri kümenle eşleştiğini doğrula. Daha düşük sayı, atlanan görüntüler olduğu anlamına gelir.GPU_mem 0G: CPU'da eğitim yapılıyor. GPU'da burada bellek kullanımını görürdün; GPU'lu bir makinede0Ggörünüyorsa GPU kullanılmıyor demektir.- Her epoch'un ilk satırı: eğitim bölümü için üç kayıp, son gruptaki etiketli nesne sayısı (
Instances) ve görüntü boyutu. - Her epoch'un
allsatırı: doğrulama bölümündeki kesinlik, duyarlılık, mAP50 ve mAP50-95. İzlemen gereken satır budur.
| Sütun | Anlamı | Sağlıklı eğilim |
|---|---|---|
box_loss | Tahmin edilen kutuların etiketli kutulardan ne kadar uzakta olduğu | Düşer, sonra yataylaşır |
cls_loss | Sınıf puanlarının ne kadar hatalı olduğu | Düşer, sonra yataylaşır |
l1_loss | YOLO26'nın doğrudan kutu koordinatı hatası | Düşer |
P, R | Doğrulama bölümündeki kesinlik ve duyarlılık | Yükselir ve dengede kalır |
mAP50, mAP50-95 | Algılama kalitesi; mAP50-95 ayrıca sıkı kutuları ödüllendirir | Yükselir, sonra yataylaşır |
Burada mAP50-95, 0.0002 başlangıç değerinden bir epoch sonra 0.548'e, on epoch sonra 0.659'a yükseldi. Kesinlik 4. epoch'ta 0.80'e düştü ve toparlandı: 23 doğrulama görüntüsünde tekil epoch'lar gürültülüdür, bu yüzden tek bir satırı değil eğilimi değerlendir. Çalıştırma devam ederken kullanabileceğin karar kuralları:
- Kayıplar düşüyor ve mAP yükseliyorsa: çalıştırmayı sürdür.
- Kayıplar 1. epoch'tan beri sabitse: Ctrl+C ile durdur ve etiketleri ve YAML dosyasını kontrol et.
- Kesinlik duyarlılıktan çok yüksekse: model temkinlidir ve nesneleri kaçırır. Duyarlılık kesinlikten çok yüksekse: gerçekte olmayan şeyleri algılar.
- mAP birçok epoch boyunca sabitse: daha fazla epoch işe yaramaz; verileri veya
imgszdeğerini değiştir.
Üç kayıp, YOLO26'nın kayıp fonksiyonunun bileşenleridir; performans metrikleri kılavuzu her metriği ayrıntılı biçimde açıklar.
Çalıştırmanın Oluşturduğu Dosyaları Bul#
Her şey runs/detect/pills_v1/ konumuna kaydedilir:
| Dosya | Kullanım amacı |
|---|---|
weights/best.pt | Epoch'lar boyunca en iyi doğrulama başarımına sahip kontrol noktası; çıkarım ve dışa aktarma için kullan |
weights/last.pt | En son kontrol noktası; kesintiye uğrayan çalıştırmayı sürdürmek için kullanılır |
args.yaml | Çalıştırmada kullanılan tüm argümanlar; yeniden üretmek için |
results.csv, results.png | Epoch başına kayıplar ve metrikler; hem veri hem grafik olarak |
labels.jpg | Sınıf sayıları ve kutu boyutu ile konum histogramları |
train_batch*.jpg | Etiketleri çizilmiş artırılmış eğitim grupları |
val_batch*_labels.jpg, val_batch*_pred.jpg | Doğrulama görüntülerindeki gerçek değerler ve tahminler |
confusion_matrix*.png, Box*_curve.png | Karışıklık matrisi ile kesinlik, duyarlılık, F1 ve PR eğrileri |
Başka bir şey yapmadan önce train_batch0.jpg dosyasını aç. Kutular nesnelerin üzerine oturmuyorsa etiketler yanlıştır ve hiçbir epoch sayısı bunu düzeltemez.
Önce Bu Argümanları Değiştir#
| Argüman | Varsayılan | Ne zaman değiştirilmeli |
|---|---|---|
epochs | 100 | Kısa CPU deneyleri veya aşırı öğrenmeye başlayan küçük veri kümeleri (düşür); hâlâ gelişen büyük veri kümeleri (yükselt, 200–300) |
imgsz | 640 | Küçük nesneler (1024 veya 1280'e yükselt) ya da CPU deneyleri (düşür) |
batch | 16 | Grup boyutu: bellek yetersiz hatalarında düşür veya GPU belleğinin yaklaşık %60'ına göre otomatik boyutlandırmak için -1 kullan |
patience | 100 | Doğrulama başarımı N epoch boyunca iyileşmediğinde erken durdur; örneğin patience=20 |
device | otomatik | cpu, mps, 0 gibi bir GPU indeksi veya [0, 1] gibi birden çok GPU kullanmaya zorla |
name | train | Her zaman: çalıştırmaları neyin değiştiğine göre adlandır |
model.train(data="my_dataset/data.yaml", epochs=200, imgsz=1024, batch=-1, patience=20, name="pills_v1_1024")
patience için varsayılan 100 değeri, 100 epoch'luk bir çalıştırmanın erken durmayacağı anlamına gelir. Daha düşük bir değer, yukarıdaki eğrilerin durması gerektiğini gösterdiği yerde takılan çalıştırmayı bitirir; her iki durumda da best.pt korunur.
Birden fazla GPU varsa device=[0, 1, 2, 3] gibi bir liste geçir: Ultralytics senin için dağıtık veri paralel (DDP) eğitimi başlatır, batch GPU'lar genelindeki toplamı belirtir ve eğitim varsayılan olarak karma duyarlılık kullanır (amp=True). Çalıştırma dizüstü bilgisayarının kapasitesini aştığında aynı veri kümesi ve argümanlar Ultralytics Platform'da bulut GPU'larında çalışır; bu konu Çalıştırmaları Eğit, Oku ve İnce Ayar Yap bölümünde ele alınır.
Bu Hatalardan Kaçın#
Belirti: Küçük bir veri kümesinde birçok epoch sonrasında mAP sıfıra yakın. Neden: Model yolo26n.pt yerine yolo26n.yaml kaynağından (rastgele ağırlıklarla) geldi. Çözüm: Her zaman önceden eğitilmiş bir .pt ile başla. Sıfırdan eğitim yalnızca omurga araştırmaları veya çok büyük veri kümeleri için avantaj sağlar.
Belirti: İlk epoch'ta CUDA out of memory. Çözüm: batch değerini yarıya indir veya AutoBatch'in sığacak bir boyut seçmesi için batch=-1 değerini ayarla. imgsz değerini düşürmek de yardımcı olur, ancak modelin görebileceklerini değiştirir.
last.pt son epoch'tur ve önceki epoch'lardan daha kötü olabilir. best.pt, doğrulama uygunluk değerinin en iyi olduğu epoch'tur; doğrulaman, dışa aktarman ve dağıtman gereken epoch budur.
Model eğitimi ipuçları kılavuzu kalan argümanları, hiperparametre ayarlama kılavuzu ise öğrenme oranı taramalarını ve genetik eniyileyiciyi ele alır. İnce ayar kılavuzu katmanları dondurmayı açıklar.
Çözümü göster
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="my_dataset/data.yaml", epochs=10, imgsz=320, name="pills_v1")
print(results.save_dir) # runs/detect/pills_v1Baseline (yolo26n.pt, no pill class): mAP50 0.001, mAP50-95 0.0002
pills_v1 (10 epochs, imgsz 320, CPU, ~1 min): mAP50 0.977, mAP50-95 0.659
Plateau: mAP50-95 gains shrink after epoch 8 (0.649 -> 0.656 -> 0.659)
train_batch0.jpg: yes, boxes sit on the pillsKesin değerler donanıma ve paket sürümüne göre biraz değişir.