Yaygın YOLO Sorunlarını Giderme#
Bu kılavuz, Ultralytics YOLO26 ile çalışırken karşılaşacağın en yaygın sorunları, oluştuğu yerlere göre gruplandırarak ele alır: kurulum, model eğitimi, tahmin ve dağıtım. Hatana uyan kategoriye atla veya hızlı yanıtlar için SSS bölümüne göz at. Her girdi, sorunu ve doğrudan uygulayabileceğin somut bir düzeltmeyi belirtir.
Watch: Ultralytics YOLO26 Common Issues | Installation Errors, Model Training Issues
Yaygın Sorunlar#
Kurulum Hataları#
Kurulum hataları; uyumsuz sürümler, eksik bağımlılıklar veya yanlış ortam yapılandırmaları gibi çeşitli nedenlerden dolayı ortaya çıkabilir. Öncelikle aşağıdakileri yaptığından emin ol:
- Önerildiği gibi Python 3.8 veya daha yeni bir sürümünü kullanıyorsun.
- PyTorch (1.8 veya üzeri) doğru sürümünün yüklü olduğundan emin ol.
- Çakışmaları önlemek için sanal ortamlar kullanmayı düşün.
- Resmi kurulum kılavuzunu adım adım takip et.
Ek olarak, yaygın kurulum sorunlarına yönelik çözümler burada yer almaktadır.
Birçok içe aktarma, GPU ve dışa aktarma hatası sadece güncelleme yapılarak giderilir. Daha derinlemesine hata ayıklama yapmadan önce pip install -U ultralytics komutunu çalıştır ve PyTorch ile CUDA sürümlerinin uyumlu olduğunu doğrula.
İçe Aktarma Hataları veya Bağımlılık Sorunları#
YOLO26'yı içe aktarırken hatalar alıyorsan veya bağımlılık çakışmalarıyla karşılaşıyorsan, şu adımları dene:
- Temiz Kurulum: Temiz bir kurulumla başlamak, özellikle paket yapısını veya işlevselliğini değiştiren güncellemelerden sonra beklenmedik sorunları çözebilir.
- Düzenli Güncelleme: Kütüphanenin en son sürümünü kullan; çünkü eski sürümler yakın zamandaki güncellemelerle uyumlu olmayabilir.
- Bağımlılıkları Kontrol Et: Gerekli tüm bağımlılıkların doğru şekilde kurulduğundan ve uyumlu sürümlere sahip olduğundan emin ol.
- Değişiklikleri İncele: Eğer eski bir sürüm kurduysan, herhangi bir yapısal değişiklikten haberdar olmak için resmi belgelere veya değişiklik günlüğüne bak.
YOLO26'yı GPU üzerinde çalıştırma#
Eğer YOLO26'yı bir GPU üzerinde çalıştırmada sorun yaşıyorsan, şu sorun giderme adımlarını değerlendir:
- CUDA Uyumluluğunu ve Kurulumunu Doğrula: GPU'nun CUDA uyumlu olduğundan ve CUDA'nın doğru şekilde yüklendiğinden emin ol. NVIDIA GPU'nun durumunu ve CUDA sürümünü kontrol etmek için
nvidia-smikomutunu kullan. - PyTorch ve CUDA Entegrasyonunu Kontrol Et: Bir Python terminalinde
import torch; print(torch.cuda.is_available())komutunu çalıştırarak PyTorch'un CUDA'yı kullanabildiğinden emin ol. 'True' döndürürse PyTorch, CUDA'yı kullanacak şekilde ayarlanmıştır. - Ortam Etkinleştirme: Gerekli tüm paketlerin yüklü olduğu doğru ortamda olduğundan emin ol.
- Paketlerini Güncelle: Güncelliğini yitirmiş paketler GPU'nla uyumlu olmayabilir. Onları güncel tut.
- Program Yapılandırması: Kodunun GPU kullanımı talep edip etmediğini kontrol et. Eğitim veya tahmin çalıştırırken
deviceargümanını ayarlayabilirsin (örneğin,device=0).
Turing öncesi GPU mimarilerine yönelik destek — 1080 Ti gibi 7.5'in altındaki işlem kapasitesine (SM) sahip olanlar — cuDNN 9.11.0 ile kaldırıldı. Eski bir GPU'da, daha önceki bir CUDA/cuDNN sürümüyle derlenmiş bir PyTorch yapısına ihtiyaç duyabilirsin. Kurulumunu şununla kontrol et:
import torch
cap = torch.cuda.get_device_capability(0) if torch.cuda.is_available() else (0, 0)
cudnn = torch.backends.cudnn.version() or 0
ok = "not compatible" if cudnn >= 91100 and (cap[0] < 7 or (cap[0] == 7 and cap[1] < 5)) else "should be ok"
print(f"Compute capability: SM {cap[0]}.{cap[1]}, cuDNN: {cudnn} => {ok}")Model Eğitimi Sorunları#
Yaygın eğitim sorunları ve bunların düzeltmeleri aşağıda ele alınmıştır.
Yapılandırma Ayarlarının Doğrulanması#
Sorun: Model eğitimi sırasında .yaml dosyasındaki yapılandırma ayarlarının doğru şekilde uygulanıp uygulanmadığından emin değilsin.
Çözüm: .yaml dosyasındaki yapılandırma ayarları, model.train() fonksiyonu kullanılırken uygulanmalıdır. Bu ayarların doğru şekilde uygulandığından emin olmak için şu adımları izle:
-
.yamlyapılandırma dosyanın yolunun doğru olduğunu onayla. -
Aşağıda gösterildiği gibi,
model.train()çağrısı yaparken.yamldosyanın yolunudataargümanı olarak geçirdiğinden emin ol:model.train(data="/path/to/your/data.yaml", batch=4)
Birden Fazla GPU ile Eğitimi Hızlandırma#
Sorun: Eğitim tek bir GPU üzerinde yavaş ilerliyor ve süreci birden fazla GPU kullanarak hızlandırmak istiyorsun.
Çözüm: Yığın boyutunu (batch size) artırmak eğitimi hızlandırabilir, ancak GPU bellek kapasitesini dikkate almak esastır. Çoklu GPU'lar ile eğitimi hızlandırmak için şu adımları izle:
-
Birden fazla GPU'ya sahip olduğundan emin ol.
-
deviceargümanını bir GPU indeksleri listesine ayarla, örn.device=[0,1,2,3]. -
Bellek sınırlarını aşmadan birden fazla GPU'dan tam olarak yararlanmak için batch size değerini uygun şekilde artır.
-
Eğitim komutunu birden fazla GPU kullanacak şekilde değiştir:
# Adjust the batch size and other settings as needed to optimize training speed model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])
Sürekli İzleme Parametreleri#
Sorun: Eğitim sırasında kaybın (loss) dışında hangi parametrelerin sürekli izlenmesi gerektiğini bilmek istiyorsun.
Çözüm: Kayıp, izlenmesi gereken önemli bir metrik olsa da, model performans optimizasyonu için diğer metrikleri de takip etmek önemlidir. Eğitim sırasında izlenmesi gereken bazı temel metrikler şunlardır:
- Precision
- Recall
- Ortalama Duyarlılık (Mean Average Precision) (mAP)
Bu metriklere eğitim günlüklerinden erişebilir veya görselleştirme için TensorBoard ya da wandb gibi araçları kullanabilirsin. Bu metrikleri temel alarak erken durdurma (early stopping) uygulamak daha iyi sonuçlar elde etmene yardımcı olabilir.
Eğitim İlerlemesini Takip Etme Araçları#
Sorun: Eğitim ilerlemesini takip etmek için araç önerileri arıyorsun.
Çözüm: Eğitim ilerlemesini takip etmek ve görselleştirmek için şu araçları kullanmayı değerlendirebilirsin:
- TensorBoard: TensorBoard, kayıp (loss), doğruluk (accuracy) ve daha fazlası dahil olmak üzere eğitim metriklerini görselleştirmek için popüler bir seçenektir. Bunu YOLO26 eğitim sürecinle entegre edebilirsin.
- Comet: Comet, deneme takibi ve karşılaştırması için kapsamlı bir araç seti sağlar. Metrikleri, hiperparametreleri ve hatta model ağırlıklarını takip etmene olanak tanır. YOLO modelleriyle entegrasyon da basittir ve deneme döngüne dair eksiksiz bir genel bakış sunar.
- Ultralytics Platform: Ultralytics Platform, YOLO modellerini takip etmek için özel bir ortam sunarak metrikleri, veri setlerini yönetmen ve hatta ekibinle işbirliği yapman için tek duraklı bir platform sağlar. YOLO odaklı özel yapısı sayesinde daha özelleştirilmiş takip seçenekleri sunar.
Eğitimin GPU üzerinde gerçekleşip gerçekleşmediğini nasıl kontrol edersin#
Sorun: Eğitim günlüklerindeki 'device' değeri 'null' ve eğitimin GPU üzerinde gerçekleşip gerçekleşmediğinden emin değilsin.
Çözüm: 'device' değerinin 'null' olması tipik olarak eğitim sürecinin varsayılan davranış olan mevcut bir GPU'yu otomatik olarak seçecek şekilde ayarlandığı anlamına gelir. Belirli bir GPU üzerinde eğitmek için eğitim başladığında device argümanını ayarla. device bir eğitim argümanıdır, bu nedenle bunu veri seti .yaml içinde ayarlamanın hiçbir etkisi yoktur:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Use GPU 0; device=[0, 1] for multiple GPUs, device="cpu" for CPU
model.train(data="path/to/data.yaml", device=0)Eğitim ilerlemesini etkili bir şekilde izlemek için günlükleri ve metrikleri 'runs' klasöründen takip et.
Etkili Model Eğitimi İçin Temel Hususlar#
Model eğitimiyle ilgili sorunlar yaşıyorsan aklında bulundurman gereken bazı noktalar şunlardır.
Veri Seti Biçimi ve Etiketler
- Önemli: Herhangi bir makine öğrenimi modelinin temeli, üzerinde eğitildiği verilerin kalitesine ve biçimine dayanır.
- Öneri: Özel veri setinin ve ilişkili etiketlerinin beklenen biçime uygun olduğundan emin ol. Açıklamaların doğru ve yüksek kaliteli olduğunu doğrulamak çok önemlidir. Yanlış veya düşük kaliteli açıklamalar, modelin öğrenme sürecini rayından çıkararak öngörülemez sonuçlara yol açabilir.
Model Yakınsaması (Convergence)
- Önemli: Model yakınsamasına (convergence) ulaşmak, modelin eğitim verilerinden yeterince öğrendiğini garanti eder.
- Öneri: Bir modeli 'sıfırdan' (from scratch) eğitirken, modelin tatmin edici bir yakınsama düzeyine ulaşmasını sağlamak çok önemlidir. Bu durum, mevcut bir modeli ince ayar (fine-tuning) yaparken olduğundan daha fazla dönem (epoch) içeren daha uzun bir eğitim süresi gerektirebilir.
Öğrenme Oranı (Learning Rate) ve Yığın Boyutu (Batch Size)
- Önemi: Bu hiperparametreler, modelin eğitim sırasında ağırlıklarını nasıl güncelleyeceğini belirlemede çok önemli bir rol oynar.
- Öneri: Seçilen öğrenme oranının (learning rate) ve batch size'ın kendi özel veri setin için optimal olup olmadığını düzenli olarak değerlendir. Veri setinin özellikleriyle uyumlu olmayan parametreler modelin performansını engelleyebilir.
Sınıf Dağılımı
- Önemi: Veri setindeki sınıfların dağılımı, modelin tahmin eğilimlerini etkileyebilir.
- Öneri: Veri setindeki sınıfların dağılımını düzenli olarak değerlendir. Eğer bir sınıf dengesizliği varsa, modelin daha yaygın olan sınıfa karşı bir önyargı geliştirme riski vardır. Bu önyargı, modelin çoğunlukla baskın sınıfı tahmin edebileceği karışıklık matrisinde (confusion matrix) açıkça görülebilir.
Önceden Eğitilmiş Ağırlıklarla Çapraz Kontrol
- Önemi: Önceden eğitilmiş ağırlıklardan yararlanmak, özellikle veri sınırlı olduğunda model eğitimi için sağlam bir başlangıç noktası sağlayabilir.
- Öneri: Bir tanılama adımı olarak, modelini aynı verileri kullanarak ancak önceden eğitilmiş ağırlıklarla başlatarak eğitmeyi düşün. Bu yaklaşım iyi biçimlendirilmiş bir karışıklık matrisi veriyorsa, 'sıfırdan' eğitilen modelin daha fazla eğitime veya ayarlamaya ihtiyaç duyabileceğini gösterebilir.
Model Tahminleriyle İlgili Sorunlar#
Model tahmini sırasında karşılaşılan yaygın sorunlar ve bunların çözümleri aşağıda ele alınmıştır.
YOLO26 Özel Modelinle Sınırlayıcı Kutu (BBox) Tahminleri Alma#
Sorun: Özel bir YOLO26 modeliyle tahminler yaparken, sınırlayıcı kutu koordinatlarının biçimi ve görselleştirilmesiyle ilgili zorluklar yaşanıyor.
Çözüm:
-
Koordinat Biçimi: YOLO26, sınırlayıcı kutu koordinatlarını mutlak piksel değerleri olarak sağlar. Bunları göreceli koordinatlara (0 ile 1 arasında değişen) dönüştürmek için görüntü boyutlarına bölmen gerekir. Örneğin, görüntü boyutunun 640x640 olduğunu varsayalım. O zaman şunları yapmalısın:
# Convert absolute coordinates to relative coordinates x1 = x1 / 640 # Divide x-coordinates by image width x2 = x2 / 640 y1 = y1 / 640 # Divide y-coordinates by image height y2 = y2 / 640 -
Dosya Adı: Tahmin yaptığın görüntünün dosya adını almak için, tahmin döngün içerisindeki sonuç nesnesinden görüntü dosya yoluna doğrudan eriş.
YOLO26 Tahminlerinde Nesneleri Filtreleme#
Sorun: Ultralytics kütüphanesini kullanarak YOLO26 çalıştırırken, tahmin sonuçlarında yalnızca belirli nesneleri nasıl filtreleyip görüntüleyeceğinle ilgili sorunlar yaşanıyor.
Çözüm: Belirli sınıfları tespit etmek için çıktıya dahil etmek istediğin sınıfları belirtmek üzere classes argümanını kullan. Örneğin, sadece arabaları tespit etmek için (arabaların sınıf dizininin 2 olduğunu varsayarak):
yolo task=segment mode=predict model=yolo26n-seg.pt source='path/to/car.mp4' show=True classes=2YOLO26'da Hassasiyet (Precision) Metriklerini Anlama#
Sorun: YOLO26'da kutu hassasiyeti, maske hassasiyeti ve karışıklık matrisi (confusion matrix) hassasiyeti arasındaki farkla ilgili kafa karışıklığı.
Çözüm: Kutu hassasiyeti, metrik olarak IoU (Intersection over Union) kullanarak tahmin edilen sınırlayıcı kutuların gerçek temel gerçek (ground truth) kutulara kıyasla doğruluğunu ölçer. Maske hassasiyeti, piksel bazlı nesne sınıflandırmasında tahmin edilen segmentasyon maskeleri ile temel gerçek maskeleri arasındaki uyumu değerlendirir. Öte yandan karışıklık matrisi hassasiyeti, tüm sınıflarda genel sınıflandırma doğruluğuna odaklanır ve tahminlerin geometrik doğruluğunu dikkate almaz. Sınıf tahmini yanlış olsa bile bir sınırlayıcı kutunun geometrik olarak doğru (gerçek pozitif) olabileceğini ve bunun kutu hassasiyeti ile karışıklık matrisi hassasiyeti arasında farklara yol açabileceğini unutmamak önemlidir. Bu metrikler, bir modelin performansının farklı yönlerini değerlendirir ve çeşitli görevlerde farklı değerlendirme metriklerine duyulan ihtiyacı yansıtır.
YOLO26'da Nesne Boyutlarını Çıkarma#
Sorun: YOLO26'da tespit edilen nesnelerin uzunluğunu ve yüksekliğini alırken, özellikle bir görüntüde birden fazla nesne tespit edildiğinde yaşanan zorluk.
Çözüm: Sınırlayıcı kutu boyutlarını almak için, önce bir görüntüdeki nesneleri tahmin etmek üzere Ultralytics YOLO26 modelini kullan. Ardından, tahmin sonuçlarından sınırlayıcı kutuların genişlik ve yükseklik bilgilerini çıkar.
from ultralytics import YOLO
# Load a pretrained YOLO26 model
model = YOLO("yolo26n.pt")
# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"
# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.25)
# Extract bounding box dimensions
boxes = results[0].boxes.xywh.cpu()
for box in boxes:
x, y, w, h = box
print(f"Width of Box: {w}, Height of Box: {h}")Dağıtım (Deployment) Zorlukları#
GPU Dağıtım Sorunları#
Sorun: Modelleri çoklu GPU ortamında dağıtmak bazen beklenmedik bellek kullanımı, GPU'lar arasında tutarsız sonuçlar vb. gibi beklenmedik davranışlara yol açabilir.
Çözüm: Varsayılan GPU başlatmasını kontrol et. PyTorch gibi bazı çerçeveler, belirlenen GPU'lara geçmeden önce CUDA işlemlerini varsayılan bir GPU üzerinde başlatabilir. Beklenmedik varsayılan başlatmaları atlatmak için, dağıtım ve tahmin sırasında GPU'yu doğrudan belirt. Ardından, gerçek zamanlı anomalileri tespit etmek için GPU kullanımını ve bellek tüketimini izleyen araçları kullan. Ayrıca, çerçevenin veya kütüphanenin en son sürümünü kullandığından emin ol.
Model Dönüştürme/Dışa Aktarma Sorunları#
Sorun: Makine öğrenimi modellerini farklı biçimlere veya platformlara dönüştürme veya dışa aktarma sürecinde kullanıcılar hatalarla veya beklenmedik davranışlarla karşılaşabilir.
Çözüm: Dışa Aktarma Modu (Export mode) belgelerindeki desteklenen formatları ve format başına seçenekleri incele, ardından şu kontrolleri gerçekleştir:
- Uyumluluk Kontrolü: Birbiriyle uyumlu kütüphane ve çerçeve sürümleri kullandığından emin ol. Uyumsuz sürümler dönüştürme sırasında beklenmedik hatalara yol açabilir.
- Ortamı Sıfırlama: Jupyter veya Colab gibi etkileşimli bir ortam kullanıyorsan, önemli değişiklikler veya kurulumlar yaptıktan sonra ortamını yeniden başlatmayı değerlendir. Temiz bir başlangıç bazen altta yatan sorunları çözebilir.
- Resmi Dokümantasyon: Dönüştürme için kullandığın aracın veya kütüphanenin resmi belgelerine her zaman başvur. Genellikle model dışa aktarma için özel kılavuzlar ve en iyi uygulamaları içerir.
- Topluluk Desteği: Kütüphanenin veya çerçevenin resmi deposunda diğer kullanıcılar tarafından bildirilen benzer sorunları kontrol et. Bakımcılar veya topluluk, tartışma başlıklarında çözümler veya geçici yollar sağlamış olabilir.
- Düzenli Güncelleme: Aracın veya kütüphanenin en son sürümünü kullandığından emin ol. Geliştiriciler, bilinen hataları düzelten veya işlevselliği geliştiren güncellemeleri sık sık yayınlar.
- Aşamalı Test Et: Tam bir dönüştürme işlemi gerçekleştirmeden önce, potansiyel sorunları erken aşamada tespit etmek için süreci daha küçük bir model veya veri setiyle test et.
Topluluk ve Destek#
Bu kanallar ve kaynaklar aracılığıyla yardım al ve çözümler paylaş.
Yardım Almak İçin Forumlar ve Kanallar#
GitHub Sorunları: GitHub üzerindeki YOLO26 deposunda soru sorabileceğin, hata bildirebileceğin ve yeni özellikler önerebileceğin bir Issues tab bulunur. Topluluk ve sürdürücüler burada aktiftir ve belirli sorunlarla ilgili yardım almak için harika bir yerdir.
Ultralytics Discord Sunucusu: Ultralytics, diğer kullanıcılar ve geliştiricilerle etkileşime girebileceğin bir Discord server sunucusuna sahiptir.
Resmi Belgeler ve Kaynaklar#
Ultralytics YOLO26 Belgeleri: Resmi belgeler; kurulum, kullanım ve sorun giderme kılavuzlarıyla birlikte YOLO26'ya kapsamlı bir genel bakış sağlar.
Sonuç#
Çoğu YOLO26 sorunu birkaç temel nedene dayanır: sürüm uyumsuzlukları, veri kümesi biçimlendirmesi ve GPU yapılandırması. Bir hata burada ele alınmamışsa, GitHub Issues sekmesinde arama yap veya Discord server üzerinden sor — muhtemelen birileri bunu çoktan çözmüştür. Daha derin training sorunları için, computer vision projelerinde daha iyi sonuçlar elde etmeye yönelik pratik tavsiyeler içeren Model Training Tips kılavuzuna göz at.
SSS#
YOLO26 ile kurulum hatalarını nasıl çözebilirim?#
Kurulum hataları genellikle uyumluluk sorunlarından veya eksik bağımlılıklardan kaynaklanabilir. Python 3.8 veya sonraki bir sürümünü kullandığından ve PyTorch 1.8 veya sonraki bir sürümünün kurulu olduğundan emin ol. Çakışmaları önlemek için sanal ortamlar kullanmak faydalıdır. Adım adım bir kurulum kılavuzu için resmi kurulum kılavuzumuzu takip et. İçe aktarma hatalarıyla karşılaşırsan, temiz bir kurulum yapmayı dene veya kütüphaneyi en son sürüme güncelle.
YOLO26 model eğitimim neden tek bir GPU üzerinde yavaş çalışıyor?#
Tek bir GPU üzerinde eğitim, büyük yığın boyutları veya yetersiz bellek nedeniyle yavaş olabilir. Eğitimi hızlandırmak için birden fazla GPU kullan. Sisteminde birden fazla GPU'nun mevcut olduğundan emin ol ve device argümanını ayarla, örn. device=[0,1,2,3]. Bellek sınırlarını aşmadan GPU'lardan tam olarak yararlanmak için yığın boyutunu buna göre artır. Örnek komut:
model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])YOLO26 modelimin GPU üzerinde eğitildiğinden nasıl emin olabilirim?#
Eğitim loglarında 'device' değeri 'null' olarak görünüyorsa, bu genellikle eğitim sürecinin mevcut bir GPU'yu otomatik olarak seçecek şekilde ayarlandığı anlamına gelir. Belirli bir GPU'yu açıkça atamak için eğitim başladığında device argümanını, örneğin ilk GPU için yolo train data=path/to/data.yaml device=0 değerini ilet. CUDA kurulumunu doğrulamak için nvidia-smi komutuna başvur.
YOLO26 model eğitim sürecimi nasıl izleyebilir ve takip edebilirim?#
Eğitim ilerlemesini takip etmek ve görselleştirmek; TensorBoard, Comet ve Ultralytics Platform gibi araçlar aracılığıyla verimli bir şekilde yönetilebilir. Bu araçlar; kayıp (loss), hassasiyet (precision), duyarlılık (recall) ve mAP gibi metrikleri kaydetmene ve görselleştirmene olanak tanır. Bu metrikleri temel alarak erken durdurma (early stopping) uygulamak, daha iyi eğitim sonuçları elde etmeye de yardımcı olabilir.
YOLO26 veri kümesi formatımı tanımazsa ne yapmalıyım?#
Veri setinin ve etiketlerin beklenen formata uygun olduğundan emin ol. Ek açıklamaların doğru ve yüksek kalitede olduğunu doğrula. Herhangi bir sorunla karşılaşırsan, en iyi uygulamalar için Data Collection and Annotation kılavuzuna başvur. Daha fazla veri seti odaklı rehberlik için belgelerdeki Datasets bölümünü kontrol et.