Hata Raporları için Minimum Tekrarlanabilir Örnek Oluşturma#
Ultralytics YOLO depoları için hata raporu gönderirken bir Minimum Tekrarlanabilir Örnek (MRE) sağlamak çok önemlidir. MRE, yaşadığın sorunu gösteren küçük ve kendi içinde yeterli bir kod parçasıdır. Bir MRE sağlamak, bakımcıların ve katkıda bulunanların sorunu anlamasına ve çözüm üzerinde daha verimli çalışmasına yardımcı olur. Bu kılavuz, Ultralytics YOLO depolarına hata raporu gönderirken nasıl MRE oluşturacağı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 neden olan belirli kod bölümüne odaklan ve ilgisiz kısımları çıkar.
2. Herkese Açık Modelleri ve Veri Kümelerini Kullan#
MRE oluştururken sorunu yeniden üretmek için herkese açık modelleri ve veri kümelerini kullan. Örneğin, yolo26n.pt modelini ve coco8.yaml veri kümesini kullan. Bu, bakımcıların ve katkıda bulunanların özel verilere veya özel modellere erişmeleri gerekmeden örneğini kolayca çalıştırıp sorunu inceleyebilmesini sağlar.
3. Gerekli Tüm Bağımlılıkları Ekle#
Gerekli tüm bağımlılıkların MRE'ne dahil edildiğinden emin ol. Kodun harici kütüphanelere dayanıyorsa gerekli paketleri ve sürümlerini belirt. İdeal olarak, ultralytics yüklüyse bağımlılıkları hata raporunda yolo checks kullanarak, diğer araçlar içinse pip list kullanarak listele.
4. Sorunun Açık Bir Açıklamasını Yaz#
Yaşadığın sorunun açık ve özlü bir açıklamasını sağla. Beklenen davranışı ve karşılaştığın gerçek davranışı açıkla. Uygunsa ilgili hata mesajlarını veya günlükleri ekle.
5. Kodunu Uygun Biçimde Biçimlendir#
Sorun açıklamasında kod bloklarını kullanarak kodunu uygun biçimde biçimlendir. Bu, başkalarının kodunu okumasını ve anlamasını kolaylaştırır. GitHub'da kodunu üçlü ters tırnaklarla (```) sarıp dili belirterek bir 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 sorun veya değişiklik olmadan çalıştırabildiğinden emin ol.
MRE Örneği#
Aşağıda varsayımsal bir hata raporu için MRE örneği verilmiştir:
Hata açıklaması:
0 kanallı bir görüntü üzerinde çıkarım çalıştırırken giriş tensörünün boyutlarıyla ilgili bir hata alıyorum.
MRE:
import torch
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Load a 0-channel image
image = torch.rand(1, 0, 640, 640)
# Run the model
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 minimum miktarda kodla gösterir, herkese açık bir model ("yolo26n.pt") kullanır, gerekli tüm bağımlılıkları içerir ve hata mesajıyla birlikte sorunun açık bir açıklamasını sunar.
Bu yönergeleri izleyerek, Ultralytics YOLO depolarının bakımcılarının ve katkıda bulunanlarının sorununu daha verimli anlamasına ve çözmesine yardımcı olursun.
SSS#
Ultralytics YOLO depolarındaki hata raporları için etkili bir Minimum Tekrarlanabilir Örnek (MRE) oluşturmak üzere şu adımları izle:
- Sorunu Yalıt: Sorunla doğrudan ilgili olmayan kodları veya bağımlılıkları kaldır.
- Herkese Açık Modelleri ve Veri Kümelerini Kullan: Daha kolay yeniden üretilebilirlik 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 veyapip listkullanarak listeleyebilirsin. - Sorunun Açık Bir Açıklamasını Yaz: Hata mesajları veya günlükler de dahil olmak üzere beklenen ve gerçek davranışı açıkla.
- Kodunu Uygun Biçimde Biçimlendir: Kodunu biçimlendirmek için kod bloklarını kullan; böylece okunması kolaylaşır.
- MRE'ni Test Et: MRE'nin değişiklik gerektirmeden sorunu 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 modelleri ve veri kümelerini kullanmak, bakımcıların özel verilere erişmeleri gerekmeden örneğini kolayca çalıştırabilmesini sağlar. Bu, 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ürecinin standartlaştırılmasına ve basitleştirilmesine yardımcı olur. Herkese açık modeller ve veri kümeleri hakkında Herkese Açık Modelleri ve Veri Kümelerini Kullan bölümünde daha fazla bilgi edinebilirsin.Kapsamlı bir Ultralytics YOLO hata raporu şunları içermelidir:
- Açık Açıklama: Sorunu, beklenen davranışı ve gerçek davranışı açıkla.
- Hata Mesajları: İlgili hata mesajlarını veya günlükleri ekle.
- Bağımlılıklar: Gerekli bağımlılıkları ve sürümlerini listele.
- MRE: Bir Minimum Tekrarlanabilir Örnek sağla.
- Yeniden Üretme Adımları: Sorunu yeniden üretmek için gereken adımları sırala.
Eksiksiz bir kontrol listesi için Sorunun Açık Bir Açıklamasını Yaz bölümüne bak.
GitHub'da hata raporu gönderirken kodunu uygun biçimde biçimlendirmek için:
- Kod blokları oluşturmak için üçlü ters tırnakları (```) kullan.
- Söz dizimi vurgulaması için programlama dilini belirt; örneğin, ```python.
- Okunabilirlik için kodunun girintisinin doğru olduğundan emin ol.
Örnek:
```python # Your Python code goes here ```Kod biçimlendirme hakkında daha fazla ipucu için Kodunu Uygun Biçimde Biçimlendir sayfasına bak.
MRE'ni göndermeden önce şunları yaptığından emin ol:
- Sorunun yeniden üretilebilir olduğunu doğrula.
- Tüm bağımlılıkların listelendiğinden ve doğru olduğundan emin ol.
- Gereksiz kodları kaldır.
- Sorunu değişiklik yapmadan yeniden ürettiğinden emin olmak için MRE'ni test et.
Ayrıntılı bir kontrol listesi için MRE'ni Test Et bölümünü ziyaret et.