Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics YOLO ile Model Eğitimi#

Ultralytics YOLO ecosystem and integrations

Link to this sectionGiriş#

Bir derin öğrenme modelini eğitmek, ona veri beslemeyi ve doğru tahminler yapabilmesi için parametrelerini ayarlamayı içerir. Ultralytics YOLO26'daki Eğitme modu, modern donanım yeteneklerinden tam olarak yararlanarak nesne algılama modellerinin etkili ve verimli bir şekilde eğitilmesi için tasarlanmıştır. Bu kılavuz, YOLO26'nın güçlü özellikler setini kullanarak kendi modellerini eğitmeye başlamak için ihtiyaç duyduğun tüm ayrıntıları kapsamayı amaçlamaktadır.



Watch: How to Train a YOLO model on Your Custom Dataset in Google Colab.

Link to this sectionEğitim için Neden Ultralytics YOLO'yu Seçmelisin?#

YOLO26'nın Eğitme modunu tercih etmen için bazı ikna edici nedenler şunlardır:

  • Verimlilik: İster tek GPU'lu bir kurulumda ol, ister birden fazla GPU'ya ölçekleniyor ol, donanımından en iyi şekilde yararlan.
  • Çok Yönlülük: COCO, VOC ve ImageNet gibi hazır veri setlerine ek olarak özel veri setlerinde eğitim yap.
  • Kullanıcı Dostu: Basit ama güçlü CLI ve Python arayüzleri ile doğrudan bir eğitim deneyimi.
  • Hiperparametre Esnekliği: Model performansını ince ayar yapmak için çok çeşitli özelleştirilebilir hiperparametreler. Daha derin bir kontrol için, eğiticiyi (trainer) bizzat özelleştirebilirsin.
  • Bulut Eğitimi: Gerçek zamanlı metrikler ve otomatik kontrol noktası kaydı (checkpointing) ile Ultralytics Platform üzerinden bulut GPU'larda eğitim yap.

Link to this sectionEğitme Modunun Temel Özellikleri#

Aşağıdakiler, YOLO26'nın Eğitme modunun bazı dikkate değer özellikleridir:

  • Otomatik Veri Seti İndirme: COCO, VOC ve ImageNet gibi standart veri setleri ilk kullanımda otomatik olarak indirilir.
  • Çoklu GPU Desteği: Süreci hızlandırmak için eğitim çalışmalarını birden fazla GPU üzerinde sorunsuz bir şekilde ölçekle.
  • Hiperparametre Yapılandırması: YAML yapılandırma dosyaları veya CLI argümanları aracılığıyla hiperparametreleri değiştirme seçeneği.
  • Görselleştirme ve İzleme: Daha iyi içgörüler için eğitim metriklerinin gerçek zamanlı takibi ve öğrenme sürecinin görselleştirilmesi.
İpucu
  • COCO, VOC, ImageNet ve diğer birçok YOLO26 veri seti ilk kullanımda otomatik olarak indirilir, örn. yolo train data=coco.yaml

Link to this sectionKullanım Örnekleri#

COCO8 veri setinde, 640 görüntü boyutunda 100 epoch boyunca YOLO26n eğit. Eğitim cihazı device argümanı kullanılarak belirlenebilir. Hiçbir argüman geçilmezse, mevcut olduğunda GPU device=0 kullanılacaktır; aksi takdirde device='cpu' kullanılacaktır. Tüm eğitim argümanlarının tam listesi için aşağıdaki Argümanlar bölümüne bak.

Windows Çoklu İşlem (Multi-Processing) Hatası

Windows'ta, eğitimi bir betik olarak başlatırken bir RuntimeError alabilirsin. Bunu çözmek için eğitim kodundan önce bir if __name__ == "__main__": bloğu ekle.

Tek GPU ve CPU Eğitim Örneği

Cihaz otomatik olarak belirlenir. Eğer bir GPU mevcutsa, o kullanılacaktır (varsayılan CUDA cihazı 0); aksi takdirde eğitim CPU üzerinde başlayacaktır.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this sectionÇoklu GPU Eğitimi#

Çoklu GPU eğitimi, eğitim yükünü birden fazla GPU'ya dağıtarak mevcut donanım kaynaklarının daha verimli kullanılmasını sağlar. Bu özellik hem Python API hem de komut satırı arayüzü aracılığıyla kullanılabilir. Çoklu GPU eğitimini etkinleştirmek için kullanmak istediğin GPU cihaz kimliklerini (ID'lerini) belirt.

Çoklu GPU Eğitim Örneği

2 GPU ile eğitmek için, CUDA cihazları 0 ve 1 şu komutları kullanır. Gerektiğinde ek GPU'lara genişlet.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
Özel Kod ile Çoklu GPU Eğitimi

Birden fazla cihaz belirttiğinde (ör. device=[0, 1]), Ultralytics dahili olarak yeni bir eğitici örneği oluşturur ve arka planda torch.distributed.run komutunu çalıştırır. Bu, standart CLI kullanımı ve değiştirilmemiş Python betikleri için sorunsuz çalışır.

Ancak, betiğin özel bir eğitici, doğrulayıcı, veri seti veya artırma hattı gibi özel bileşenler içeriyorsa, bu nesneler otomatik olarak serileştirilemez ve DDP alt süreçlerine aktarılamaz. Bu durumda, betiğini doğrudan torch.distributed.run ile başlatmalısın:

python -m torch.distributed.run --nproc_per_node 2 your_training_script.py

Link to this sectionBoşta Olan (Idle) GPU Eğitimi#

Boşta Olan GPU Eğitimi, çoklu GPU sistemlerinde en az kullanılan GPU'ların otomatik olarak seçilmesini sağlayarak manuel GPU seçimi olmadan kaynak kullanımını optimize eder. Bu özellik, kullanım metriklerine ve VRAM kullanılabilirliğine göre mevcut GPU'ları tanımlar.

Boşta Olan GPU Eğitim Örneği

Eğitim için en boşta olan GPU('ları) otomatik olarak seçmek ve kullanmak için -1 cihaz parametresini kullan. Bu, paylaşımlı bilgi işlem ortamlarında veya birden fazla kullanıcısı olan sunucularda özellikle yararlıdır.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])

Otomatik seçim algoritması şu özelliklere sahip GPU'lara öncelik verir:

  1. Daha düşük mevcut kullanım yüzdeleri
  2. Daha yüksek kullanılabilir bellek (boş VRAM)
  3. Daha düşük sıcaklık ve güç tüketimi

Bu özellik, paylaşımlı bilgi işlem ortamlarında veya farklı modellerde birden fazla eğitim işi çalıştırırken özellikle değerlidir. Değişen sistem koşullarına otomatik olarak uyum sağlayarak, manuel müdahale olmaksızın en uygun kaynak tahsisini sağlar.

Link to this sectionApple Silicon MPS Eğitimi#

Ultralytics YOLO modellerine entegre edilen Apple silicon çip desteği ile, artık güçlü Metal Performance Shaders (MPS) çerçevesini kullanan cihazlarda modellerini eğitmen mümkün. MPS, Apple'ın özel silikonu üzerinde hesaplama ve görüntü işleme görevlerini yürütmek için yüksek performanslı bir yol sunar.

Apple silicon çiplerinde eğitimi etkinleştirmek için, eğitim sürecini başlatırken cihazın olarak 'mps' belirtmelisin. Python'da ve komut satırı aracılığıyla bunu nasıl yapabileceğine dair bir örnek aşağıdadır:

MPS Eğitim Örneği
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Apple silicon çiplerinin hesaplama gücünden yararlanırken, bu, eğitim görevlerinin daha verimli işlenmesini sağlar. Daha ayrıntılı rehberlik ve gelişmiş yapılandırma seçenekleri için lütfen PyTorch MPS dokümantasyonuna başvur.

Link to this sectionKesintiye Uğrayan Eğitimlerin Devam Ettirilmesi#

Derin öğrenme modelleriyle çalışırken, daha önce kaydedilmiş bir durumdan eğitimi devam ettirmek çok önemli bir özelliktir. Bu, eğitim sürecinin beklenmedik bir şekilde kesintiye uğradığı durumlarda veya bir modeli yeni verilerle ya da daha fazla epoch boyunca eğitmek istediğinde çeşitli senaryolarda kullanışlı olabilir.

Eğitim devam ettirildiğinde, Ultralytics YOLO ağırlıkları son kaydedilen modelden yükler ve ayrıca optimize edici durumunu, öğrenme oranı zamanlayıcısını ve epoch numarasını geri yükler. Bu, eğitim sürecine kaldığı yerden sorunsuz bir şekilde devam etmeni sağlar.

You can easily resume training in Ultralytics YOLO by setting the resume argument to True when calling the train method, and specifying the path to the .pt file containing the partially trained model weights.

Python'da ve komut satırı üzerinden kesintiye uğrayan bir eğitimin nasıl devam ettirileceğine dair bir örnek aşağıdadır:

Eğitimi Devam Ettirme Örneği
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)

resume=True olarak ayarladığında, train işlevi 'path/to/last.pt' dosyasında saklanan durumu kullanarak eğitime kaldığı yerden devam edecektir. Eğer resume argümanı atlanırsa veya False olarak ayarlanırsa, train işlevi yeni bir eğitim oturumu başlatacaktır.

