ضبط المعلمات الفائقة الفعال باستخدام Ray Tune و YOLOv8
يعد ضبط المعلمات الفائقة أمرا حيويا في تحقيق ذروة أداء النموذج من خلال اكتشاف المجموعة المثلى من المعلمات الفائقة. يتضمن ذلك تشغيل الإصدارات التجريبية بمعلمات فائقة مختلفة وتقييم أداء كل تجربة.
تسريع الضبط باستخدام Ultralytics YOLOv8 وراي تيون
Ultralytics YOLOv8 يتضمن Ray Tune لضبط المعلمات الفائقة ، مما يبسط تحسين YOLOv8 المعلمات الفائقة النموذجية. باستخدام Ray Tune ، يمكنك استخدام استراتيجيات البحث المتقدمة والتوازي والتوقف المبكر لتسريع عملية الضبط.
راي تيون
Ray Tune هي مكتبة ضبط المعلمات الفائقة المصممة لتحقيق الكفاءة والمرونة. وهو يدعم استراتيجيات البحث المختلفة ، والتوازي ، واستراتيجيات التوقف المبكر ، ويتكامل بسلاسة مع أطر التعلم الآلي الشائعة ، بما في ذلك Ultralytics YOLOv8.
التكامل مع Weights & Biases
YOLOv8 يسمح أيضا بالتكامل الاختياري مع Weights & Biases لمراقبة عملية الضبط.
تركيب
لتثبيت الحزم المطلوبة ، قم بتشغيل:
تركيب
استخدام
استخدام
tune()
معلمات الطريقة
ال tune()
الطريقة في YOLOv8 يوفر واجهة سهلة الاستخدام لضبط المعلمات الفائقة باستخدام Ray Tune. يقبل العديد من الحجج التي تسمح لك بتخصيص عملية الضبط. فيما يلي شرح مفصل لكل معلمة:
البارامتر | نوع | وصف | القيمة الافتراضية |
---|---|---|---|
data |
str |
ملف تكوين مجموعة البيانات (بتنسيق YAML) لتشغيل الموالف عليه. يجب أن يحدد هذا الملف مسارات بيانات التدريب والتحقق من الصحة، بالإضافة إلى الإعدادات الأخرى الخاصة بمجموعة البيانات. | |
space |
dict, optional |
قاموس يحدد مساحة بحث المعلمات الفائقة ل Ray Tune. يتوافق كل مفتاح مع اسم معلمة فائقة، وتحدد القيمة نطاق القيم المراد استكشافها أثناء الضبط. إذا لم يتم توفيره ، YOLOv8 يستخدم مساحة بحث افتراضية مع معلمات تشعبية مختلفة. | |
grace_period |
int, optional |
فترة السماح في العصور لجدولة ASHA في Ray Tune. لن ينهي المجدول أي تجربة قبل هذا العدد من العصور ، مما يسمح للنموذج بالحصول على الحد الأدنى من التدريب قبل اتخاذ قرار بشأن التوقف المبكر. | 10 |
gpu_per_trial |
int, optional |
عدد وحدات معالجة الرسومات التي يجب تخصيصها لكل تجربة أثناء الضبط. يساعد هذا في إدارة استخدام وحدة معالجة الرسومات، خاصة في بيئات وحدات معالجة الرسومات المتعددة. إذا لم يتم توفيره ، فسيستخدم الموالف جميع وحدات معالجة الرسومات المتاحة. | اي |
iterations |
int, optional |
الحد الأقصى لعدد الإصدارات التجريبية التي سيتم تشغيلها أثناء الضبط. تساعد هذه المعلمة في التحكم في العدد الإجمالي لمجموعات المعلمات الفائقة التي تم اختبارها، مما يضمن عدم تشغيل عملية الضبط إلى أجل غير مسمى. | 10 |
**train_args |
dict, optional |
وسيطات إضافية لتمريرها إلى train() طريقة أثناء ضبط. يمكن أن تتضمن هذه الوسيطات إعدادات مثل عدد فترات التدريب وحجم الدفعة والتكوينات الأخرى الخاصة بالتدريب. |
{} |
من خلال تخصيص هذه المعلمات، يمكنك ضبط عملية تحسين المعلمات الفائقة لتناسب احتياجاتك الخاصة والموارد الحسابية المتاحة.
وصف مساحة البحث الافتراضية
يسرد الجدول التالي معلمات مساحة البحث الافتراضية لضبط المعلمات الفائقة في YOLOv8 مع راي تون. كل معلمة لها نطاق قيم محدد محدد بواسطة tune.uniform()
.
البارامتر | نطاق القيمة | وصف |
---|---|---|
lr0 |
tune.uniform(1e-5, 1e-1) |
معدل التعلم الأولي |
lrf |
tune.uniform(0.01, 1.0) |
عامل معدل التعلم النهائي |
momentum |
tune.uniform(0.6, 0.98) |
الزخم |
weight_decay |
tune.uniform(0.0, 0.001) |
تسوس الوزن |
warmup_epochs |
tune.uniform(0.0, 5.0) |
عصور الاحماء |
warmup_momentum |
tune.uniform(0.0, 0.95) |
زخم الاحماء |
box |
tune.uniform(0.02, 0.2) |
صندوق فقدان الوزن |
cls |
tune.uniform(0.2, 4.0) |
فئة فقدان الوزن |
hsv_h |
tune.uniform(0.0, 0.1) |
نطاق زيادة تدرج اللون |
hsv_s |
tune.uniform(0.0, 0.9) |
نطاق زيادة التشبع |
hsv_v |
tune.uniform(0.0, 0.9) |
نطاق زيادة القيمة (السطوع) |
degrees |
tune.uniform(0.0, 45.0) |
نطاق زيادة الدوران (بالدرجات) |
translate |
tune.uniform(0.0, 0.9) |
نطاق زيادة الترجمة |
scale |
tune.uniform(0.0, 0.9) |
توسيع نطاق الزيادة |
shear |
tune.uniform(0.0, 10.0) |
نطاق زيادة القص (بالدرجات) |
perspective |
tune.uniform(0.0, 0.001) |
نطاق زيادة المنظور |
flipud |
tune.uniform(0.0, 1.0) |
احتمال زيادة الوجه العمودي |
fliplr |
tune.uniform(0.0, 1.0) |
احتمال زيادة الوجه الأفقي |
mosaic |
tune.uniform(0.0, 1.0) |
احتمال زيادة الفسيفساء |
mixup |
tune.uniform(0.0, 1.0) |
احتمال زيادة الخلط |
copy_paste |
tune.uniform(0.0, 1.0) |
احتمال زيادة النسخ واللصق |
مثال على مساحة البحث المخصصة
في هذا المثال ، نوضح كيفية استخدام مساحة بحث مخصصة لضبط المعلمات الفائقة باستخدام Ray Tune و YOLOv8. من خلال توفير مساحة بحث مخصصة ، يمكنك تركيز عملية الضبط على معلمات فائقة محددة ذات أهمية.
استخدام
في مقتطف الشفرة أعلاه ، نقوم بإنشاء ملف YOLO نموذج مع "yolov8n.pt" الأوزان المدربة مسبقا. بعد ذلك، نسمي tune()
، مع تحديد تكوين مجموعة البيانات باستخدام "coco8.yaml". نحن نقدم مساحة بحث مخصصة لمعدل التعلم الأولي lr0
باستخدام قاموس بالمفتاح "LR0" والقيمة tune.uniform(1e-5, 1e-1)
. أخيرا ، نقوم بتمرير وسيطات تدريب إضافية ، مثل عدد الفترات مباشرة إلى طريقة اللحن ك epochs=50
.
معالجة نتائج راي لحن
بعد إجراء تجربة ضبط المعلمات الفائقة باستخدام Ray Tune ، قد ترغب في إجراء تحليلات مختلفة على النتائج التي تم الحصول عليها. سيأخذك هذا الدليل عبر مهام سير العمل الشائعة لمعالجة هذه النتائج وتحليلها.
تحميل نتائج تجربة Tune من دليل
بعد تشغيل تجربة الضبط مع tuner.fit()
، يمكنك تحميل النتائج من دليل. هذا مفيد ، خاصة إذا كنت تجري التحليل بعد خروج البرنامج النصي للتدريب الأولي.
experiment_path = f"{storage_path}/{exp_name}"
print(f"Loading results from {experiment_path}...")
restored_tuner = tune.Tuner.restore(experiment_path, trainable=train_mnist)
result_grid = restored_tuner.get_results()
التحليل الأساسي على مستوى التجربة
احصل على نظرة عامة حول كيفية إجراء التجارب. يمكنك التحقق بسرعة مما إذا كانت هناك أي أخطاء أثناء التجارب.
التحليل الأساسي على مستوى التجربة
الوصول إلى تكوينات المعلمات الفائقة للإصدار التجريبي الفردي وآخر المقاييس التي تم الإبلاغ عنها.
for i, result in enumerate(result_grid):
print(f"Trial #{i}: Configuration: {result.config}, Last Reported Metrics: {result.metrics}")
رسم التاريخ الكامل للمقاييس المبلغ عنها للتجربة
يمكنك رسم سجل المقاييس التي تم الإبلاغ عنها لكل تجربة لمعرفة كيفية تطور المقاييس بمرور الوقت.
import matplotlib.pyplot as plt
for result in result_grid:
plt.plot(result.metrics_dataframe["training_iteration"], result.metrics_dataframe["mean_accuracy"], label=f"Trial {i}")
plt.xlabel('Training Iterations')
plt.ylabel('Mean Accuracy')
plt.legend()
plt.show()
ملخص
في هذه الوثائق، قمنا بتغطية مهام سير العمل الشائعة لتحليل نتائج التجارب التي يتم تشغيلها باستخدام Ray Tune باستخدام Ultralytics. تتضمن الخطوات الرئيسية تحميل نتائج التجربة من دليل ، وإجراء تحليل أساسي على مستوى التجربة ومستوى التجربة ومقاييس التخطيط.
استكشف المزيد من خلال النظر في صفحة مستندات تحليل النتائج في Ray Tune لتحقيق أقصى استفادة من تجارب ضبط المعلمات الفائقة.