Link to this sectionإنشاء مثال أدنى قابل للتكرار لتقارير الأخطاء#
عند إرسال تقرير خطأ لمستودعات Ultralytics YOLO، من الضروري تقديم مثال أدنى قابل للتكرار (MRE). يُعد MRE جزءاً صغيراً ومستقلاً من التعليمات البرمجية يوضح المشكلة التي تواجهها. يساعد تقديم MRE القائمين على الصيانة والمساهمين في فهم المشكلة والعمل على إصلاحها بكفاءة أكبر. يشرح هذا الدليل كيفية إنشاء MRE عند إرسال تقارير الأخطاء إلى مستودعات Ultralytics YOLO.
Link to this sectionعزل المشكلة#
الخطوة الأولى في إنشاء MRE هي عزل المشكلة. قم بإزالة أي تعليمات برمجية أو تبعيات غير ضرورية لا تتعلق مباشرة بالمشكلة. ركز على الجزء المحدد من التعليمات البرمجية الذي يسبب المشكلة وتخلص من أي أقسام غير ذات صلة.
Link to this sectionاستخدام النماذج ومجموعات البيانات العامة#
عند إنشاء MRE، استخدم نماذج ومجموعات بيانات متاحة للجمهور لإعادة إنتاج المشكلة. على سبيل المثال، استخدم نموذج yolo26n.pt ومجموعة بيانات coco8.yaml. يضمن ذلك أن يتمكن القائمون على الصيانة والمساهمون من تشغيل مثالك بسهولة والتحقيق في المشكلة دون الحاجة إلى الوصول إلى بيانات مملوكة أو نماذج مخصصة.
Link to this sectionتضمين جميع التبعيات الضرورية#
تأكد من تضمين جميع التبعيات اللازمة في MRE الخاص بك. إذا كان الكود الخاص بك يعتمد على مكتبات خارجية، فحدد الحزم المطلوبة وإصداراتها. من الناحية المثالية، ادرج التبعيات في تقرير الخطأ الخاص بك باستخدام yolo checks إذا كان ultralytics مثبتاً لديك أو pip list للأدوات الأخرى.
Link to this sectionكتابة وصف واضح للمشكلة#
قدم وصفاً واضحاً وموجزاً للمشكلة التي تواجهها. اشرح السلوك المتوقع والسلوك الفعلي الذي تواجهه. إذا كان ذلك ممكناً، قم بتضمين أي رسائل خطأ أو سجلات ذات صلة.
Link to this sectionتنسيق الكود الخاص بك بشكل صحيح#
قم بتنسيق الكود الخاص بك بشكل صحيح باستخدام كتل الكود في وصف المشكلة. هذا يجعل من السهل على الآخرين قراءة وفهم الكود الخاص بك. في GitHub، يمكنك إنشاء كتلة كود عن طريق إحاطة الكود الخاص بك بثلاث علامات اقتباس عكسية (```) وتحديد اللغة:
```python
# Your Python code goes here
```Link to this sectionاختبار MRE الخاص بك#
قبل إرسال MRE الخاص بك، اختبره للتأكد من أنه يعيد إنتاج المشكلة بدقة. تأكد من أن الآخرين يمكنهم تشغيل مثالك دون أي مشاكل أو تعديلات.
Link to this sectionمثال على 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.0ultralytics==8.2.0
في هذا المثال، يوضح MRE المشكلة بحد أدنى من الكود، ويستخدم نموذجاً عاماً ("yolo26n.pt")، ويتضمن جميع التبعيات الضرورية، ويقدم وصفاً واضحاً للمشكلة مع رسالة الخطأ.
باتباع هذه الإرشادات، ستساعد القائمين على الصيانة والمساهمين في مستودعات Ultralytics YOLO على فهم وحل مشكلتك بكفاءة أكبر.
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف يمكنني إنشاء مثال أدنى قابل للتكرار (MRE) فعال لتقارير الأخطاء في مستودعات Ultralytics YOLO؟#
لإنشاء مثال أدنى قابل للتكرار (MRE) فعال لتقارير الأخطاء في مستودعات Ultralytics YOLO، اتبع الخطوات التالية:
- عزل المشكلة: قم بإزالة أي كود أو تبعيات لا تتعلق مباشرة بالمشكلة.
- استخدام النماذج ومجموعات البيانات العامة: استخدم موارد عامة مثل
yolo26n.ptوcoco8.yamlلتسهيل إعادة الإنتاج. - تضمين جميع التبعيات الضرورية: حدد الحزم المطلوبة وإصداراتها. يمكنك إدراج التبعيات باستخدام
yolo checksإذا كانultralyticsمثبتاً لديك أوpip list. - كتابة وصف واضح للمشكلة: اشرح السلوك المتوقع والفعلي، بما في ذلك أي رسائل خطأ أو سجلات.
- تنسيق الكود الخاص بك بشكل صحيح: استخدم كتل الكود لتنسيق الكود الخاص بك، مما يسهل قراءته.
- اختبار MRE الخاص بك: تأكد من أن MRE الخاص بك يعيد إنتاج المشكلة دون تعديلات.
للحصول على دليل مفصل، راجع إنشاء مثال أدنى قابل للتكرار.
Link to this sectionلماذا يجب علي استخدام نماذج ومجموعات بيانات متاحة للجمهور في MRE الخاص بي لتقارير أخطاء Ultralytics YOLO؟#
يضمن استخدام نماذج ومجموعات بيانات متاحة للجمهور في MRE الخاص بك أن يتمكن القائمون على الصيانة من تشغيل مثالك بسهولة دون الحاجة إلى الوصول إلى بيانات خاصة. وهذا يسمح بحل المشكلات بشكل أسرع وأكثر كفاءة. على سبيل المثال، يساعد استخدام نموذج yolo26n.pt ومجموعة بيانات coco8.yaml في توحيد وتبسيط عملية تصحيح الأخطاء. تعرف على المزيد حول النماذج ومجموعات البيانات العامة في قسم استخدام النماذج ومجموعات البيانات العامة.
Link to this sectionما هي المعلومات التي يجب أن أدرجها في تقرير الخطأ الخاص بي لـ Ultralytics YOLO؟#
يجب أن يتضمن تقرير الخطأ الشامل لـ Ultralytics YOLO ما يلي:
- وصف واضح: اشرح المشكلة والسلوك المتوقع والسلوك الفعلي.
- رسائل الخطأ: قم بتضمين أي رسائل خطأ أو سجلات ذات صلة.
- التبعيات: ادرج التبعيات المطلوبة وإصداراتها.
- MRE: قدم مثالاً أدنى قابلاً للتكرار.
- خطوات إعادة الإنتاج: حدد الخطوات اللازمة لإعادة إنتاج المشكلة.
للحصول على قائمة تحقق كاملة، راجع قسم كتابة وصف واضح للمشكلة.
Link to this sectionكيف يمكنني تنسيق الكود الخاص بي بشكل صحيح عند إرسال تقرير خطأ على GitHub؟#
لتنسيق الكود الخاص بك بشكل صحيح عند إرسال تقرير خطأ على GitHub:
- استخدم ثلاث علامات اقتباس عكسية (```) لإنشاء كتل الكود.
- حدد لغة البرمجة لتسليط الضوء على التركيب، على سبيل المثال، ```python.
- تأكد من أن الكود الخاص بك مُزاح بشكل صحيح لتسهيل القراءة.
مثال:
```python
# Your Python code goes here
```لمزيد من النصائح حول تنسيق الكود، راجع تنسيق الكود الخاص بك بشكل صحيح.
Link to this sectionما هي بعض الأخطاء الشائعة التي يجب التحقق منها قبل إرسال MRE الخاص بي لتقرير خطأ؟#
قبل إرسال MRE الخاص بك، تأكد من:
- التحقق من أن المشكلة قابلة للتكرار.
- ضمان إدراج جميع التبعيات وأنها صحيحة.
- إزالة أي كود غير ضروري.
- اختبار MRE للتأكد من أنه يعيد إنتاج المشكلة دون تعديلات.
للحصول على قائمة تحقق مفصلة، قم بزيارة قسم اختبار MRE الخاص بك.