Kontrol noktalarının varsayılan olarak her epoch'un sonunda veya save_period argümanı kullanılarak sabit aralıklarla kaydedildiğini unutma, bu nedenle bir eğitim çalışmasını devam ettirmek için en az 1 epoch tamamlaman gerekir.

Link to this sectionEğitim Ayarları#

YOLO modelleri için eğitim ayarları, eğitim süreci sırasında kullanılan çeşitli hiperparametreleri ve yapılandırmaları kapsar. Bu ayarlar modelin performansını, hızını ve doğruluğunu etkiler. Temel eğitim ayarları arasında batch boyutu, öğrenme oranı, momentum ve ağırlık çürümesi (weight decay) bulunur. Ek olarak, optimize edici, kayıp işlevi ve eğitim veri seti bileşimi seçimi, eğitim sürecini etkileyebilir. Bu ayarlarla dikkatli bir şekilde ince ayar yapmak ve denemeler yapmak, performansı optimize etmek için çok önemlidir.

Link to this sectionMuSGD Optimize Edici#

YOLO26'da, MuSGD, standart SGD güncellemelerini Muon tarzı ortogonalize edilmiş güncellemelerle birleştiren hibrit bir optimize edicidir.

Ortogonalize edilmiş Muon güncellemelerinin optimizasyonu stabilize etmeye yardımcı olabileceği daha uzun YOLO26 eğitimleri ve daha büyük veri setleri için önerilir.

Yalnızca param.ndim >= 2 olan parametreler (evrişim ağırlıkları gibi) SGD ile birlikte Muon tarzı güncellemeyi alırken, toplu normalleştirme katmanları ve yanlılık terimleri gibi daha düşük boyutlu parametreler standart SGD'de kalır.

optimizer=auto kullanıldığında, Ultralytics daha uzun eğitim süreçleri için (genellikle iterasyonlar > 10000 olduğunda) otomatik olarak MuSGD'yi seçer. Daha kısa süreçler için eğitici AdamW'ye geri döner.

Kullanım örneği:

yolo train model=yolo26n.pt data=coco8.yaml optimizer=MuSGD

ultralytics/optim/muon.py dosyasındaki uygulamaya ve BaseTrainer.build_optimizer dosyasındaki optimize edici otomatik seçim mantığına bak.

