Ultralytics YOLO27:

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

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

1. عزل المشكلة#

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

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

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

3. تضمين جميع التبعيات اللازمة#

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

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

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

5. تنسيق التعليمات البرمجية بشكل صحيح#

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

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

6. اختبار 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.8.0
  • ultralytics==8.4.142

في هذا المثال، يوضّح 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 يعيد إنتاج المشكلة من دون تعديلات.

    للاطلاع على دليل مفصل، راجع إنشاء مثال أدنى قابل لإعادة الإنتاج.

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

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

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

    للاطلاع على قائمة تحقق كاملة، راجع قسم كتابة وصف واضح للمشكلة.

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

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

    مثال:

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

    لمزيد من النصائح حول تنسيق التعليمات البرمجية، راجع تنسيق التعليمات البرمجية بشكل صحيح.

  • قبل إرسال MRE، احرص على ما يلي:

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

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

التعليقات