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

عند تقديم تقرير خطأ لمستودعات Ultralytics YOLO، من الضروري تقديم مثال قابل لإعادة الإنتاج بحد أدنى (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؟

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

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

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

لماذا يجب علي استخدام نماذج ومجموعات بيانات متاحة للجمهور في MRE الخاص بي لتقارير أخطاء Ultralytics YOLO؟

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

ما هي المعلومات التي يجب أن أدرجها في تقرير الخطأ الخاص بي لـ Ultralytics YOLO؟

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

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

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

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

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

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

مثال:

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

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

ما هي بعض الأخطاء الشائعة التي يجب التحقق منها قبل تقديم MRE الخاص بي لتقرير خطأ؟

قبل تقديم MRE الخاص بك، تأكد من:

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

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

التعليقات