ArgümanTipVarsayılanAçıklama
modelstrNoneEğitim için model dosyasını belirtir. Bir .pt önceden eğitilmiş modeline veya bir .yaml yapılandırma dosyasına giden bir yolu kabul eder. Model yapısını tanımlamak veya ağırlıkları başlatmak için gereklidir.
datastrNoneVeri seti yapılandırma dosyasına giden yol (örn. coco8.yaml). Bu dosya, eğitim ve doğrulama verilerine giden yollar, sınıf adları ve sınıf sayısı dahil olmak üzere veri setine özgü parametreleri içerir.
epochsint100Toplam eğitim epoch sayısı. Her epoch, tüm veri seti üzerinde tam bir geçişi temsil eder. Bu değeri ayarlamak eğitim süresini ve model performansını etkileyebilir.
timefloatNoneSaat cinsinden maksimum eğitim süresi. Ayarlanırsa, bu epochs argümanını geçersiz kılar ve eğitimin belirtilen süreden sonra otomatik olarak durmasını sağlar. Zaman kısıtlı eğitim senaryoları için yararlıdır.
patienceint100Eğitimi erkenden durdurmadan önce doğrulama metriklerinde iyileşme olmadan beklenecek epoch sayısı. Performans durağanlaştığında eğitimi durdurarak aşırı uyumu önlemeye yardımcı olur.
batchint veya float16Batch boyutu, üç mod ile: tam sayı olarak ayarla (örn. batch=16), %60 GPU bellek kullanımı için otomatik mod (batch=-1) veya belirtilen kullanım oranı ile otomatik mod (batch=0.70).
imgszint640Eğitim için hedef görüntü boyutu. Görüntüler, belirtilen değere eşit kenarlı karelere yeniden boyutlandırılır (rect=False ise), YOLO modelleri için en boy oranını korur ancak RT-DETR için korumaz. Model doğruluğunu ve hesaplama karmaşıklığını etkiler.
saveboolTrueEğitim kontrol noktalarının ve nihai model ağırlıklarının kaydedilmesini etkinleştirir. Eğitimi devam ettirmek veya model dağıtımı için yararlıdır.
save_periodint-1Model kontrol noktalarının kaydedilme sıklığı, epoch cinsinden belirtilir. -1 değeri bu özelliği devre dışı bırakır. Uzun eğitim oturumları sırasında ara modelleri kaydetmek için yararlıdır.
cacheboolFalseVeri seti görüntülerinin bellekte (True/ram), diskte (disk) önbelleğe alınmasını sağlar veya devre dışı bırakır (False). Artan bellek kullanımı pahasına disk I/O'sunu azaltarak eğitim hızını artırır.
deviceint veya str veya listNoneEğitim için hesaplama cihazını/cihazlarını belirtir: tek bir GPU (device=0), birden fazla GPU (device=[0,1]), CPU (device=cpu), Apple silicon için MPS (device=mps), Huawei Ascend NPU (device=npu veya device=npu:0) veya en boşta olan GPU'nun otomatik seçimi (device=-1) ya da birden fazla boşta olan GPU (device=[-1,-1])
workersint8Veri yükleme için çalışan iş parçacığı sayısı (Çoklu GPU eğitimi ise RANK başına). Veri ön işleme hızını ve modele beslemeyi etkiler, özellikle çoklu GPU kurulumlarında yararlıdır.
projectstrNoneEğitim çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerin düzenli bir şekilde saklanmasına olanak tanır.
namestrNoneEğitim çalışmasının adı. Proje klasörü içinde eğitim günlüklerinin ve çıktılarının depolandığı bir alt dizin oluşturmak için kullanılır.
exist_okboolFalseEğer True ise, mevcut bir proje/isim dizininin üzerine yazılmasına izin verir. Önceki çıktıları manuel olarak temizlemeye gerek kalmadan yinelemeli denemeler yapmak için yararlıdır.
pretrainedbool veya strTrueEğitime önceden eğitilmiş ağırlıklarla mı başlanacağını belirler. Bir boolean değeri veya yüklenecek ağırlıkların dize yolu olabilir. pretrained=False, model mimarisini korurken rastgele başlatılmış ağırlıklarla eğitir.
optimizerstr'auto'Eğitim için optimize edici seçimi. Seçenekler arasında SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp veya model yapılandırmasına göre otomatik seçim için auto bulunur. Yakınsama hızını ve kararlılığını etkiler.
seedint0Eğitim için rastgele tohum değerini ayarlar, aynı yapılandırmalarla yapılan çalışmalarda sonuçların tekrarlanabilirliğini sağlar.
deterministicboolTrueBelirlenmiş algoritma kullanımını zorunlu kılar, tekrarlanabilirliği sağlar ancak belirlenmiş olmayan algoritmalar üzerindeki kısıtlama nedeniyle performansı ve hızı etkileyebilir.
verboseboolTrueEğitim sırasında ayrıntılı çıktıyı etkinleştirir; ilerleme çubuklarını, dönem başı metriklerini ve konsolda ek eğitim bilgilerini görüntüler.
single_clsboolFalseÇok sınıflı veri setlerindeki tüm sınıfları eğitim sırasında tek bir sınıf olarak ele alır. İkili sınıflandırma görevleri için veya sınıflandırmadan ziyade nesne varlığına odaklanırken yararlıdır.
classeslist[int]NoneEğitimde kullanılacak sınıf kimliklerinin listesini belirtir. Eğitim sırasında yalnızca belirli sınıfları filtrelemek ve bunlara odaklanmak için yararlıdır.
rectboolFalseMinimum dolgu stratejisini etkinleştirir—bir gruptaki görüntüler, en uzun kenarları imgsz'ye eşit olacak şekilde ortak bir boyuta ulaşmak için minimum düzeyde doldurulur. Verimliliği ve hızı artırabilir ancak model doğruluğunu etkileyebilir.
multi_scalefloat0.0imgsz değerini her grupta +/- multi_scale oranında (örneğin 0.25 -> 0.75x ila 1.25x) rastgele değiştirir ve model adımı katlarına yuvarlar; 0.0 çok ölçekli eğitimi devre dışı bırakır.
cos_lrboolFalseKosinüs öğrenme oranı zamanlayıcısını kullanarak öğrenme oranını dönemler boyunca bir kosinüs eğrisini izleyecek şekilde ayarlar. Daha iyi yakınsama için öğrenme oranını yönetmeye yardımcı olur.
close_mosaicint10Tamamlanmadan önce eğitimi stabilize etmek için son N dönemde mozaik veri artırma işlemini devre dışı bırakır. 0 olarak ayarlanması bu özelliği kapatır.
resumeboolFalseEğitime son kaydedilen kontrol noktasından devam eder. Model ağırlıklarını, optimize edici durumunu ve dönem sayısını otomatik olarak yükleyerek eğitime sorunsuz bir şekilde devam etmeni sağlar.
ampboolTrueOtomatik Karma Hassasiyet (AMP) eğitimini etkinleştirir, bellek kullanımını azaltır ve doğruluk üzerinde minimum etkiyle eğitimi hızlandırabilir.
fractionfloat1.0Eğitim için kullanılacak veri seti oranını belirtir. Deneyler veya kaynakların sınırlı olduğu durumlar için yararlı olan tam veri setinin bir alt kümesi üzerinde eğitime olanak tanır.
profileboolFalseEğitim sırasında ONNX ve TensorRT hızlarının profillenmesini etkinleştirir, model dağıtımını optimize etmek için yararlıdır.
freezeint veya listNoneModelin ilk N katmanını veya dizine göre belirtilen katmanları dondurarak eğitilebilir parametre sayısını azaltır. İnce ayar veya transfer öğrenimi için yararlıdır.
lr0float0.01Başlangıç öğrenme oranı (örneğin SGD=1E-2, Adam=1E-3). Bu değeri ayarlamak, model ağırlıklarının ne kadar hızlı güncelleneceğini etkileyerek optimizasyon süreci için kritik öneme sahiptir.
lrffloat0.01Başlangıç oranının bir fraksiyonu olarak nihai öğrenme oranı = (lr0 * lrf), zaman içinde öğrenme oranını ayarlamak için zamanlayıcılarla birlikte kullanılır.
momentumfloat0.937SGD için momentum faktörü veya Adam optimize ediciler için beta1, geçmiş gradyanların mevcut güncellemeye dahil edilmesini etkiler.
weight_decayfloat0.0005Aşırı öğrenmeyi önlemek için büyük ağırlıkları cezalandıran L2 düzenlileştirme terimi.
warmup_epochsfloat3.0Öğrenme oranı ısınma dönemleri sayısı; eğitimi erkenden stabilize etmek için öğrenme oranını düşük bir değerden başlangıç öğrenme oranına kademeli olarak artırır.
warmup_momentumfloat0.8Isınma aşaması için başlangıç momentumu, ısınma süresi boyunca ayarlanan momentuma kademeli olarak uyarlanır.
warmup_bias_lrfloat0.1Isınma aşamasında sapma (bias) parametreleri için öğrenme oranı, ilk dönemlerde model eğitimini stabilize etmeye yardımcı olur.
boxfloat7.5Kayıp fonksiyonunda kutu kaybı bileşeninin ağırlığı, sınırlayıcı kutu koordinatlarını doğru tahmin etmeye ne kadar önem verildiğini etkiler.
clsfloat0.5Toplam kayıp fonksiyonundaki sınıflandırma kaybının ağırlığı, doğru sınıf tahmininin diğer bileşenlere göre önemini etkiler.
cls_pwfloat0.0Ters sınıf frekansını kullanarak sınıf dengesizliğini yönetmek için sınıf ağırlıklandırma gücü. 0.0 sınıf ağırlıklandırmayı devre dışı bırakır, 1.0 tam ters frekans ağırlıklandırmasını uygular. 0 ile 1 arasındaki değerler kısmi ağırlıklandırma sağlar.
dflfloat1.5Belirli YOLO sürümlerinde ince taneli sınıflandırma için kullanılan dağılım odak kaybının (distribution focal loss) ağırlığı.
posefloat12.0Poz tahmini için eğitilen modellerde poz kaybının ağırlığı, poz anahtar noktalarının doğru tahmin edilmesine verilen önemi etkiler.
kobjfloat1.0Poz tahmini modellerinde anahtar nokta nesnellik (objectness) kaybının ağırlığı, tespit güveni ile poz doğruluğunu dengeler.
rlefloat1.0Poz tahmini modellerinde artık log-olabilirlik tahmini kaybının ağırlığı, anahtar nokta yerelleştirme hassasiyetini etkiler.
anglefloat1.0Obb modellerinde açı kaybının ağırlığı, yönlendirilmiş sınırlayıcı kutu açı tahminlerinin hassasiyetini etkiler.
nbsint64Kaybın normalizasyonu için nominal grup boyutu.
overlap_maskboolTrueNesne maskelerinin eğitim için tek bir maske halinde birleştirilip birleştirilmeyeceğini veya her nesne için ayrı tutulacağını belirler. Çakışma durumunda, birleştirme sırasında daha küçük maske, daha büyük olanın üzerine bindirilir.
mask_ratioint4Segmentasyon maskeleri için aşağı örnekleme (downsample) oranı, eğitim sırasında kullanılan maskelerin çözünürlüğünü etkiler.
dropoutfloat0.0Sınıflandırma görevlerinde düzenlileştirme için dropout oranı, eğitim sırasında birimleri rastgele atlayarak aşırı öğrenmeyi önler.
valboolTrueEğitim sırasında doğrulamayı etkinleştirerek model performansının ayrı bir veri setinde periyodik olarak değerlendirilmesini sağlar.
plotsboolTrueEğitim ve doğrulama metriklerinin grafiklerini ve tahmin örneklerini oluşturup kaydeder, model performansı ve öğrenme ilerleyişine ilişkin görsel içgörüler sağlar.
compilebool veya strFalseEnables PyTorch 2.x torch.compile graph compilation with backend='inductor'. Accepts True"default", False → disables, or a string mode such as "default", "reduce-overhead", "max-autotune-no-cudagraphs". Falls back to eager with a warning if unsupported.
max_detint300Eğitimin doğrulama aşamasında tutulan maksimum nesne sayısını belirtir.
Grup Boyutu Ayarları Hakkında Not

