رؤية YOLO 2026:

إنشاء مثال أدنى قابل للتكرار لتقارير الأخطاء#

عند تقديم تقرير خطأ لـ مستودعات Ultralytics YOLO، من الضروري توفير Minimum Reproducible Example (MRE). يعتبر MRE قطعة كود صغيرة ومكتفية بذاتها توضح المشكلة التي تواجهها. يساعد توفير MRE المشرفين والمساهمين على فهم المشكلة والعمل على إصلاحها بشكل أكثر كفاءة. يشرح هذا الدليل كيفية إنشاء MRE عند تقديم تقارير الأخطاء إلى مستودعات Ultralytics YOLO.

عزل المشكلة#

الخطوة الأولى في إنشاء MRE هي عزل المشكلة. قم بإزالة أي تعليمات برمجية أو تبعيات غير ضرورية لا تتعلق مباشرة بالمشكلة. ركز على الجزء المحدد من التعليمات البرمجية الذي يسبب المشكلة وتخلص من أي أقسام غير ذات صلة.

استخدام النماذج ومجموعات البيانات العامة#

عند إنشاء MRE، استخدم نماذج ومجموعات بيانات متاحة للعامة لإعادة إنتاج المشكلة. على سبيل المثال، استخدم نموذج yolo26n.pt ومجموعة بيانات coco8.yaml. يضمن هذا أن المشرفين والمساهمين يمكنهم تشغيل مثالك بسهولة والتحقيق في المشكلة دون الحاجة إلى الوصول إلى بيانات خاصة أو نماذج مخصصة.

تضمين جميع التبعيات الضرورية#

تأكد من تضمين جميع التبعيات اللازمة في MRE الخاص بك. إذا كان الكود الخاص بك يعتمد على مكتبات خارجية، فحّدد الحزم المطلوبة وإصداراتها. من المثالي سرد التبعيات في تقرير الخطأ الخاص بك باستخدام yolo checks إذا كان لديك ultralytics مثبتًا أو pip list للأدوات الأخرى.

كتابة وصف واضح للمشكلة#

قدم وصفاً واضحاً وموجزاً للمشكلة التي تواجهها. اشرح السلوك المتوقع والسلوك الفعلي الذي تواجهه. إذا كان ذلك ممكناً، قم بتضمين أي رسائل خطأ أو سجلات ذات صلة.

تنسيق الكود الخاص بك بشكل صحيح#

قم بتنسيق الكود الخاص بك بشكل صحيح باستخدام كتل الكود في وصف المشكلة. هذا يجعل من السهل على الآخرين قراءة وفهم الكود الخاص بك. في GitHub، يمكنك إنشاء كتلة كود عن طريق إحاطة الكود الخاص بك بثلاث علامات اقتباس عكسية (```) وتحديد اللغة:

```python
# Your Python code goes here
```

اختبار MRE الخاص بك#

قبل إرسال MRE الخاص بك، اختبره للتأكد من أنه يعيد إنتاج المشكلة بدقة. تأكد من أن الآخرين يمكنهم تشغيل مثالك دون أي مشاكل أو تعديلات.

مثال على MRE#

إليك مثال على MRE لتقرير خطأ افتراضي:

وصف الخطأ:

عند تشغيل الاستدلال على صورة ذات 0 قناة، أحصل على خطأ يتعلق بأبعاد موتر الإدخال.

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)

رسالة الخطأ:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

التبعيات:

  • torch==2.3.0
  • ultralytics==8.2.0

في هذا المثال، توضح MRE المشكلة بأقل قدر من الكود، وتستخدم نموذجًا عامًا ("yolo26n.pt")، وتتضمن جميع التبعيات اللازمة، وتوفر وصفًا واضحًا للمشكلة إلى جانب رسالة الخطأ.

باتباع هذه الإرشادات، ستساعد المشرفين والمساهمين في مستودعات Ultralytics YOLO على فهم مشكلتك وحلها بشكل أكثر كفاءة.

الأسئلة الشائعة#

  • لإنشاء مثال أدنى قابل للتكرار (MRE) فعال لتقارير الأخطاء في مستودعات Ultralytics YOLO، اتبع الخطوات التالية:

    1. عزل المشكلة: قم بإزالة أي كود أو تبعيات لا تتعلق مباشرة بالمشكلة.
    2. استخدم النماذج ومجموعات البيانات العامة: استخدم موارد عامة مثل yolo26n.pt وcoco8.yaml لسهولة إعادة الإنتاج.
    3. تضمين جميع التبعيات اللازمة: حدد الحزم المطلوبة وإصداراتها. يمكنك سرد التبعيات باستخدام yolo checks إذا كان لديك ultralytics مثبتًا أو pip list.
    4. كتابة وصف واضح للمشكلة: اشرح السلوك المتوقع والفعلي، بما في ذلك أي رسائل خطأ أو سجلات.
    5. تنسيق الكود الخاص بك بشكل صحيح: استخدم كتل الكود لتنسيق الكود الخاص بك، مما يسهل قراءته.
    6. اختبار MRE الخاص بك: تأكد من أن MRE الخاص بك يعيد إنتاج المشكلة دون تعديلات.

    للحصول على دليل مفصل، راجع Creating a Minimum Reproducible Example.

  • يضمن استخدام النماذج ومجموعات البيانات المتاحة للعامة في MRE الخاص بك أن المشرفين يمكنهم تشغيل مثالك بسهولة دون الحاجة إلى الوصول إلى بيانات خاصة. يتيح ذلك حل المشكلات بشكل أسرع وأكثر كفاءة. على سبيل المثال، يساعد استخدام نموذج yolo26n.pt ومجموعة بيانات coco8.yaml في توحيد وتبسيط عملية تتبع الأخطاء. تعرف على المزيد حول النماذج ومجموعات البيانات العامة في قسم Use Public Models and Datasets.

  • يجب أن يتضمن تقرير الخطأ الشامل لـ Ultralytics YOLO ما يلي:

    • وصف واضح: اشرح المشكلة والسلوك المتوقع والسلوك الفعلي.
    • رسائل الخطأ: قم بتضمين أي رسائل خطأ أو سجلات ذات صلة.
    • التبعيات: ادرج التبعيات المطلوبة وإصداراتها.
    • MRE: قدم مثالاً أدنى قابلاً للتكرار.
    • خطوات إعادة الإنتاج: حدد الخطوات اللازمة لإعادة إنتاج المشكلة.

    للحصول على قائمة تحقق كاملة، راجع قسم Write a Clear Description of the Issue.

  • لتنسيق الكود الخاص بك بشكل صحيح عند إرسال تقرير خطأ على GitHub:

    • استخدم ثلاث علامات اقتباس عكسية (```) لإنشاء كتل الكود.
    • حدد لغة البرمجة لتسليط الضوء على التركيب، على سبيل المثال، ```python.
    • تأكد من أن الكود الخاص بك مُزاح بشكل صحيح لتسهيل القراءة.

    مثال:

    ```python
    # Your Python code goes here
    ```

    لمزيد من النصائح حول تنسيق الكود، راجع قسم Format Your Code Properly.

  • قبل إرسال MRE الخاص بك، تأكد من:

    • التحقق من أن المشكلة قابلة للتكرار.
    • ضمان إدراج جميع التبعيات وأنها صحيحة.
    • إزالة أي كود غير ضروري.
    • اختبار MRE للتأكد من أنه يعيد إنتاج المشكلة دون تعديلات.

    للحصول على قائمة تحقق مفصلة، تفضل بزيارة قسم Test Your MRE.

التعليقات