Ultralytics YOLO27:
Get Started

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

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

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

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

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

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

3. أدرج جميع التبعيات اللازمة#

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

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

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

5. نسّق شيفرتك بشكل صحيح#

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

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

6. اختبر المثال الأدنى القابل لإعادة الإنتاج#

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

مثال على مثال أدنى قابل لإعادة الإنتاج#

فيما يلي مثال على مثال أدنى قابل لإعادة الإنتاج لتقرير خطأ افتراضي:

وصف الخطأ:

عند إجراء الاستدلال على صورة ذات 0 قناة، يظهر لي خطأ متعلق بأبعاد موتر الإدخال.

مثال أدنى قابل لإعادة الإنتاج:

import torch

from ultralytics import YOLO

# ⁨حمّل النموذج⁩
model = YOLO("yolo26n.pt")

# ⁨تحميل صورة ذات 0 قناة⁩
image = torch.rand(1, 0, 640, 640)

# ⁨تشغيل النموذج⁩
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

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

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

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

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

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

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

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

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

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

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

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

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

    مثال:

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

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

  • قبل إرسال المثال الأدنى القابل لإعادة الإنتاج، تأكد من:

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

    للاطلاع على قائمة تحقق مفصلة، انتقل إلى قسم اختبر المثال الأدنى القابل لإعادة الإنتاج.

التعليقات