batch argümanı üç şekilde yapılandırılabilir:

  • Sabit Grup Boyutu: Grup başına görüntü sayısını doğrudan belirten bir tam sayı değeri (örneğin batch=16) ayarla.
  • Otomatik Mod (%60 GPU Belleği): Yaklaşık %60 CUDA bellek kullanımı için grup boyutunu otomatik olarak ayarlamak üzere batch=-1 kullan.
  • Kullanım Oranı ile Otomatik Mod: GPU bellek kullanımının belirtilen oranına göre grup boyutunu ayarlamak için bir fraksiyon değeri (örneğin batch=0.70) ayarla.
  • OOM Otomatik Yeniden Deneme: İlk dönem sırasında bir CUDA bellek yetersizliği hatası oluşursa, eğitmen otomatik olarak grup boyutunu yarıya indirir ve yeniden dener (3 defaya kadar). Bu sadece tek GPU eğitimi için geçerlidir; çoklu GPU (DDP) eğitimi hatayı anında verir.

Link to this sectionArtırma Ayarları ve Hiperparametreler#

Artırma teknikleri, eğitim verilerine değişkenlik katarak YOLO modellerinin sağlamlığını ve performansını artırmak için gereklidir, böylece modelin görülmemiş verilere daha iyi genelleme yapmasına yardımcı olur. Aşağıdaki tablo, her bir artırma argümanının amacını ve etkisini özetlemektedir:

