Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

YAML

YAML, yapı için girintiler kullanan, insanlar tarafından okunabilir bir veri biçimidir ve ML veri kümeleriyle eğitim yapılandırmalarında yaygın olarak kullanılır. Sözdizimi, tuzaklar ve alternatifler.

YAML ("YAML İşaretleme Dili Değildir" ifadesinin özyinelemeli kısaltması), çoğunlukla yapılandırma dosyalarında kullanılan, insanlar tarafından okunabilir bir veri serileştirme dilidir. İç içe verileri köşeli ayraçlar veya etiketler yerine girintilerle tanımlar, yorumları destekler ve programlama dillerinin sözlükleri, listeleri, dizeleri ve sayılarıyla doğrudan eşleşir. Böylece aynı dosyayı insanların düzenlemesi, programların da yüklemesi kolaylaşır. Makine öğreniminde YAML dosyaları veri kümesi yollarını, model mimarilerini, hiperparametreleri ve iş hattı adımlarını kod dışında tutar; böylece deneylerin yeniden üretilmesi, incelenmesi ve Git'te sürümlenmesi kolaylaşır. Geçerli belirtim YAML 1.2.2 sürümüdür ve YAML 1.2, geçerli JSON'un aynı zamanda geçerli YAML olacağı şekilde tasarlanmıştır.

YAML Sözdiziminin Temelleri#

Bir YAML belgesi üç tür düğümden oluşur. Eşlemeler key: value çiftleridir; diziler - ile başlayan öğelerden oluşur veya satır içinde [a, b] biçiminde yazılır; skalerler ise dizeler, sayılar ve Boole değerleri gibi tek değerlerdir. İç içe yerleşim boşluklarla belirlenen girintiye bağlıdır; girintilemede sekme karakterlerine izin verilmez. # yorumu başlatır, --- tek dosyada birden fazla belgeyi ayırır ve çapalar (&name) ile takma adlar (*name) bir bloğun dosyanın başka bir yerinde yeniden kullanılmasını sağlar. Dizeler genellikle tırnak gerektirmez; bu dosyaları kısaltır ama ayrıştırıcının her tırnaksız değerin türüne karar vermesi anlamına gelir.

Makine Öğrenimi İş Akışlarında YAML#

Ayarları YAML'de tutmak, deneyin ne yaptığını kodun bunu nasıl yaptığından ayırır: Ekip, dosyayı düzenleyerek veri kümelerini değiştirebilir veya öğrenme oranlarını güncelleyebilir, deney takibi ile yapılandırmanın tam hâlini kaydedebilir ve değişiklikleri çekme isteklerinde inceleyebilir. Yığın boyunca çeşitli araçlar YAML kullanır: deney yapılandırmalarını birleştirmek için Hydra, sürekli entegrasyon iş hatları için GitHub Actions, çok kapsayıcılı uygulamalar için Docker Compose ve model dağıtımı için Kubernetes bildirimleri. Ultralytics YOLO, YAML'i üç düzeyde kullanır: veri kümesi dosyaları görüntü klasörlerini ve sınıf adlarını listeler; yolo26.yaml gibi model dosyaları, YOLO26 için katmanları ve n'den x'e ölçekleri tanımlar; bir varsayılan yapılandırma dosyası ise tüm eğitim, tahmin ve dışa aktarma ayarlarını içerir ve cfg= ile geçirilen özel bir dosya bu ayarları geçersiz kılabilir. Bu alıntı, paketteki coco8.yaml veri kümesi dosyasının yapısını gösterir:

path: coco8 # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')

# Classes
names:
  0: person
  1: bicycle
  2: car
  # ... up to 79: toothbrush

Eğitim dosyayı adına göre okur, görüntü klasörlerinin konumunu path üzerinden çözümler ve sınıf sayısı ile adlarını names üzerinden alır:

from ultralytics import YOLO

# Önceden eğitilmiş bir YOLO26 nano modeli yükle
model = YOLO("yolo26n.pt")

# # YAML dosyasında açıklanan veri kümesinde eğitim yap
results = model.train(data="coco8.yaml", epochs=3, imgsz=640)

Özel bir veri kümesinin yalnızca kendi YAML dosyasına ihtiyacı vardır; YAML dosyası aynı anahtarları içerir, veri kümesinin görüntülerine işaret eder ve veri kümesinin sınıflarını Ultralytics nesne algılama veri kümesi biçiminde listeler.

YAML, JSON ve TOML Karşılaştırması#

  • JSON: Küme ayraçları, köşeli ayraçlar ve tırnaklı anahtarlar kullanır; yorum içermez ve her yerde aynı şekilde ayrıştırılır. API yanıtları ve kaydedilmiş tahminler gibi programlar arasında aktarılan veriler için, insanların düzenlediği dosyalardan daha uygundur.
  • TOML: Açık türler kullanan ve girintiden kaynaklanan sürprizleri azaltan INI benzeri bir biçimdir; Python'ın pyproject.toml dosyasında kullanılır. Derin iç içe geçmiş veriler için kullanımı daha az rahattır.
  • XML: Pascal VOC gibi eski açıklama biçimlerinde hâlâ kullanılan, ayrıntılı ve etiket tabanlı bir işaretleme dilidir; yeni yapılandırma dosyalarında nadiren tercih edilir.

Yaygın YAML Sorunları#

YAML hatalarının çoğu girintiden kaynaklanır: Bir sekme karakteri veya hizası bozuk tek bir boşluk yapıyı değiştirir ya da ayrıştırıcının ScannerError veya ParserError hatasıyla durmasına neden olur. Daha ince sorunlar örtük tür belirlemeden kaynaklanır. Python projelerinin çoğunun kullandığı ayrıştırıcı PyYAML, eski YAML 1.1 kurallarını izler; bu kurallar bazı tırnaksız sözcükleri Boole değerlerine dönüştürür ve kayan noktalı sayılarda ondalık nokta gerektirir. Güvenilmeyen dosyaları yaml.unsafe_load veya PyYAML'ın UnsafeLoader aracıyla yüklemek, rastgele Python nesneleri oluşturup kod çalıştırabilir. Bu nedenle yapılandırma kodu yalnızca düz veri türleri oluşturan yaml.safe_load kullanır:

import yaml

config = """
model: yolo26n.pt
epochs: 100
lr0: 1e-3
python: 3.10
country: NO
classes: [person, car]
"""

# safe_load builds plain Python dicts, lists, and scalars from the text
data = yaml.safe_load(config)
for key, value in data.items():
    print(f"{key}: {value!r} ({type(value).__name__})")

Çıktıda üç sürpriz görülür: lr0, ondalık noktası olmadığı için '1e-3' dizesi olarak yüklenir; python: 3.10, 3.1 kayan noktalı sayısına dönüşür; ülke kodu NO ise YAML 1.1'de Norveç sorunu adı verilen kural nedeniyle False Boole değerine dönüşür. YAML 1.2 temel şemasında 1e-3 kayan noktalı sayı olarak yüklenir ve NO dize olarak kalır; 3.10 ise yine 3.1'e dönüşür.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla