Yaygın YOLO Sorunlarını Giderme#
Bu kılavuz, Ultralytics YOLO26 ile çalışırken karşılaşabileceğin en yaygın sorunları, ortaya çıktıkları aşamalara göre ele alır: kurulum, model eğitimi, tahmin ve dağıtım. Hatanla eşleşen kategoriye git veya hızlı yanıtlar için SSS bölümüne göz at. Her başlıkta sorun ve doğrudan uygulayabileceğin somut bir çözüm belirtilir.
İzle: Ultralytics YOLO26 Yaygın Sorunları | Kurulum Hataları, Model Eğitimi Sorunları
Sık Karşılaşılan Sorunlar#
Kurulum Hataları#
Kurulum hataları; uyumsuz sürümler, eksik bağımlılıklar veya yanlış ortam yapılandırmaları gibi çeşitli nedenlerden kaynaklanabilir. Öncelikle aşağıdakileri yaptığından emin ol:
- Önerildiği gibi Python 3.8 veya sonraki bir sürümü kullanıyorsun.
- Doğru PyTorch sürümünün (1.8 veya üzeri) yüklü olduğundan emin ol.
- Çakışmaları önlemek için sanal ortamlar kullanmayı düşün.
- Resmî kurulum kılavuzunu adım adım izle.
Ayrıca, yaygın kurulum sorunlarına yönelik çözümler aşağıda yer alıyor.
Birçok içe aktarma, GPU ve dışa aktarma hatası yalnızca yükseltme yapılarak giderilebilir. pip install -U ultralytics komutunu çalıştır ve daha derin hata ayıklamaya geçmeden önce PyTorch ve CUDA sürümlerinin uyumlu olduğunu doğrula.
İçe Aktarma Hataları veya Bağımlılık Sorunları#
YOLO26'yı içe aktarırken hata alırsan veya bağımlılık çakışmalarıyla karşılaşırsan ş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; eski sürümler yakın tarihli güncellemelerle uyumlu olmayabilir.
- Bağımlılıkları Kontrol Et: Gerekli tüm bağımlılıkların doğru yüklendiğini ve uyumlu sürümlerde olduğunu doğrula.
- Değişiklikleri İncele: Eski bir sürüm yüklediysen önemli yapısal değişiklikleri anlamak için resmî belgelere veya değişiklik günlüğüne başvur.
YOLO26'yı GPU'da Çalıştırma#
YOLO26'yı GPU'da çalıştırırken sorun yaşıyorsan aşağıdaki sorun giderme adımlarını göz önünde bulundur:
- CUDA Uyumluluğunu ve Kurulumunu Doğrula: GPU'nun CUDA ile uyumlu ve CUDA'nın doğru şekilde yüklü olduğundan emin ol. NVIDIA GPU'nun ve CUDA sürümünün durumunu kontrol etmek için
nvidia-smikomutunu kullan. - PyTorch ve CUDA Entegrasyonunu Kontrol Et: Python terminalinde
import torch; print(torch.cuda.is_available())komutunu çalıştırarak PyTorch'un CUDA'yı kullanabildiğinden emin ol. Komut 'True' döndürürse PyTorch, CUDA kullanacak şekilde yapılandırılmıştır. - Ortamı Etkinleştir: Gerekli tüm paketlerin yüklü olduğu doğru ortamda olduğundan emin ol.
- Paketlerini Güncelle: Güncel olmayan paketler GPU'nla uyumlu olmayabilir. Paketlerini güncel tut.
- Program Yapılandırması: Kodunun GPU kullanımını istediğini kontrol et. Eğitim veya tahmin çalıştırırken
devicebağımsız değişkenini ayarlayabilirsin (örneğin,device=0).
Turing öncesi GPU mimarilerine — 1080 Ti gibi, işlem yeteneği (SM) 7.5'in altında olanlara — cuDNN 9.11.0 sürümünde destek sonlandırıldı. Eski bir GPU'da, daha eski bir CUDA/cuDNN sürümüyle derlenmiş PyTorch yapısına ihtiyacın olabilir. Kurulumunu şu komutla 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 çözümleri aşağıda ele alınmıştır.
Yapılandırma Ayarlarını Doğrulama#
Sorun: Model eğitimi sırasında .yaml dosyasındaki yapılandırma ayarlarının doğru uygulanıp uygulanmadığından emin değilsin.
Çözüm: Veri kümesi ayarları ve eğitim ayarları farklı .yaml dosyalarında bulunur ve model.train() öğesinin farklı bağımsız değişkenleri üzerinden aktarılır. Bu ayarların doğru uygulandığından emin olmak için şu adımları izle:
-
.yamldosyalarının yollarının doğru olduğunu doğrula. -
Veri kümesi
.yamlöğesini (yollar, sınıf adları, bölmeler)databağımsız değişkeni olarak; özel eğitim ayarları.yamlöğesini (örneğinepochsveyalr0) isecfgbağımsız değişkeni olarak geçir. Doğrudanmodel.train()öğesine geçirilen bağımsız değişkenler her ikisinden de önceliklidir:model.train(data="/path/to/your/data.yaml", cfg="/path/to/your/cfg.yaml", batch=4)
Birden Fazla GPU ile Eğitimi Hızlandırma#
Sorun: Tek GPU'da eğitim yavaş ve birden fazla GPU kullanarak süreci hızlandırmak istiyorsun.
Çözüm: Toplu iş boyutunu artırmak eğitimi hızlandırabilir, ancak GPU bellek kapasitesini göz önünde bulundurmak önemlidir. Birden fazla GPU ile eğitimi hızlandırmak için şu adımları izle:
-
Birden fazla GPU'nun kullanılabilir olduğundan emin ol.
-
devicebağımsız değişkenini GPU dizinlerinden oluşan bir listeye ayarla; örneğindevice=[0,1,2,3]. -
Bellek sınırlarını aşmadan birden fazla GPU'dan tam olarak yararlanmak için toplu iş boyutunu uygun şekilde artır.
-
Birden fazla GPU kullanmak için eğitim komutunu değiştir:
# Eğitim hızını en iyi duruma getirmek için toplu iş boyutunu ve diğer ayarları gerektiği gibi düzenle model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])
Sürekli İzlenecek Parametreler#
Sorun: Kayıp değerinin yanı sıra eğitim sırasında hangi parametrelerin sürekli izlenmesi gerektiğini öğrenmek istiyorsun.
Çözüm: Kayıp, izlenmesi gereken önemli bir metrik olsa da model performansını iyileştirmek için diğer metrikleri de takip etmek önemlidir. Eğitim sırasında izlenecek bazı temel metrikler şunlardır:
- Kesinlik
- Duyarlılık
- Ortalama Ortalama Kesinlik (mAP)
Bu metriklere eğitim günlüklerinden veya görselleştirme için TensorBoard ya da Weights & Biases gibi araçlardan erişebilirsin. Bu metriklere dayalı erken durdurma uygulamak daha iyi sonuçlar elde etmene yardımcı olabilir.
Eğitim İlerlemesini İzleme Araçları#
Sorun: Eğitim ilerlemesini izlemek için araç önerileri arıyorsun.
Çözüm: Eğitim ilerlemesini izlemek ve görselleştirmek için aşağıdaki araçları kullanmayı düşünebilirsin:
- TensorBoard: TensorBoard; kayıp, doğruluk ve daha fazlası dâhil olmak üzere eğitim metriklerini görselleştirmek için popüler bir seçenektir. TensorBoard'u YOLO26 eğitim sürecine entegre edebilirsin.
- Comet: Comet, deneyleri izlemek ve karşılaştırmak için kapsamlı bir araç takımı sunar. Metrikleri, hiperparametreleri ve hatta model ağırlıklarını izlemeni sağlar. YOLO modelleriyle entegrasyonu da oldukça kolaydır ve deney döngüne ilişkin eksiksiz bir genel bakış sunar.
- Ultralytics Platform: Ultralytics Platform, YOLO modellerini izlemek için özel bir ortam sunar; metrikleri ve veri kümelerini yönetebileceğin, hatta ekibinle iş birliği yapabileceğin tek bir platform sağlar. YOLO'ya özel olarak tasarlandığından daha kişiselleştirilmiş izleme seçenekleri sunar.
Eğitimin GPU'da Gerçekleştiğini Nasıl Kontrol Edersin?#
Sorun: Eğitim günlüklerindeki 'device' değeri 'null' ve eğitimin GPU'da gerçekleşip gerçekleşmediğinden emin değilsin.
Çözüm: 'device' değerinin 'null' olması genellikle eğitim sürecinin kullanılabilir bir GPU'yu otomatik seçmek üzere ayarlandığı anlamına gelir; bu varsayılan davranıştır. Belirli bir GPU'da eğitim yapmak için eğitimi başlatırken device bağımsız değişkenini ayarla. device bir eğitim bağımsız değişkenidir; bu nedenle bunu veri kümesi .yaml öğesinde ayarlamanın etkisi olmaz:
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.pt")
# GPU 0'ı kullan; birden fazla GPU için device=[0, 1], CPU için device="cpu"
model.train(data="path/to/data.yaml", device=0)Eğitim ilerlemesini etkili bir şekilde izlemek için günlükleri ve metrikleri içeren 'runs' klasörünü düzenli olarak kontrol et.
Etkili Model Eğitimi İçin Temel Hususlar#
Model eğitimiyle ilgili sorunlar yaşıyorsan göz önünde bulundurman gereken bazı noktalar şunlardır.
Veri Kümesi Biçimi ve Etiketler
- Önem: Her makine öğrenmesi modelinin temeli, eğitildiği verilerin kalitesine ve biçimine dayanır.
- Öneri: Özel veri kümenin 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 yetersiz açıklamalar modelin öğrenme sürecini sekteye uğratarak öngörülemeyen sonuçlara yol açabilir.
Modelin Yakınsaması
- Önem: Modelin yakınsaması, modelin eğitim verilerinden yeterince öğrendiğini gösterir.
- Öneri: Bir modeli 'sıfırdan' eğitirken modelin tatmin edici bir yakınsama düzeyine ulaştığından emin olman çok önemlidir. Bu, mevcut bir modeli ince ayarlamaya kıyasla daha uzun bir eğitim süresi ve daha fazla epoch gerektirebilir.
Öğrenme Oranı ve Toplu İş Boyutu
- Önem: Bu hiperparametreler, eğitim sırasında modelin ağırlıklarını nasıl güncelleyeceğini belirlemede kritik rol oynar.
- Öneri: Seçtiğin öğrenme oranının ve toplu iş boyutunun kendi veri kümen için uygun olup olmadığını düzenli olarak değerlendir. Veri kümesinin özellikleriyle uyumlu olmayan parametreler model performansını olumsuz etkileyebilir.
Sınıf Dağılımı
- Önem: Veri kümesindeki sınıfların dağılımı, modelin tahmin eğilimlerini etkileyebilir.
- Öneri: Veri kümenizdeki sınıf dağılımını düzenli olarak değerlendir. Sınıf dengesizliği varsa modelin daha yaygın sınıfa yönelik bir yanlılık geliştirme riski bulunur. Bu yanlılık, modelin çoğunluk sınıfını ağırlıklı olarak tahmin edebileceği karışıklık matrisinde görülebilir.
Önceden Eğitilmiş Ağırlıklarla Çapraz Kontrol
- Önem: Önceden eğitilmiş ağırlıklardan yararlanmak, özellikle veri sınırlı olduğunda model eğitimi için sağlam bir başlangıç sağlayabilir.
- Öneri: Tanılama adımı olarak, aynı verileri kullanıp modeli önceden eğitilmiş ağırlıklarla başlatarak eğitmeyi dene. Bu yaklaşım düzgün bir karmaşıklık matrisi oluşturursa, bu durum "sıfırdan" eğitilen modelin daha fazla eğitim veya ayarlama gerektirebileceğini gösterebilir.
Model Tahminleriyle İlgili Sorunlar#
Model tahmini sırasında sık karşılaşılan sorunlar ve bunların çözümleri aşağıda ele alınmıştır.
Özel YOLO26 Modelinle Sınırlayıcı Kutu Tahminleri Alma#
Sorun: Özel bir YOLO26 modeliyle tahminler çalıştırırken, 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 sunar. Bunları 0 ile 1 arasında değişen göreli koordinatlara 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. Bu durumda aşağıdakileri yaparsın:
# Mutlak koordinatları göreli koordinatlara dönüştür x1 = x1 / 640 # x koordinatlarını görüntü genişliğine böl x2 = x2 / 640 y1 = y1 / 640 # y koordinatlarını görüntü yüksekliğine böl y2 = y2 / 640 -
Dosya Adı: Tahmin yaptığın görüntünün dosya adını almak için tahmin döngündeki her sonuç nesnesinin
pathözniteliğinden (örneğinresult.path) görüntü dosyasının yolunu oku.
YOLO26 Tahminlerinde Nesneleri Filtreleme#
Sorun: Ultralytics kütüphanesini kullanarak YOLO26 çalıştırırken, tahmin sonuçlarında yalnızca belirli nesnelerin nasıl filtrelenip gösterileceği konusunda sorun yaşanıyor.
Çözüm: Belirli sınıfları algılamak için çıktıya dahil etmek istediğin sınıfları belirtmek üzere classes argümanını kullan. Örneğin, yalnızca arabaları algılamak için ('arabaların' sınıf indeksinin 2 olduğunu varsayarak):
yolo segment predict model=yolo26n-seg.pt source='path/to/car.mp4' show=True classes=2YOLO26'da Kesinlik Ölçütlerini Anlama#
Sorun: YOLO26'da kutu kesinliği, maske kesinliği ve karmaşıklık matrisi kesinliği arasındaki fark konusunda kafa karışıklığı.
Çözüm: Kutu kesinliği, tahmin edilen sınırlayıcı kutuların gerçek referans kutularıyla doğruluğunu, ölçüt olarak IoU'yu (Kesişim Üzerine Birleşim) kullanarak ölçer. Maske kesinliği, piksel düzeyinde nesne sınıflandırmasında tahmin edilen segmentasyon maskeleri ile referans maskeler arasındaki uyumu değerlendirir. Öte yandan karmaşıklık matrisi kesinliği, tahminlerin geometrik doğruluğunu dikkate almadan tüm sınıflardaki genel sınıflandırma doğruluğuna odaklanır. Sınırlayıcı kutunun, sınıf tahmini yanlış olsa bile geometrik olarak doğru (doğru pozitif) olabileceğini ve bunun kutu kesinliği ile karmaşıklık matrisi kesinliği arasında farklılıklara yol açabileceğini unutmamak önemlidir. Bu ölçütler, bir modelin performansının farklı yönlerini değerlendirir ve çeşitli görevlerde farklı değerlendirme ölçütlerine neden ihtiyaç duyulduğunu yansıtır.
YOLO26'da Nesne Boyutlarını Çıkarma#
Sorun: YOLO26'da algılanan nesnelerin uzunluğunu ve yüksekliğini, özellikle görüntüde birden çok nesne algılandığında, almakta zorluk yaşanıyor.
Çözüm: Sınırlayıcı kutu boyutlarını almak için önce Ultralytics YOLO26 modelini kullanarak görüntüdeki nesneleri tahmin et. Ardından tahmin sonuçlarındaki 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 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'da başlatabilir. Beklenmedik varsayılan başlatmaları önlemek için dağıtım ve tahmin sırasında GPU'yu doğrudan belirt. Ardından GPU kullanımını ve bellek kullanımını izlemek, anormallikleri gerçek zamanlı belirlemek için araçlardan yararlan. 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 ya da dışa aktarma sırasında kullanıcılar hatalarla veya beklenmedik davranışlarla karşılaşabilir.
Çözüm: Dışa aktarma modu belgelerindeki desteklenen biçimleri ve biçime özel seçenekleri incele, ardından şu kontrolleri sırayla yap:
- Uyumluluk Kontrolü: Birbirleriyle uyumlu kütüphane ve çerçeve sürümlerini kullandığından emin ol. Sürüm uyuşmazlıkları 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ı yeniden başlatmayı düşün. Ortamı yeniden başlatmak bazen temel sorunları çözebilir.
- Resmî Belgeler: Dönüştürme için kullandığın aracın veya kütüphanenin resmî belgelerine her zaman başvur. Bu belgeler genellikle model dışa aktarmaya yönelik özel yönergeler ve en iyi uygulamaları içerir.
- Topluluk Desteği: Diğer kullanıcıların benzer sorunlar bildirip bildirmediğini görmek için kütüphane veya çerçevenin resmî deposuna bak. Bakım sorumluları veya topluluk, tartışma başlıklarında çözümler ya da geçici çözümler sunmuş olabilir.
- Düzenli Güncelle: Aracın veya kütüphanenin en son sürümünü kullandığından emin ol. Geliştiriciler bilinen hataları gideren veya işlevselliği iyileştiren güncellemeleri sık sık yayımlar.
- Aşamalı Test Et: Dönüştürme işleminin tamamını gerçekleştirmeden önce olası sorunları erkenden belirlemek için süreci daha küçük bir model veya veri kümesiyle test et.
Topluluk ve Destek#
Bu kanallar ve kaynaklar aracılığıyla yardım alıp çözümler paylaş.
Yardım Alabileceğin Forumlar ve Kanallar#
GitHub Issues: Ultralytics'in GitHub deposunda sorular sorabileceğin, hataları bildirebileceğin ve yeni özellikler önerebileceğin bir Issues sekmesi bulunur. Topluluk ve projeyi sürdürenler burada aktiftir; belirli sorunlar için yardım alabileceğin harika bir yerdir.
Ultralytics Discord Sunucusu: Ultralytics, diğer kullanıcılarla ve geliştiricilerle etkileşim kurabileceğin bir Discord sunucusuna sahiptir.
Resmî Belgeler ve Kaynaklar#
Ultralytics YOLO26 Belgeleri: Resmî belgeler, YOLO26'ya ilişkin kapsamlı bir genel bakışın yanı sıra kurulum, kullanım ve sorun giderme kılavuzları sunar.
Sonuç#
YOLO26 sorunlarının çoğu birkaç temel nedene dayanır: sürüm uyuşmazlıkları, veri kümesi biçimlendirmesi ve GPU yapılandırması. Bir hata burada ele alınmadıysa GitHub Issues sekmesinde ara veya Discord sunucusunda sor — muhtemelen birileri sorunu daha önce çözmüştür. Daha derin eğitim sorunları için Model Eğitimi İpuçları kılavuzuna bak; bilgisayarlı görü projelerinde daha iyi sonuçlar elde etmeye yönelik pratik öneriler bulabilirsin.
Sık Sorulan Sorular#
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 kurulu olduğundan emin ol. Çakışmaları önlemek için sanal ortamları kullanman faydalı olur. Adım adım kurulum kılavuzu için resmî kurulum kılavuzumuzu izle. İçe aktarma hatalarıyla karşılaşırsan temiz bir kurulum yapmayı veya kütüphaneyi en son sürüme güncellemeyi dene.
Tek GPU'da 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 bulunduğundan emin ol ve
deviceargümanını, örneğindevice=[0,1,2,3]değerini ayarla. Bellek sınırlarını aşmadan GPU'lardan tam olarak yararlanmak için yığın boyutunu uygun şekilde artır. Örnek komut:model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])Eğitim günlüklerinde 'device' değeri 'null' olarak görünüyorsa, 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
deviceargümanını geçir; örneğin ilk GPU içinyolo train data=path/to/data.yaml device=0kullan. CUDA kurulumunu doğrulamak içinnvidia-smikomutuna başvur.Eğitim ilerlemesini takip etme ve görselleştirme işlemleri TensorBoard, Comet ve Ultralytics Platform gibi araçlarla verimli bir şekilde yönetilebilir. Bu araçlar kayıp, kesinlik, duyarlılık ve mAP gibi ölçütleri günlüğe kaydetmeni ve görselleştirmeni sağlar. Bu ölçütlere dayalı erken durdurma uygulamak da daha iyi eğitim sonuçları elde etmeye yardımcı olabilir.
Veri kümenin ve etiketlerinin beklenen biçime uygun olduğundan emin ol. Ek açıklamaların doğru ve yüksek kaliteli olduğunu doğrula. Sorun yaşarsan en iyi uygulamalar için Veri Toplama ve Ek Açıklama kılavuzuna başvur. Veri kümesine özel daha fazla öneri için belgelerdeki Veri Kümeleri bölümüne bak.