ArgümanTipVarsayılanDesteklenen GörevlerAralıkAçıklama
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Görüntünün tonunu renk çarkının bir fraksiyonu kadar ayarlar ve renk değişkenliği katar. Modelin farklı aydınlatma koşullarında genelleme yapmasına yardımcı olur.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Görüntünün doygunluğunu bir fraksiyon kadar değiştirerek renklerin yoğunluğunu etkiler. Farklı çevresel koşulları simüle etmek için yararlıdır.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Görüntünün değerini (parlaklığını) bir fraksiyon kadar değiştirir, modelin çeşitli aydınlatma koşullarında iyi performans göstermesine yardımcı olur.
degreesfloat0detect, segment, pose, obb0.0 - 180Görüntüyü belirtilen derece aralığında rastgele döndürür, böylece modelin nesneleri çeşitli yönelimlerde tanıma yeteneğini geliştirir.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Görüntüyü görüntü boyutunun bir kesri kadar yatay ve dikey olarak kaydırır, bu da kısmen görünen nesneleri tespit etmeyi öğrenmeye yardımcı olur.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Görüntüyü bir kazanç faktörüyle ölçeklendirir, böylece kameradan farklı mesafelerdeki nesneleri simüle eder.
shearfloat0detect, segment, pose, obb-180 - +180Görüntüyü belirtilen bir derecede eğerek, nesnelerin farklı açılardan görülme etkisini taklit eder.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Görüntüye rastgele bir perspektif dönüşümü uygular, modelin 3D uzaydaki nesneleri anlama yeteneğini artırır.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Görüntüyü belirtilen olasılıkla baş aşağı çevirir, nesnenin özelliklerini etkilemeden veri değişkenliğini artırır.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Görüntüyü belirtilen olasılıkla soldan sağa çevirir, simetrik nesneleri öğrenmek ve veri kümesi çeşitliliğini artırmak için kullanışlıdır.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Görüntü kanallarını belirtilen olasılıkla RGB'den BGR'ye çevirir, yanlış kanal sıralamasına karşı dayanıklılığı artırmak için kullanışlıdır.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Dört eğitim görüntüsünü bir araya getirerek farklı sahne kompozisyonlarını ve nesne etkileşimlerini simüle eder. Karmaşık sahneleri anlamada oldukça etkilidir.
mixupfloat0detect, segment, pose, obb0.0 - 1.0İki görüntüyü ve etiketlerini harmanlayarak kompozit bir görüntü oluşturur. Etiket gürültüsü ve görsel değişkenlik ekleyerek modelin genelleme yeteneğini geliştirir.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0İki görüntünün bölümlerini birleştirerek, belirgin bölgeleri korurken kısmi bir karışım oluşturur. Tıkanma senaryoları yaratarak modelin dayanıklılığını artırır.
copy_pastefloat0segment0.0 - 1.0Nesne örneklerini artırmak için nesneleri görüntüler arasında kopyalayıp yapıştırır.
copy_paste_modestrflipsegment-Kullanılacak copy-paste stratejisini belirtir. Seçenekler arasında 'flip' ve 'mixup' bulunur.
auto_augmentstrrandaugmentclassify-Görsel çeşitlilik yoluyla model performansını artırmak için önceden tanımlanmış bir artırma politikası ('randaugment', 'autoaugment' veya 'augmix') uygular.
erasingfloat0.4classify0.0 - 1.0Modelin daha az belirgin özelliklere odaklanmasını teşvik etmek için eğitim sırasında görüntünün bölgelerini rastgele siler.
augmentationslist``detect, segment, pose, obb-Gelişmiş veri artırma için özel Albumentations dönüşümleri (yalnızca Python API). Özel artırma ihtiyaçları için bir dönüşüm nesneleri listesi kabul eder.

