الضبط الفعال للمقياس الفائق الفعال مع راي تيون و YOLO11
يعد ضبط المعلمات الفائقة أمرًا حيويًا لتحقيق أعلى أداء للنموذج من خلال اكتشاف المجموعة المثلى من المعلمات الفائقة. يتضمن ذلك إجراء تجارب باستخدام معاملات مفرطة مختلفة وتقييم أداء كل تجربة.
تسريع الضبط باستخدام Ultralytics YOLO11 وراي تيون
Ultralytics YOLO11 يشتمل على Ray Tune لضبط المعلمات التشعبية، مما يبسط عملية تحسين المعلمات التشعبية للنموذج YOLO11 . باستخدام Ray Tune، يمكنك استخدام استراتيجيات البحث المتقدمة والتوازي والتوقف المبكر لتسريع عملية الضبط.
راي تيون
Ray Tune هي مكتبة لضبط المعلمات الفائقة مصممة لتحقيق الكفاءة والمرونة. وهي تدعم العديد من استراتيجيات البحث، والتوازي، واستراتيجيات التوقف المبكر، وتتكامل بسلاسة مع أطر التعلم الآلي الشائعة، بما في ذلك Ultralytics YOLO11 .
التكامل مع Weights & Biases
YOLO11 يسمح أيضًا بالتكامل الاختياري مع Weights & Biases لمراقبة عملية الضبط.
التركيب
لتثبيت الحزم المطلوبة، قم بتشغيل
التركيب
الاستخدام
الاستخدام
tune()
معلمات الطريقة
إن tune()
في YOLO11 يوفر واجهة سهلة الاستخدام لضبط المعلمة الفائقة باستخدام Ray Tune. وهي تقبل العديد من الوسيطات التي تسمح لك بتخصيص عملية الضبط. فيما يلي شرح مفصل لكل معلمة:
المعلمة | النوع | الوصف | القيمة الافتراضية |
---|---|---|---|
data |
str |
ملف تكوين مجموعة البيانات (بتنسيق YAML) لتشغيل الموالف عليه. يجب أن يحدد هذا الملف مسارات بيانات التدريب والتحقق من الصحة، بالإضافة إلى الإعدادات الأخرى الخاصة بمجموعة البيانات. | |
space |
dict, optional |
قاموس يحدد مساحة بحث المعرف التشعبي ل Ray Tune. يتوافق كل مفتاح مع اسم معيار تشعبي، وتحدد القيمة نطاق القيم المراد استكشافها أثناء الضبط. إذا لم يتم توفيره، يستخدم YOLO11 مساحة بحث افتراضية مع مختلف المعلمات التشعبية. | |
grace_period |
int, optional |
فترة السماح بالحلقات الزمنية لجدولة ASHA في Ray Tune. لن يقوم المجدول بإنهاء أي تجربة قبل هذا العدد من الحقب الزمنية، مما يسمح للنموذج بالحصول على حد أدنى من التدريب قبل اتخاذ قرار بشأن التوقف المبكر. | 10 |
gpu_per_trial |
int, optional |
عدد وحدات معالجة الرسومات المراد تخصيصها لكل تجربة أثناء الضبط. يساعد ذلك في إدارة استخدام GPU ، خاصة في البيئات متعددةGPU . إذا لم يتم توفيره، سيستخدم الموالف جميع وحدات معالجة الرسومات المتاحة. | لا يوجد |
iterations |
int, optional |
الحد الأقصى لعدد التجارب التي سيتم تشغيلها أثناء الضبط. تساعد هذه المعلمة في التحكم في العدد الإجمالي لتركيبات المعلمة الفائقة التي تم اختبارها، مما يضمن عدم تشغيل عملية الضبط إلى ما لا نهاية. | 10 |
**train_args |
dict, optional |
وسيطات إضافية لتمريرها إلى train() أثناء الضبط. يمكن أن تتضمن هذه الوسيطات إعدادات مثل عدد حلقات التدريب, حجم الدُفعةوالتكوينات الأخرى الخاصة بالتدريب. |
{} |
من خلال تخصيص هذه المعلمات، يمكنك ضبط عملية تحسين المعلمة التشعبية بما يتناسب مع احتياجاتك الخاصة والموارد الحسابية المتاحة.
وصف مساحة البحث الافتراضية
يسرد الجدول التالي قائمة بمعلمات مساحة البحث الافتراضية لضبط المعلمة الفائقة في YOLO11 مع Ray Tune. كل معلمة لها نطاق قيمة محددة محددة محددة بواسطة 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 و YOLO11. من خلال توفير مساحة بحث مخصصة، يمكنك تركيز عملية الضبط على معاملات فائقة محددة ذات أهمية.
الاستخدام
في المقتطف البرمجي أعلاه، نقوم بإنشاء نموذج YOLO باستخدام أوزان "yolo11n.pt" التي تم تدريبها مسبقًا. بعد ذلك، نستدعي tune()
طريقة تحديد تكوين مجموعة البيانات باستخدام "coco8.yaml". نوفر مساحة بحث مخصصة لمعدل التعلم الأولي lr0
باستخدام قاموس يحتوي على المفتاح "lr0" والقيمة tune.uniform(1e-5, 1e-1)
. أخيرًا، نقوم بتمرير وسيطات تدريب إضافية، مثل عدد الحقب الزمنية مباشرةً إلى طريقة الضبط على النحو التالي epochs=50
.
معالجة نتائج ضبط الأشعة السينية
بعد إجراء تجربة ضبط المعرف الفائق باستخدام Ray 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 i, result in enumerate(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 لتحقيق أقصى استفادة من تجارب ضبط المعلمة الفائقة.
الأسئلة الشائعة
كيف يمكنني ضبط المعلمات الفائقة لنموذجي YOLO11 باستخدام راي تيون؟
لضبط المعلمات الفائقة لنموذج Ultralytics YOLO11 الخاص بك باستخدام Ray Tune، اتبع الخطوات التالية:
-
قم بتثبيت الحزم المطلوبة:
-
قم بتحميل الطراز YOLO11 وابدأ الضبط:
يستخدم هذا الأمر استراتيجيات البحث المتقدمة والتوازي في Ray Tune لتحسين المعلمات الفائقة لنموذجك بكفاءة. لمزيد من المعلومات، راجع وثائق راي تيون.
ما هي المعلمات الفائقة الافتراضية لضبط YOLO11 باستخدام راي تيون؟
Ultralytics YOLO11 يستخدم المعلمات الفائقة الافتراضية التالية للضبط باستخدام Ray Tune:
المعلمة | نطاق القيمة | الوصف |
---|---|---|
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) |
فترات الإحماء |
box |
tune.uniform(0.02, 0.2) |
وزن الصندوق المفقود |
cls |
tune.uniform(0.2, 4.0) |
فقدان الوزن في الفصل |
hsv_h |
tune.uniform(0.0, 0.1) |
نطاق زيادة الصبغة |
translate |
tune.uniform(0.0, 0.9) |
نطاق زيادة الترجمة التحريرية |
يمكن تخصيص هذه المعلمات الفائقة لتناسب احتياجاتك الخاصة. للاطلاع على قائمة كاملة ومزيد من التفاصيل، راجع دليل ضبط المعلمات الفائقة.
كيف يمكنني دمج Weights & Biases مع ضبط النموذج YOLO11 الخاص بي ؟
لدمج Weights & Biases (W&B) مع عملية الضبط Ultralytics YOLO11 الخاصة بك :
-
قم بتثبيت W&B:
-
قم بتعديل البرنامج النصي للضبط:
سيسمح لك هذا الإعداد بمراقبة عملية الضبط، وتتبع تكوينات المعرف الفائق، وتصور النتائج في W&B.
لماذا يجب أن أستخدم Ray Tune لتحسين المعامل التشعبي باستخدام YOLO11 ؟
يوفر Ray Tune العديد من المزايا لتحسين المعلمة الفائقة:
- استراتيجيات بحث متقدمة: يستخدم خوارزميات مثل Bayesian Optimization و HyperOpt للبحث الفعال عن المعلمات.
- التوازي: يدعم التنفيذ المتوازي لتجارب متعددة، مما يسرّع عملية الضبط بشكل كبير.
- الإيقاف المبكر: توظف استراتيجيات مثل الإيقاف المبكر للتجارب ذات الأداء الضعيف لإنهاء التجارب ذات الأداء الضعيف في وقت مبكر، مما يوفر الموارد الحسابية.
يتكامل راي تيون بسلاسة مع Ultralytics YOLO11 ، مما يوفر واجهة سهلة الاستخدام لضبط المعلمات الفائقة بفعالية. للبدء، اطلع على دليل الضبط الفعال للمقاييس التشعبية باستخدام راي تيون و YOLO11.
كيف يمكنني تحديد مساحة بحث مخصصة لضبط المعرف التشعبي YOLO11 ؟
لتحديد مساحة بحث مخصصة لضبط المعرف التشعبي YOLO11 الخاص بك باستخدام Ray Tune:
from ray import tune
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
search_space = {"lr0": tune.uniform(1e-5, 1e-1), "momentum": tune.uniform(0.6, 0.98)}
result_grid = model.tune(data="coco8.yaml", space=search_space, use_ray=True)
يعمل ذلك على تخصيص نطاق المعلمات الفائقة مثل معدل التعلّم الأولي والزخم الذي سيتم استكشافه أثناء عملية الضبط. للحصول على تكوينات متقدمة، راجع قسم مثال مساحة البحث المخصصة.