Ultralytics YOLO27: Bekleme listesine katıl.
Get Started
İlk YOLO modelini eğit·Veri·Ders 5/10
Dersbaşlangıç düzeyi

Veri Kümesi YAML Dosyası Yaz

Ultralytics'i klasörlerine yönlendiren ve sınıflarına ad veren data.yaml dosyasını yaz, yolların her konumdan çözümlendiğinden emin ol ve yolo val ile hızlı bir test yap.

Veri kümesi YAML dosyası, klasörlerinle tüm Ultralytics komutları arasındaki sözleşmedir. Bir yolu yanlış girersen hiçbir şey çalışmaz; sınıf sırasını yanlış belirlersen her şey çalışır ama her tahmin yanlış adı taşır ve hiçbir uyarı verilmez.

Bu derste hap veri kümesi için data.yaml dosyasını yazacak, Ultralytics'in yolları nasıl çözdüğünü ve bunun bir ekip arkadaşının makinesinde de çalışmasını sağlayacak ayrıntıları öğrenecek, ayrıca eğitim sürecinin aşması gereken başlangıç değerini de veren tek satırlık bir doğrulama çalıştırmasıyla bunu kanıtlayacaksın.

Sonuç

Herhangi bir çalışma dizininden çözümlenen bir data.yaml yazabilir, sınıf indekslerini tutarlı tutabilir ve veri kümesinin bağlantısını doğrulamak için yolo val tarama satırını okuyabilirsin.

Hızlı Başlangıç
Nasıl ilerleyeceğini zaten biliyorsan, işte kısa sürüm.
  1. path değerini veri kümesinin kök dizinine, train/val değerlerini ise bu dizine göreli görüntü klasörlerine ayarla.

  2. names değerini, etiket dosyalarıyla tam eşleşecek şekilde indeks → ad biçiminde listele.

  3. yolo val model=yolo26n.pt data=my_dataset/data.yaml komutunu çalıştır ve tarama satırını oku.

  4. Paylaşmadan önce path değerini mutlak yol olarak ayarla; yalnızca yeni sınıflar ekle.

Uygulamalı

Dosyayı Yaz#

Bir kullanıcının veri kümelerini listeleyen, Yeni Veri Kümesi düğmeli Ultralytics Platform profil sayfası

Ultralytics Platform'daki veri kümelerinin kendi sınıfları ve bölmeleri vardır; eğitim, data=ul://username/datasets/name gibi bir URI ile bunlara yönlendirilir. Kendi makinen için bu sözleşme YAML dosyasıdır. Bunu my_dataset/data.yaml olarak kaydet:

path: my_dataset # dataset root: absolute, or relative to where you run yolo
train: images/train # relative to path
val: images/val # relative to path
# test: images/test  # optional held-out split

names:
  0: pill
AnahtarGerekliAnlamı
pathHayırVeri kümesinin kök dizini; train, val ve test bu dizine göreli yollardır. Belirtilmezse YAML dosyasının kendi klasörü kullanılır.
train, valEvetBir görüntü klasörü, görüntü yollarını listeleyen bir .txt dosyası ya da bunlardan birinin listesi
testHayırYalnızca split=test ile değerlendirilen, ayrılmış test görüntüleri
namesEvetSınıf indeksi → adı; listenin uzunluğu sınıf sayısını belirler
downloadHayırGörüntüleri eksik olduğunda veri kümesini getiren URL veya betik

train ve val görüntü klasörlerini gösterir; etiketler, images değerinin labels ile değiştirilmesiyle bulunur. coco8 YAML dosyası çalışan en küçük örnektir; VOC YAML dosyası ise daha büyük bir örnek sunar.

Uygulamalı Örnek: Hızlı Test Et#

Önceden eğitilmiş modelle doğrulama, baştan sona yapılabilecek en hızlı kontroldür. Tüm görüntüleri ve etiketleri okur, sorunları bildirir ve metrikleri hesaplar:

yolo val model=yolo26n.pt data=my_dataset/data.yaml
val: Scanning my_dataset/labels/val... 23 images, 0 backgrounds, 0 corrupt: 100%
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)
                   all         23        399     0.0256    0.00251      0.001     0.0002

Sırayla oku:

  1. Scanning my_dataset/labels/val: Ultralytics'in çözümlenmiş gerçek klasörü. İstediğin klasör olduğundan emin ol.
  2. 23 images, 0 backgrounds, 0 corrupt: her doğrulama görüntüsünün geçerli bir etiket dosyası var. İstemeden eklediğin arka plan görüntüleri veya herhangi bir bozuk sayım, önceki derse geri dönmen gerektiğini gösterir.
  3. 399 nesnesi: etiket dosyalarında 399 hap var.
  4. 0.0002 mAP50-95: hata değil, beklenen sonuç. COCO'da hap sınıfı yok; dolayısıyla önceden eğitilmiş model hapları bulamaz. Sıfıra yakın bu puan başlangıç değerin. İnsan veya araba gibi sınıfların COCO'da bulunduğu durumlarda aynı komut anlamlı bir başlangıç değeri verir.

Yolları Her Konumdan Çözümlenecek Şekilde Ayarla#