Bu ayarlar, veri kümesinin ve mevcut görevin özel gereksinimlerini karşılayacak şekilde ayarlanabilir. Farklı değerlerle denemeler yapmak, en iyi model performansını sağlayan en uygun artırma stratejisini bulmaya yardımcı olabilir.

Bilgi

Eğitim artırma işlemleri hakkında daha fazla bilgi için referans bölümüne bakın.

Link to this sectionGünlükleme#

Bir YOLO26 modeli eğitirken, modelin zaman içindeki performansını takip etmeyi değerli bulabilirsin. Günlükleme burada devreye girer. Ultralytics YOLO, üç tür günlükleyiciye destek sağlar: Comet, ClearML ve TensorBoard.

Bir günlükleyici kullanmak için, yukarıdaki kod parçacığındaki açılır menüden onu seç ve çalıştır. Seçilen günlükleyici kurulacak ve başlatılacaktır.

Link to this sectionComet#

Comet, veri bilimcilerin ve geliştiricilerin deneyleri ve modelleri izlemelerine, karşılaştırmalarına, açıklamalarına ve optimize etmelerine olanak tanıyan bir platformdur. Gerçek zamanlı metrikler, kod farkları ve hiperparametre takibi gibi işlevler sunar.

Comet'i kullanmak için:

Örnek
# pip install comet_ml
import comet_ml

comet_ml.init()

Web sitelerinde Comet hesabına giriş yapmayı ve API anahtarını almayı unutma. Deneylerini günlüklemek için bunu ortam değişkenlerine veya betiğine eklemen gerekecek.

Link to this sectionClearML#

ClearML, deneylerin takibini otomatikleştiren ve kaynakların verimli bir şekilde paylaşılmasına yardımcı olan açık kaynaklı bir platformdur. Ekiplerin ML çalışmalarını daha verimli bir şekilde yönetmelerine, yürütmelerine ve çoğaltmalarına yardımcı olmak için tasarlanmıştır.

ClearML'i kullanmak için:

Örnek
# pip install clearml
import clearml

clearml.browser_login()

Bu betiği çalıştırdıktan sonra, tarayıcıda ClearML hesabına giriş yapman ve oturumunu doğrulaman gerekecek.

Link to this sectionTensorBoard#

TensorBoard, TensorFlow için bir görselleştirme araç setidir. TensorFlow grafiğini görselleştirmeni, grafiğinin yürütülmesiyle ilgili nicel metrikleri çizmeni ve içinden geçen görüntüler gibi ek verileri göstermeni sağlar.

Google Colab içinde TensorBoard kullanmak için:

Örnek
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

TensorBoard'u yerel olarak kullanmak için aşağıdaki komutu çalıştır ve sonuçları localhost:6006 adresinde görüntüle.

Örnek
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Bu, TensorBoard'u yükleyecek ve onu eğitim günlüklerinin kaydedildiği dizine yönlendirecektir.

Günlükleyicini kurduktan sonra model eğitimine devam edebilirsin. Tüm eğitim metrikleri seçtiğin platformda otomatik olarak günlüklenecek ve modelinin performansını zaman içinde izlemek, farklı modelleri karşılaştırmak ve iyileştirilmesi gereken alanları belirlemek için bu günlüklere erişebilirsin.

Link to this sectionSSS#

Link to this sectionYerel GPU olmadan eğitim yapabilir miyim?#

Evet. Ultralytics Platform, başlaman için ücretsiz kredilerle bulut eğitimini destekler. Veri kümeni yükle, bir model ve GPU seç ve doğrudan tarayıcıdan eğit. Ayrıntılar için bulut eğitimi kılavuzuna bak.

Link to this sectionUltralytics YOLO26 kullanarak bir nesne algılama modelini nasıl eğitirim?#

Ultralytics YOLO26 kullanarak bir nesne algılama modeli eğitmek için Python API'sini veya CLI'yı kullanabilirsin. Aşağıda her ikisi için bir örnek bulunmaktadır:

