Link to this sectionYaygın YOLO Sorunlarını Giderme#
Bu rehber, Ultralytics YOLO26 ile çalışırken karşılaşacağın en yaygın sorunları, oluştukları yere göre gruplandırılmış şekilde kapsar: kurulum, model eğitimi, tahmin ve dağıtım. Hatanla eşleşen kategoriye atla veya hızlı yanıtlar için SSS bölümüne göz at. Her giriş, sorunu ve doğrudan uygulayabileceğin somut bir çözüm yolunu belirtir.
Watch: Ultralytics YOLO26 Common Issues | Installation Errors, Model Training Issues
Link to this sectionYaygın Sorunlar#
Link to this sectionKurulum 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 daha yeni) sürümünün doğru bir şekilde yüklendiğinden 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. pip install -U ultralytics komutunu çalıştır ve daha derinlemesine hata ayıklamadan önce PyTorch ve CUDA sürümlerinin uyumlu olduğunu doğrula.
Link to this sectionİç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.
Link to this sectionYOLO26'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 ile 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. Eğer 'True' sonucunu alırsan, 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}")Link to this sectionModel Eğitimi Sorunları#
Yaygın eğitim sorunları ve bunların düzeltmeleri aşağıda ele alınmıştır.
Link to this sectionYapılandırma Ayarlarının Doğrulanması#
Sorun: .yaml dosyasındaki yapılandırma ayarlarının model eğitimi sırasında doğru şekilde uygulanıp uygulanmadığından emin değilsin.
Çözüm: .yaml dosyasındaki yapılandırma ayarları, model.train() işlevi kullanılırken uygulanmalıdır. Bu ayarların doğru şekilde uygulandığından emin olmak için şu adımları takip et:
-
.yamlyapılandırma dosyana giden yolun doğru olduğunu onayla. -
Make sure you pass the path to your
.yamlfile as thedataargument when callingmodel.train(), as shown below:model.train(data="/path/to/your/data.yaml", batch=4)
Link to this sectionBirden 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: Batch size değerini artırmak eğitimi hızlandırabilir, ancak GPU bellek kapasitesini dikkate almak önemlidir. Çoklu GPU 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 dizinleri listesine ayarla, örneğindevice=[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])
Link to this sectionSü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
- 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.
Link to this sectionEğ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, accuracy ve daha fazlası dahil olmak üzere eğitim metriklerini görselleştirmek için popüler bir tercihtir. Bunu YOLO26 eğitim sürecine entegre edebilirsin.
- Comet: Comet, deney takibi ve karşılaştırması için kapsamlı bir araç kiti sağlar. Metrikleri, hiperparametreleri ve hatta model ağırlıklarını takip etmene olanak tanır. YOLO modelleriyle entegrasyonu da oldukça kolaydır ve deney döngünün tam bir özetini 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 bir platform sağlar. YOLO odaklı olduğu için daha özelleştirilmiş takip seçenekleri sunar.
Link to this sectionEğ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 kullanılabilir bir GPU'yu otomatik olarak seçecek şekilde ayarlandığı anlamına gelir ki bu varsayılan davranıştır. Belirli bir GPU üzerinde eğitim yapmak için, eğitimi başlatırken device argümanını ayarla. device bir eğitim argümanıdır, bu yüzden onu veri seti .yaml dosyan içinde ayarlamanın bir etkisi olmaz:
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.
Link to this sectionEtkili 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
- Önemi: Herhangi bir machine learning modelinin temeli, eğitildiği verilerin kalitesi ve biçiminde yatar.
- Ö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)
- Önemi: Model yakınsamasına ulaşmak, modelin training data üzerinden yeterince öğrendiğinden emin olmanı sağlar.
- Öneri: Bir modeli 'sıfırdan' eğitirken, modelin tatmin edici bir yakınsama seviyesine ulaştığından emin olmak hayati önem taşır. Bu, mevcut bir modeli ince ayarlarken (fine-tuning) olduğundan daha fazla epochs ile daha uzun bir eğitim süresi gerektirebilir.
Learning Rate ve 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.
Link to this sectionModel 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.
Link to this sectionYOLO26 Ö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ş.
Link to this sectionYOLO26 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=2Link to this sectionYOLO26'da Hassasiyet (Precision) Metriklerini Anlama#
Sorun: YOLO26'daki kutu hassasiyeti, maske hassasiyeti ve 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 sınırlayıcı kutulara göre doğruluğunu ölçer. Maske hassasiyeti, tahmin edilen segmentasyon maskeleri ile gerçek maskeler arasındaki uyumu piksel bazında nesne sınıflandırmasında değerlendirir. Öte yandan karışıklık matrisi hassasiyeti, tüm sınıflar genelinde 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 bounding box geometrik olarak doğru (gerçek pozitif) olabileceğini ve bunun kutu hassasiyeti ile karışıklık matrisi hassasiyeti arasında farklara yol açtığını unutmamak önemlidir. Bu metrikler, modelin performansının farklı yönlerini değerlendirir ve çeşitli görevlerde farklı değerlendirme metriklerine duyulan ihtiyacı yansıtır.
Link to this sectionYOLO26'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: Bounding box boyutlarını almak için, önce bir görüntüdeki nesneleri tahmin etmek için Ultralytics YOLO26 modelini kullan. Ardından, tahmin sonuçlarından bounding box'ları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}")Link to this sectionDağıtım (Deployment) Zorlukları#
Link to this sectionGPU 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.
Link to this sectionModel 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 belgelerindeki desteklenen formatları ve format bazlı seçenekleri gözden geçir, ardından şu kontrolleri yap:
- 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.
Link to this sectionTopluluk ve Destek#
Bu kanallar ve kaynaklar aracılığıyla yardım al ve çözümler paylaş.
Link to this sectionYardım Almak İçin Forumlar ve Kanallar#
GitHub Issues: GitHub üzerindeki YOLO26 deposu, soru sorabileceğin, hata bildirebileceğin ve yeni özellikler önerebileceğin bir Issues sekmesine sahiptir. Topluluk ve geliştiriciler burada oldukça aktiftir; bu, belirli sorunlarla ilgili yardım almak için harika bir yerdir.
Ultralytics Discord Sunucusu: Ultralytics'in diğer kullanıcılar ve geliştiricilerle etkileşime geçebileceğin bir Discord sunucusu bulunur.
Link to this sectionResmi Belgeler ve Kaynaklar#
Ultralytics YOLO26 Dokümanları: Resmi dokümantasyon, kurulum, kullanım ve sorun giderme kılavuzlarıyla birlikte YOLO26'ya dair kapsamlı bir genel bakış sunar.
Link to this sectionSonuç#
Most YOLO26 issues trace back to a handful of causes: version mismatches, dataset formatting, and GPU configuration. When an error isn't covered here, search the GitHub Issues tab or ask on the Discord server — chances are someone has already solved it. For deeper training problems, see the Model Training Tips guide for practical advice on getting better results with your computer vision projects.
Link to this sectionSSS#
Link to this sectionYOLO26 ile kurulum hatalarını nasıl çözebilirim?#
Kurulum hataları genellikle uyumluluk sorunlarından veya eksik bağımlılıklardan kaynaklanabilir. Python 3.8 veya üzerini kullandığından ve PyTorch 1.8 veya üzerinin yüklü olduğundan emin ol. Çakışmaları önlemek için sanal ortamlar kullanman faydalıdır. Adım adım kurulum kılavuzu için resmi kurulum kılavuzumuzu takip et. Eğer içe aktarma (import) hatalarıyla karşılaşırsan, temiz bir kurulum yapmayı veya kütüphaneyi en son sürüme güncellemeyi dene.
Link to this sectionYOLO26 model eğitimim neden tek bir GPU üzerinde yavaş çalışıyor?#
Tek bir GPU'da eğitim, büyük yığın boyutları (batch size) veya yetersiz bellek nedeniyle yavaş olabilir. Eğitimi hızlandırmak için birden fazla GPU kullan. Sisteminde birden fazla GPU olduğundan emin ol ve device bağımsız değişkenini ayarla, örneğin: device=[0,1,2,3]. GPU'ları bellek sınırlarını aşmadan tam olarak kullanmak 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])Link to this sectionYOLO26 modelimin GPU üzerinde eğitildiğinden nasıl emin olabilirim?#
Eğer eğitim günlüklerinde 'device' değeri 'null' görünüyorsa, bu genellikle eğitim sürecinin kullanılabilir bir GPU'yu otomatik olarak seçecek şekilde ayarlandığı anlamına gelir. Belirli bir GPU'yu açıkça atamak için, eğitimi başlatırken device argümanını geç; örneğin ilk GPU için yolo train data=path/to/data.yaml device=0 komutunu kullan. CUDA kurulumunu doğrulamak için nvidia-smi komutuna danış.
Link to this sectionYOLO26 model eğitim sürecimi nasıl izleyebilir ve takip edebilirim?#
Eğitim ilerlemesini izlemek 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), doğruluk, hatırlama ve mAP gibi metrikleri günlüğe kaydetmene ve görselleştirmene olanak tanır. Bu metrikleri temel alarak erken durdurma uygulamak, daha iyi eğitim sonuçları elde etmene de yardımcı olabilir.
Link to this sectionYOLO26 veri kümesi formatımı tanımazsa ne yapmalıyım?#
Veri setinin ve etiketlerinin beklenen formata uygun olduğundan emin ol. Açıklamaların doğru ve yüksek kalitede olduğunu doğrula. Herhangi bir sorunla karşılaşırsan, en iyi uygulamalar için Veri Toplama ve Etiketleme rehberine bak. Daha fazla veri setine özel rehberlik için belgelerdeki Veri Setleri bölümünü kontrol et.