"Görüntüler bulunamadı" hatalarının çoğu yol hatalarından kaynaklanır. Ultralytics path değerini şöyle çözümler:

datasets_dir bir Ultralytics ayarıdır; yolo settings bu değeri yazdırır, ayarlar kılavuzu ise nasıl değiştirileceğini gösterir. Yerleşik veri kümeleri bu varsayılan değere dayanır: coco8.yaml, path: coco8 değerini ve bir download: URL'sini belirler; böylece data=coco8.yaml her klasörden çalışır.

Karar kuralları:

  • Yalnızca sen kullanacaksan ve her zaman proje klasöründen çalıştıracaksan mı? Göreli bir path yeterlidir.
  • Takım arkadaşların, sunucular, CI veya başka klasörlerdeki not defterleri mi? Mutlak bir path kullan.
  • Veriler başka bir yerde mi ve kendini getirmesi mi gerekiyor? Zip URL'siyle download: ekle.

Sınıf İndekslerini Sözleşme Olarak Koru#

Her etiket satırının başındaki tam sayı, names içindeki bir indekstir. Ultralytics aralığı denetler — Label class 1 exceeds dataset class count 1 — ancak anlamı denetleyemez. Etiketleme aracın 0: forklift, 1: person dışa aktardıysa ve YAML dosyan 0: person, 1: forklift diyorsa eğitim başarılı olur, doğrulama mAP iyi görünür ama her tahmin yanlış adı taşır. Etiketleme aracı, dönüştürme betiği, YAML dosyası ve dağıtım kodun tarafından paylaşılan sınıf listesi için tek bir doğruluk kaynağı kullan.

Bu Hatalardan Kaçın#

Yanlış klasöre göreli yol kullanmak

Belirti: Veri kümesi indirme diziniyle ilgili bir notla birlikte FileNotFoundError: Dataset 'data.yaml' images not found, missing path '.../datasets/my_dataset/images/val'. Neden: Başka bir klasörden çalıştırdın; bu yüzden göreli path mevcut değildi ve Ultralytics bunun yerine datasets_dir altında arama yaptı. Çözüm: Proje klasöründen çalıştır veya path yolunu mutlak yap.

Adları yeniden sıralamak yıkıcıdır

names içindeki girdileri yeniden etiketlemeden değiştirmek veya silmek, tüm etiketlerin anlamını fark ettirmeden değiştirir. Model hata vermeden yanlış sınıfları öğrenir ve tahmin eder. Yeni sınıfları sıradaki boş indeksle sona ekle ve mevcut sınıfları asla yeniden numaralandırma.

Listeler tek bir puanda birleşir

val: [images/val_day, images/val_night], iki klasörü tek bir doğrulama kümesinde birleştirir ve tek bir değer raporlar. Gündüz ve gece sonuçlarını ayrı görmek — ya da yeni bir üretim örneğinin yanında özenle seçilmiş bir regresyon kümesini değerlendirmek — için her küme için ayrı bir YAML dosyası tut ve her birini doğrula. Yalnızca bir kez, split=test ile değerlendirdiğin test bölmesi Veri Kümesini Doğru Böl bölümünde ele alınıyor.

Artırma ve önbelleğe alma gibi eğitim ayarları YAML anahtarları değil, train argümanlarıdır; hepsi yapılandırma başvurusunda bulunur.

Dene

my_dataset/data.yaml yaz ve yolo val model=yolo26n.pt data=my_dataset/data.yaml çalıştır. Görüntü, arka plan, bozuk dosya ve örnek sayılarını ve başlangıç mAP50-95 değerini kaydet. Ardından cd işlemini farklı bir klasörde yap, YAML dosyasının yoluyla yeniden çalıştır, hatayı oku ve komutun her yerden çalışması için YAML dosyasını düzelt. Düzeltilmiş YAML dosyasını ve her iki tarama satırını teslim et.

Tamamlanma ölçütü
Aşağıdakilerin tümü doğru olduğunda dersi tamamlamış olursun.
  • yolo val, YAML dosyan için 23 görüntü, 0 arka plan ve 0 bozuk dosya olduğunu bildiriyor.

  • Veri kümesi için önceden eğitilmiş başlangıç mAP50-95 değerini kaydettin.

  • YAML dosyan her çalışma dizininden çalışıyor çünkü path mutlak bir yol.

Çözümü göster
path: /home/you/projects/pills/my_dataset # absolute path to the dataset root
train: images/train
val: images/val

names:
  0: pill
val: Scanning /home/you/projects/pills/my_dataset/labels/val... 23 images, 0 backgrounds, 0 corrupt
                   all         23        399     0.0256    0.00251      0.001     0.0002

Başka bir klasörden çalıştırınca göreli sürüm Dataset ... images not found nedeniyle başarısız oldu; çünkü my_dataset orada yoktu ve datasets_dir yedek konumunda da kopya bulunmuyordu. Mutlak path arama sorununu ortadan kaldırıyor. Başlangıç mAP50-95 değeri yaklaşık 0: önceden eğitilmiş modelde hap sınıfı yok.

Sırada ne var

Veri bağlı ve başlangıç değeri kaydedildi. Sırada YOLO26'yı bu veriyle eğitmek var.

İlerlemeni kaydetmek için giriş yap