Tek GPU ve CPU Eğitim Örneği
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Daha fazla ayrıntı için Eğitim Ayarları bölümüne bak.

Link to this sectionUltralytics YOLO26'nın Eğitim modunun temel özellikleri nelerdir?#

Ultralytics YOLO26'nın Eğitim modunun temel özellikleri şunlardır:

  • Otomatik Veri Kümesi İndirme: COCO, VOC ve ImageNet gibi standart veri kümelerini otomatik olarak indirir.
  • Çoklu GPU Desteği: Daha hızlı işlem için eğitimi birden fazla GPU'ya ölçeklendirir.
  • Hiperparametre Yapılandırması: Hiperparametreleri YAML dosyaları veya CLI argümanları aracılığıyla özelleştirir.
  • Görselleştirme ve İzleme: Daha iyi içgörüler için eğitim metriklerinin gerçek zamanlı takibi.

Bu özellikler, eğitimi verimli ve ihtiyaçlarına göre özelleştirilebilir hale getirir. Daha fazla ayrıntı için Eğitim Modunun Temel Özellikleri bölümüne bak.

Link to this sectionUltralytics YOLO26'da kesintiye uğrayan bir oturumdan eğitime nasıl devam ederim?#

Kesintiye uğrayan bir oturumdan eğitime devam etmek için resume argümanını True olarak ayarla ve son kaydedilen kontrol noktasının yolunu belirt.

Eğitimi Devam Ettirme Örneği
from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)

Daha fazla bilgi için Kesintiye Uğrayan Eğitimlere Devam Etme bölümüne göz at.

Link to this sectionDengesiz bir veri kümesinde nasıl model eğitirim?#

Sınıf dengesizliği, eğitim verilerinde bazı sınıfların diğerlerinden önemli ölçüde daha az örneğe sahip olması durumunda ortaya çıkar. Bu, modelin nadir sınıflarda zayıf performans göstermesine neden olabilir. Ultralytics YOLO, bu sorunu çözmek için cls_pw argümanı aracılığıyla sınıf ağırlıklandırmayı destekler.

cls_pw argümanı, ters sınıf frekansına dayalı sınıf ağırlıklandırma gücünü kontrol eder:

  • cls_pw=0.0 (varsayılan): Sınıf ağırlıklandırmayı devre dışı bırakır
  • cls_pw=1.0: Tam ters frekans ağırlıklandırması uygular
  • 0.0 ile 1.0 arasındaki değerler: Orta dereceli dengesizlik için kısmi ağırlıklandırma sağlar

The class weights are computed as (1.0 / class_counts) ^ cls_pw and normalized so their mean equals 1.0.

Dengesiz Veri Kümesinde Eğitim
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train with full class weighting for severely imbalanced data
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=1.0)

# Or use partial weighting (0.25) for moderate imbalance
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=0.25)
İpucu

Orta derecede dengesiz veri kümeleri için cls_pw=0.25 ile başla ve nadir sınıflar hala düşük performans gösteriyorsa 1.0 değerine çıkar. Ağırlık dağılımını doğrulamak için hesaplanan sınıf ağırlıklarını eğitim günlüklerinden kontrol edebilirsin.

Link to this sectionApple silikon çiplerde YOLO26 modellerini eğitebilir miyim?#

Evet, Ultralytics YOLO26, Metal Performance Shaders (MPS) çerçevesinden yararlanarak Apple silikon çiplerde eğitimi destekler. Eğitim cihazın olarak 'mps' belirt.

MPS Eğitim Örneği
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Daha fazla ayrıntı için Apple Silicon MPS Eğitimi bölümüne bak.

Link to this sectionYaygın eğitim ayarları nelerdir ve bunları nasıl yapılandırırım?#

Ultralytics YOLO26, toplu iş boyutu (batch size), öğrenme oranı, dönem sayısı (epochs) ve daha fazlası gibi çeşitli eğitim ayarlarını argümanlar aracılığıyla yapılandırmana olanak tanır. İşte kısa bir özet:

ArgümanVarsayılanAçıklama
modelNoneEğitim için model dosyasının yolu.
dataNoneVeri kümesi yapılandırma dosyasının yolu (örneğin, coco8.yaml).
epochs100Toplam eğitim dönemi sayısı.
batch16Tamsayı veya otomatik mod olarak ayarlanabilir toplu iş boyutu.
imgsz640Eğitim için hedef görüntü boyutu.
deviceNonecpu, 0, 0,1 veya mps gibi eğitim için hesaplama cihazı(ları).
saveTrueEğitim kontrol noktalarının ve son model ağırlıklarının kaydedilmesini etkinleştirir.

Eğitim ayarları hakkında ayrıntılı bir kılavuz için Eğitim Ayarları bölümüne bak.

Yorumlar