Hata Raporları için Minimum Tekrarlanabilir Örnek Oluşturma#
Ultralytics YOLO depoları için hata raporu gönderirken Minimum Tekrarlanabilir Örnek (MRE) sunman çok önemlidir. MRE, karşılaştığın sorunu gösteren, küçük ve kendi başına yeterli bir kod parçasıdır. MRE sunmak, bakımcıların ve katkıda bulunanların sorunu anlamasına ve daha verimli şekilde çözüm üzerinde çalışmasına yardımcı olur. Bu kılavuz, Ultralytics YOLO depolarına hata raporu gönderirken MRE'nin nasıl oluşturulacağını açıklar.
1. Sorunu Yalıt#
MRE oluşturmanın ilk adımı sorunu yalıtmaktır. Sorunla doğrudan ilgili olmayan gereksiz kodları veya bağımlılıkları kaldır. Soruna yol açan belirli kod bölümüne odaklan ve ilgisiz kısımları çıkar.
2. Herkese Açık Modeller ve Veri Kümeleri Kullan#
MRE oluştururken sorunu yeniden üretmek için herkese açık modeller ve veri kümeleri kullan. Örneğin, yolo26n.pt modelini ve coco8.yaml veri kümesini kullan. Böylece bakımcılar ve katkıda bulunanlar, özel verilere veya özel modellere erişmeleri gerekmeden örneğini kolayca çalıştırıp sorunu inceleyebilir.
3. Gerekli Tüm Bağımlılıkları Ekle#
Gerekli tüm bağımlılıkların MRE'ye dahil edildiğinden emin ol. Kodun harici kitaplıklara dayanıyorsa gerekli paketleri ve sürümlerini belirt. İdeal olarak, ultralytics yüklüyse hata raporunda bağımlılıkları yolo checks kullanarak, diğer araçlar içinse pip list kullanarak listele.
4. Sorunu Açıkça Açıkla#
Karşılaştığın sorunu açık ve öz bir şekilde açıkla. Beklenen davranışı ve karşılaştığın gerçek davranışı belirt. Uygunsa ilgili hata mesajlarını veya günlük kayıtlarını ekle.
5. Kodunu Doğru Biçimlendir#
Kodunu, sorun açıklamasında kod blokları kullanarak doğru biçimlendir. Böylece başkalarının kodunu okuması ve anlaması kolaylaşır. GitHub'da kodunu üçlü ters tırnaklarla (```) çevreleyip dili belirterek kod bloğu oluşturabilirsin:
```python
# Your Python code goes here
```6. MRE'ni Test Et#
MRE'ni göndermeden önce, sorunu doğru şekilde yeniden ürettiğinden emin olmak için test et. Başkalarının örneğini herhangi bir sorunla karşılaşmadan veya değişiklik yapmadan çalıştırabildiğinden emin ol.
MRE Örneği#
Varsayımsal bir hata raporu için MRE örneği:
Hata açıklaması:
0 kanallı bir görüntü üzerinde çıkarım çalıştırırken girdi tensörünün boyutlarıyla ilgili bir hata alıyorum.
MRE:
import torch
from ultralytics import YOLO
# Modeli yükle
model = YOLO("yolo26n.pt")
# 0 kanallı bir görüntü yükle
image = torch.rand(1, 0, 640, 640)
# Modeli çalıştır
results = model(image)Hata mesajı:
RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels insteadBağımlılıklar:
torch==2.8.0ultralytics==8.4.142
Bu örnekte MRE, sorunu en az miktarda kodla gösteriyor, herkese açık bir model ("yolo26n.pt") kullanıyor, gerekli tüm bağımlılıkları içeriyor ve hata mesajıyla birlikte sorunun açık bir açıklamasını sunuyor.
Bu yönergeleri izleyerek Ultralytics YOLO depolarının bakımcılarının ve katkıda bulunanlarının sorunu daha verimli anlamasına ve çözmesine yardımcı olursun.
Sık Sorulan Sorular#
Ultralytics YOLO depolarındaki hata raporları için etkili bir Minimum Tekrarlanabilir Örnek (MRE) oluşturmak için şu adımları izle:
- Sorunu Yalıt: Sorunla doğrudan ilgili olmayan kodları veya bağımlılıkları kaldır.
- Herkese Açık Modeller ve Veri Kümeleri Kullan: Sorunun daha kolay yeniden üretilebilmesi için
yolo26n.ptvecoco8.yamlgibi herkese açık kaynaklardan yararlan. - Gerekli Tüm Bağımlılıkları Ekle: Gerekli paketleri ve sürümlerini belirt.
ultralyticsyüklüyse bağımlılıklarıyolo checkskullanarak, değilsepip listkullanarak listeleyebilirsin. - Sorunu Açıkça Açıkla: Hata mesajları veya günlük kayıtları da dahil olmak üzere beklenen ve gerçekleşen davranışı açıkla.
- Kodunu Doğru Biçimlendir: Kodunun okunmasını kolaylaştırmak için kod blokları kullan.
- MRE'ni Test Et: MRE'nin sorunu değişiklik gerektirmeden yeniden ürettiğinden emin ol.
Ayrıntılı bir kılavuz için Minimum Tekrarlanabilir Örnek Oluşturma sayfasına bak.
MRE'nde herkese açık modeller ve veri kümeleri kullanman, bakımcıların özel verilere erişmeleri gerekmeden örneğini kolayca çalıştırabilmesini sağlar. Bu da sorunların daha hızlı ve verimli çözülmesine olanak tanır. Örneğin,
yolo26n.ptmodelini vecoco8.yamlveri kümesini kullanmak hata ayıklama sürecini standartlaştırmaya ve basitleştirmeye yardımcı olur. Herkese açık modeller ve veri kümeleri hakkında daha fazla bilgi için Herkese Açık Modeller ve Veri Kümeleri Kullan bölümüne bak.Ultralytics YOLO için kapsamlı bir hata raporunda şunlar bulunmalıdır:
- Açık Açıklama: Sorunu, beklenen davranışı ve gerçekleşen davranışı açıkla.
- Hata Mesajları: İlgili hata mesajlarını veya günlük kayıtlarını ekle.
- Bağımlılıklar: Gerekli bağımlılıkları ve sürümlerini listele.
- MRE: Minimum Tekrarlanabilir Örnek sun.
- Yeniden Üretme Adımları: Sorunu yeniden üretmek için gereken adımları belirt.
Eksiksiz bir kontrol listesi için Sorunu Açıkça Açıkla bölümüne bak.
GitHub'da hata raporu gönderirken kodunu doğru biçimlendirmek için:
- Kod blokları oluşturmak için üçlü ters tırnakları (```) kullan.
- Sözdizimi vurgulaması için programlama dilini belirt; ör. ```python.
- Okunabilirlik için kodunun doğru girintilendiğinden emin ol.
Örnek:
```python # Your Python code goes here ```Kod biçimlendirmeyle ilgili daha fazla ipucu için Kodunu Doğru Biçimlendir bölümüne bak.
MRE'ni göndermeden önce şunları kontrol et:
- Sorunun yeniden üretilebildiğini doğrula.
- Tüm bağımlılıkların listelendiğinden ve doğru olduğundan emin ol.
- Gereksiz kodları kaldır.
- MRE'yi, sorunu değişiklik yapmadan yeniden ürettiğinden emin olmak için test et.
Ayrıntılı bir kontrol listesi için MRE'ni Test Et bölümünü ziyaret et.