تدريب النماذج باستخدام Ultralytics YOLO#
مقدمة#
يتضمن تدريب نموذج التعلّم العميق تزويده بالبيانات وضبط معلماته ليتمكن من تقديم تنبؤات دقيقة. صُمم وضع التدريب في Ultralytics YOLO26 لتدريب نماذج اكتشاف الأجسام بفعالية وكفاءة، مع الاستفادة الكاملة من إمكانات العتاد الحديث. يهدف هذا الدليل إلى تغطية جميع التفاصيل التي تحتاج إليها لبدء تدريب نماذجك باستخدام مجموعة الميزات القوية في YOLO26. إذا لم تثبّت Ultralytics بعد، فابدأ بـدليل البدء السريع.
اطّلع على معاينة YOLO27 غير المُصدرة لمعرفة أمثلة التدريب المخطط لها.
شاهد: كيفية تدريب نموذج YOLO على مجموعة بيانات مخصصة في Google Colab.
لماذا تختار Ultralytics YOLO للتدريب؟#
فيما يلي بعض الأسباب المقنعة لاختيار وضع التدريب في YOLO26:
- الكفاءة: استفد إلى أقصى حد من العتاد لديك، سواء كنت تستخدم إعدادًا بوحدة GPU واحدة أو توسّع نطاق العمل عبر وحدات GPU متعددة.
- تعدد الاستخدامات: درّب على مجموعات بيانات مخصصة، بالإضافة إلى مجموعات متاحة بسهولة مثل COCO وVOC وImageNet.
- سهولة الاستخدام: واجهتا CLI وPython بسيطتان وقويتان لتجربة تدريب مباشرة.
- مرونة المعلمات الفائقة: مجموعة واسعة من المعلمات الفائقة القابلة للتخصيص لضبط أداء النموذج بدقة. ولتحكم أعمق، يمكنك تخصيص أداة التدريب نفسها.
- التدريب السحابي: درّب على وحدات GPU سحابية عبر منصة Ultralytics، مع مقاييس آنية وحفظ تلقائي لنقاط التحقق.
الميزات الرئيسية لوضع التدريب#
فيما يلي بعض الميزات البارزة لوضع التدريب في YOLO26:
- التنزيل التلقائي لمجموعة البيانات: تُنزّل إعدادات مجموعة البيانات التي تتضمن مصدرًا للتنزيل تلقائيًا عند استخدامها للمرة الأولى، مثل
yolo train data=coco8.yaml. راجع نظرة عامة على مجموعات البيانات لمعرفة التنسيقات ومجموعات البيانات المدعومة. - دعم وحدات GPU متعددة: وسّع نطاق التدريب بسلاسة عبر وحدات GPU متعددة لتسريع العملية.
- إعداد المعلمات الفائقة: إمكانية تعديل المعلمات الفائقة من خلال ملفات إعداد YAML أو وسيطات CLI.
- التصور والمراقبة: تتبّع مقاييس التدريب في الوقت الفعلي واعرض عملية التعلّم لتحسين الرؤى.
أمثلة الاستخدام#
درّب YOLO26n على مجموعة بيانات COCO8 لمدة 100 حقبة بحجم صورة 640. يمكن تحديد جهاز التدريب باستخدام الوسيطة device. إذا لم تُمرّر أي وسيطة، فسيُستخدم GPU device=0 عند توفره؛ وإلا فسيُستخدم device='cpu'. راجع قسم الوسيطات أدناه للاطلاع على القائمة الكاملة لوسيطات التدريب.
في Windows، قد يظهر لك RuntimeError عند بدء التدريب كنص برمجي. أضف كتلة if __name__ == "__main__": قبل رمز التدريب لحل المشكلة.
يُحدَّد الجهاز تلقائيًا. إذا توفر GPU، فسيُستخدم (جهاز CUDA الافتراضي 0)؛ وإلا فسيبدأ التدريب على CPU.
from ultralytics import YOLO
# تحميل نموذج
model = YOLO("yolo26n.yaml") # إنشاء نموذج جديد من YAML
model = YOLO("yolo26n.pt") # تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # الإنشاء من YAML ونقل الأوزان
# تدريب النموذج
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)التدريب باستخدام وحدات GPU متعددة#
يتيح التدريب باستخدام وحدات GPU متعددة الاستفادة من موارد العتاد المتاحة بكفاءة أكبر، وذلك بتوزيع عبء التدريب على عدة وحدات GPU. تتوفر هذه الميزة عبر كل من واجهة Python API وواجهة سطر الأوامر. لتفعيل التدريب متعدد وحدات GPU، حدّد معرّفات أجهزة GPU التي ترغب في استخدامها.
للتدريب باستخدام وحدتي GPU، أي جهازي CUDA 0 و1، استخدم الأوامر التالية. أضف وحدات GPU أخرى حسب الحاجة.
from ultralytics import YOLO
# تحميل نموذج
model = YOLO("yolo26n.pt") # تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)
# تدريب النموذج باستخدام وحدتي GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])
# تدريب النموذج باستخدام وحدتي GPU الأقل انشغالًا
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])لا يعمل التدريب باستخدام وحدات GPU متعددة على Windows مع إصدارات PyTorch الرسمية ذات الامتداد torch>=2.4. يشغّل Ultralytics تقنية DDP عبر torch.distributed.run، حيث تنشئ خطوة التنسيق TCPStore التي تستخدم الواجهة الخلفية libuv افتراضيًا منذ PyTorch 2.4، بينما بُنيت إصدارات Windows الرسمية دون libuv. وينتهي التدريب فورًا برسالة:
RuntimeError: use_libuv was requested but PyTorch was built without libuv support
لا يحل تعيين USE_LIBUV=0 هذه المشكلة، لأن عملية التنسيق تنشئ TCPStore مباشرةً، ولا يقرأ مسار تنفيذ ذلك الرمز المتغير. درّب على Linux أو WSL2 لاستخدام وحدات GPU متعددة، أو درّب على GPU واحد باستخدام device=0 على Windows.
عند تحديد أجهزة متعددة (مثل device=[0, 1])، ينشئ Ultralytics داخليًا مثيلًا جديدًا لأداة التدريب وينفّذ torch.distributed.run في الخلفية. يعمل ذلك بسلاسة مع الاستخدام القياسي لـCLI والبرامج النصية في Python غير المعدّلة.
لكن إذا احتوى البرنامج النصي على مكونات مخصصة، مثل أداة تدريب أو مدقّق أو مجموعة بيانات أو مسار لمعالجة الزيادة مخصص، فلا يمكن تسلسل هذه العناصر ونقلها تلقائيًا إلى عمليات DDP الفرعية. في هذه الحالة، يجب تشغيل البرنامج النصي مباشرةً باستخدام torch.distributed.run:
python -m torch.distributed.run --nproc_per_node 2 your_training_script.pyيستخدم تدريب AMD GPU إصدار PyTorch ROCm مع صيغة device=0 أو device=cuda:0 القياسية. راجع دليل تكامل AMD للاطلاع على تثبيت ROCm والتدريب متعدد وحدات GPU وملاحظات AMP واستدلال MIGraphX للنماذج المُصدّرة.
يستخدم تدريب Intel GPU device=xpu:0، أو عدة معرّفات XPU مع إصدار PyTorch يوفر XCCL.
التدريب باستخدام Huawei Ascend NPU#
يدعم Ultralytics التدريب والتحقق على وحدات Huawei Ascend NPU من خلال torch_npu. ثبّت إصدارات متوافقة فيما بينها من CANN وPyTorch وtorch_npu باتباع دليل تثبيت Ascend Extension for PyTorch، ثم حمّل بيئة CANN قبل بدء Ultralytics:
source /usr/local/Ascend/ascend-toolkit/set_env.shfrom ultralytics import YOLO
model = YOLO("yolo26n.pt")
# التدريب على Ascend NPU واحدة
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="npu:0")
# التدريب على وحدتي Ascend NPU باستخدام HCCL
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="npu:0,1")تستخدم ميزات التدريب القياسية، بما فيها AMP والتحقق وحفظ نقاط التحقق والاستئناف، وحدة NPU النشطة. يتوفر AutoBatch للتدريب على NPU واحدة، بينما يؤدي تحديد معرّفات NPU متعددة إلى بدء التدريب الموزع عبر HCCL. راجع دليل تكامل Huawei Ascend لمعرفة كيفية تصدير النماذج ونشرها بعد التدريب.
التدريب باستخدام وحدات GPU الأقل انشغالًا#
يتيح التدريب باستخدام وحدات GPU الأقل انشغالًا اختيار وحدات GPU الأقل استخدامًا تلقائيًا في الأنظمة متعددة وحدات GPU، ما يحسّن استخدام الموارد دون الحاجة إلى اختيار GPU يدويًا. وتحدّد هذه الميزة وحدات GPU المتاحة استنادًا إلى مقاييس الاستخدام وتوفر ذاكرة VRAM.
لاختيار وحدة GPU الأقل انشغالًا واستخدامها تلقائيًا للتدريب، استخدم معلمة الجهاز -1. وهذا مفيد على نحو خاص في بيئات الحوسبة المشتركة أو الخوادم التي تضم عدة مستخدمين.
from ultralytics import YOLO
# تحميل نموذج
model = YOLO("yolo26n.pt") # تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)
# التدريب باستخدام وحدة GPU الأقل انشغالًا
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)
# التدريب باستخدام وحدتي GPU الأقل انشغالًا
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])تعطي خوارزمية الاختيار التلقائي الأولوية لوحدات GPU التي تتميز بما يلي:
- نسب استخدام حالية أقل
- ذاكرة متاحة أكبر (ذاكرة VRAM خالية)
تكتسب هذه الميزة أهمية خاصة في بيئات الحوسبة المشتركة أو عند تشغيل مهام تدريب متعددة على نماذج مختلفة. فهي تتكيف تلقائيًا مع تغير ظروف النظام، ما يضمن تخصيص الموارد على النحو الأمثل دون تدخل يدوي.
التدريب باستخدام Apple Silicon وMPS#
بفضل دمج دعم شرائح Apple silicon في نماذج Ultralytics YOLO، أصبح من الممكن الآن تدريب النماذج على الأجهزة التي تستخدم إطار عمل Metal Performance Shaders (MPS) القوي. ويوفر MPS طريقة عالية الأداء لتنفيذ مهام الحساب ومعالجة الصور على شرائح Apple المخصصة.
لتفعيل التدريب على شرائح Apple silicon، حدّد 'mps' جهازًا عند بدء عملية التدريب. فيما يلي مثال على تنفيذ ذلك باستخدام Python وسطر الأوامر:
from ultralytics import YOLO
# تحميل نموذج
model = YOLO("yolo26n.pt") # تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)
# تدريب النموذج باستخدام MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")يتيح ذلك معالجة مهام التدريب بكفاءة أكبر مع الاستفادة من القدرة الحاسوبية لشرائح Apple silicon. لمزيد من الإرشادات التفصيلية وخيارات الإعداد المتقدمة، يُرجى الرجوع إلى وثائق PyTorch MPS.
استئناف التدريب بعد انقطاعه#
تُعدّ استئناف التدريب من حالة محفوظة سابقًا ميزةً أساسية عند العمل بنماذج التعلم العميق. وقد يكون ذلك مفيدًا في سيناريوهات متعددة، مثل انقطاع عملية التدريب على نحو غير متوقع، أو الرغبة في مواصلة تدريب نموذج ببيانات جديدة أو لعدد أكبر من العصور التدريبية.
عند استئناف التدريب، تحمّل Ultralytics YOLO الأوزان من آخر نموذج محفوظ، وتستعيد أيضًا حالة المُحسِّن ومُجدوِل معدل التعلم ورقم العصر التدريبي ومجموعة البيانات. يتيح ذلك مواصلة عملية التدريب بسلاسة من النقطة التي توقفت عندها. مرّر data= صراحةً إلى جانب resume لمتابعة التدريب على مجموعة بيانات مختلفة بدلًا من مجموعة بيانات نقطة التحقق.
يمكنك بسهولة استئناف التدريب في Ultralytics YOLO بتعيين الوسيطة resume إلى True عند استدعاء الطريقة train، وتحديد مسار الملف .pt الذي يحتوي على أوزان النموذج المدرَّب جزئيًا.
فيما يلي مثال على استئناف تدريب انقطع باستخدام Python وعبر سطر الأوامر:
from ultralytics import YOLO
# تحميل نموذج
model = YOLO("path/to/last.pt") # تحميل نموذج مدرَّب جزئيًا
# استئناف التدريب
results = model.train(resume=True)بتعيين resume=True، ستواصل الدالة train التدريب من النقطة التي توقفت عندها، باستخدام الحالة المخزنة في الملف 'path/to/last.pt'. إذا حُذفت الوسيطة resume أو عُيّنت إلى False، فستبدأ الدالة train جلسة تدريب جديدة.
تذكّر أن نقاط التحقق تُحفَظ افتراضيًا في نهاية كل عصر تدريبي، أو على فترات ثابتة باستخدام الوسيطة save_period؛ لذا يجب إكمال عصر تدريبي واحد على الأقل لاستئناف عملية التدريب.
إعدادات التدريب#
تشمل إعدادات تدريب نماذج YOLO معاملات فائقة وتكوينات متنوعة تُستخدم أثناء عملية التدريب. وتؤثر هذه الإعدادات في أداء النموذج وسرعته ودقته. تشمل إعدادات التدريب الرئيسية حجم الدفعة ومعدل التعلم والزخم واضمحلال الأوزان. بالإضافة إلى ذلك، قد يؤثر اختيار المُحسِّن ودالة الخسارة وتركيب مجموعة بيانات التدريب في عملية التدريب. ويُعد الضبط الدقيق لهذه الإعدادات والتجريب بها أمرًا أساسيًا لتحسين الأداء.
مُحسِّن MuSGD#
في YOLO26، يُعد MuSGD مُحسِّنًا هجينًا يجمع بين تحديثات SGD القياسية وتحديثات متعامدة بأسلوب Muon.
يوصى به لعمليات تدريب YOLO26 الأطول ومجموعات البيانات الأكبر، إذ يمكن لتحديثات Muon المتعامدة المساعدة في استقرار عملية التحسين.
لا تتلقى تحديث Muon بأسلوبه الخاص إلى جانب SGD إلا الأوزان الخطية ثنائية الأبعاد ومرشحات الالتفاف رباعية الأبعاد (بعد إعادة تشكيلها إلى ثنائية الأبعاد)، بينما تظل جميع المعاملات الأخرى، مثل أوزان تطبيع الدفعات ومصطلحات الانحياز، على SGD القياسي.
عند استخدام optimizer=auto، تختار Ultralytics تلقائيًا MuSGD لعمليات التدريب الأطول (عادةً عندما يكون عدد التكرارات > 10000). أما في العمليات الأقصر، فيعود المُدرِّب إلى AdamW. وفي وضع auto، يختار المُدرِّب أيضًا معدل التعلم، لذا يتم تجاهل lr0 الذي يحدده المستخدم. للتحكم بهذه الإعدادات يدويًا، اختر مُحسِّنًا صراحةً، مثل optimizer=AdamW lr0=0.001.
مثال على الاستخدام:
yolo train model=yolo26n.pt data=coco8.yaml optimizer=MuSGDاطّلع على التنفيذ في ultralytics/optim/muon.py ومنطق الاختيار التلقائي للمُحسِّن في BaseTrainer.build_optimizer.
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | يحدّد ملف النموذج المستخدم للتدريب. يقبل مسارًا إلى نموذج مدرَّب مسبقًا من .pt أو ملف تهيئة .yaml. وهو ضروري لتعريف بنية النموذج أو تهيئة الأوزان. |
data | str | None | مسار ملف YAML لمجموعة البيانات (مثل coco8.yaml)، الذي يتضمن مسارات بيانات التحقق والتدريب، وأسماء الفئات، وعددها. أما التصنيف فيقبل دليل مجموعة بيانات أو اسم مجموعة بيانات مضمّنة (مثل imagenet10). |
epochs | int | 100 | إجمالي عدد حقب التدريب. تمثل كل حقبة مرورًا كاملًا على مجموعة البيانات بأكملها. ويمكن أن يؤثر تعديل هذه القيمة في مدة التدريب وأداء النموذج. |
time | float | None | الحد الأقصى لمدة التدريب بالساعات. إذا عُيّنت هذه القيمة، فإنها تتجاوز الوسيطة epochs، ما يسمح بإيقاف التدريب تلقائيًا بعد المدة المحددة. وهي مفيدة في سيناريوهات التدريب المقيّدة زمنيًا. |
patience | int | 100 | عدد الحقب التي يُنتظر خلالها دون تحسّن في مقاييس التحقق قبل إيقاف التدريب مبكرًا. تساعد هذه القيمة على منع فرط التكيّف بإيقاف التدريب عند استقرار الأداء. |
batch | int أو float | 16 | حجم الدفعة، وله ثلاثة أوضاع: تعيينه كعدد صحيح (مثل batch=16)، أو وضع تلقائي لاستخدام 60% من ذاكرة GPU (batch=-1)، أو وضع تلقائي مع تحديد نسبة الاستخدام (batch=0.70). |
imgsz | int | 640 | حجم الصورة المستهدف للتدريب. تُغيّر أحجام الصور إلى مربعات طول أضلاعها يساوي القيمة المحددة (إذا كانت rect=False)، مع الحفاظ على نسبة العرض إلى الارتفاع في نماذج YOLO، ولكن ليس في RT-DETR. ويؤثر ذلك في دقة النموذج وتعقيده الحسابي. |
save | bool | True | يتيح حفظ نقاط التحقق أثناء التدريب وأوزان النموذج النهائية. وهو مفيد لاستئناف التدريب أو نشر النموذج. |
save_period | int | -1 | وتيرة حفظ نقاط تحقق النموذج، محددة بعدد الحقب. تعطل القيمة -1 هذه الميزة. وهي مفيدة لحفظ نماذج وسيطة أثناء جلسات التدريب الطويلة. |
cache | bool أو str | False | يتيح تخزين صور مجموعة البيانات مؤقتًا في الذاكرة (True/ram) أو على القرص (disk)، أو تعطيل التخزين المؤقت (False). ويحسّن سرعة التدريب بتقليل عمليات الإدخال/الإخراج على القرص، مقابل زيادة استخدام الذاكرة. |
device | int أو str أو list | None | يحدّد جهازًا أو أكثر للحوسبة أثناء التدريب: GPU واحد (device=0)، أو عدة وحدات GPU (device=[0,1])، أو CPU (device=cpu)، أو MPS لأجهزة Apple silicon (device=mps)، أو NPU من Huawei Ascend (device=npu:0 أو device=npu:0,1)، أو Intel XPU (device=xpu:0)، أو الاختيار التلقائي لوحدة GPU خاملة (device=-1) أو عدة وحدات GPU خاملة (device=[-1,-1]). |
workers | int | 8 | عدد سلاسل العاملين لتحميل البيانات (لكل RANK في حال التدريب باستخدام عدة وحدات GPU). يؤثر في سرعة المعالجة المسبقة للبيانات وإدخالها إلى النموذج، وهو مفيد بوجه خاص في إعدادات التدريب متعددة وحدات GPU. |
project | str | None | اسم دليل المشروع الذي تُحفظ فيه مخرجات التدريب. يتيح تنظيم تخزين التجارب المختلفة. |
name | str | None | اسم تشغيل التدريب. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع تُخزّن فيه سجلات التدريب ومخرجاته. |
exist_ok | bool | False | إذا كانت القيمة True، يُسمح بالكتابة فوق دليل موجود للمشروع/الاسم. وهذا مفيد للتجارب التكرارية دون الحاجة إلى مسح المخرجات السابقة يدويًا. |
save_dir | str | None | يحدّد الدليل الدقيق لحفظ مخرجات التشغيل، متجاوزًا تركيبة project/name. يُستخدم المسار كما هو دون زيادة تلقائية، لذا تعيد عمليات التشغيل المتتالية استخدام الدليل نفسه. |
pretrained | bool أو str | True | يحدّد ما إذا كان التدريب سيبدأ بأوزان مدرّبة مسبقًا. يمكن أن تكون القيمة منطقية أو سلسلة تمثل مسار الأوزان المطلوب تحميلها. تُدرّب pretrained=False انطلاقًا من أوزان مهيأة عشوائيًا مع الحفاظ على بنية النموذج. |
cls_remap | bool | True | عند الضبط الدقيق عبر مجموعات بيانات مختلفة، تُنسخ صفوف رأس التصنيف المدرّب مسبقًا إلى النموذج الجديد حيثما تطابقت أسماء الفئات، بحيث تحتفظ الفئات المتداخلة بالانحياز الذي تعلّمته، إلى جانب أوزانها عندما يظل عرض الرأس دون تغيير. ينطبق ذلك سواء اختلف عدد الفئات أم تطابق مع اختلاف ترتيبها. |
optimizer | str | 'auto' | اختيار محسِّن التدريب. تشمل الخيارات SGD، وMuSGD، وAdam، وAdamax، وAdamW، وNAdam، وRAdam، وRMSProp، أو auto لاختيار AdamW أو MuSGD وفقًا لعدد تكرارات التدريب. ويؤثر ذلك في سرعة التقارب واستقراره. |
seed | int | 0 | يعيّن البذرة العشوائية للتدريب، ما يضمن إمكانية إعادة إنتاج النتائج عبر عمليات التشغيل ذات التهيئات نفسها. |
deterministic | bool | True | يفرض استخدام خوارزميات حتمية، ما يضمن إمكانية إعادة إنتاج النتائج، لكن قد يؤثر في الأداء والسرعة بسبب تقييد الخوارزميات غير الحتمية. |
verbose | bool | True | يتيح عرضًا تفصيليًا أثناء التدريب، يشمل أشرطة التقدم والمقاييس لكل حقبة ومعلومات تدريب إضافية في وحدة التحكم. |
single_cls | bool | False | يعامل جميع الفئات في مجموعات البيانات متعددة الفئات على أنها فئة واحدة أثناء التدريب. وهو مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الأجسام بدلًا من تصنيفها. |
classes | list[int] | None | يحدّد قائمة بمعرّفات الفئات المطلوب التدريب عليها. وهو مفيد لتصفية الفئات والتركيز على فئات بعينها أثناء التدريب. |
rect | bool | False | تفعّل استراتيجية الحد الأدنى من الحشو، بحيث تُحشى الصور في الدفعة بأقل قدر ممكن للوصول إلى حجم موحّد، ويكون أطول ضلع مساويًا لـ imgsz. قد يؤدي ذلك إلى تحسين الكفاءة والسرعة، لكنه قد يؤثر في دقة النموذج. يستخدم مدرّب YOLO القياسي rect=True للتحقق من مهام الكشف والتجزئة وتقدير الوضعية وOBB، بصرف النظر عن هذا الإعداد. |
multi_scale | float | 0.0 | يغيّر قيمة imgsz عشوائيًا في كل دفعة بمقدار +/- multi_scale (مثلًا: 0.25 ← من 0.75x إلى 1.25x)، مع التقريب إلى مضاعفات خطوة النموذج؛ وتعطّل 0.0 التدريب متعدد المقاييس. |
cos_lr | bool | False | يستخدم مجدول معدل التعلّم ذي المنحنى الجيبي، إذ يضبط معدل التعلّم وفق منحنى جيبي عبر الحقب. ويساعد على إدارة معدل التعلّم لتحقيق تقارب أفضل. |
close_mosaic | int | 10 | يعطّل زيادة بيانات الفسيفساء خلال آخر N حقب لتحقيق استقرار التدريب قبل انتهائه. يؤدي تعيين القيمة إلى 0 إلى تعطيل هذه الميزة. |
resume | bool | False | يستأنف التدريب من آخر نقطة تحقق محفوظة. ويحمّل تلقائيًا أوزان النموذج وحالة المحسِّن وعدد الحقب لمتابعة التدريب بسلاسة. |
amp | bool أو str | True | يحدّد دقة التدريب: يستخدم True أو "fp16" تنسيق FP16، ويستخدم "bf16" تنسيق BF16 على أجهزة CUDA المدعومة، بينما يستخدم False أو "fp32" تنسيق FP32. |
quantize | int أو str | None | عيّن القيمة إلى 8 (أو "int8") للتدريب المدرك للتكميم إلى INT8 (QAT)، الذي يجري ضبطًا دقيقًا باستخدام تكميم زائف ضمن الحلقة كي تتحمل الأوزان التصدير إلى INT8. راجع التدريب المدرك للتكميم. |
fraction | float أو int أو list | 1.0 | جزء مجموعة البيانات، محدد كنسبة أو عدد أو قائمة [train, val, test]. تعني 1 التقسيم الكامل، وتمثل الأعداد الصحيحة الأكبر من 1 أعداد الصور، ولا يقبل الإدخال الاختياري للاختبار وحده 0/0.0 بمعنى لا شيء. وتُبقي القوائم ذات العنصرين مجموعة الاختبار كاملة. |
profile | bool | False | يتيح قياس سرعتي ONNX وTensorRT أثناء التدريب، وهو مفيد لتحسين نشر النموذج. |
freeze | int أو list | None | يجمّد أول N طبقة من النموذج، أو طبقات محددة حسب الفهرس أو اسم الوحدة (23.cv2، من دون البادئة model.)، ما يقلل عدد المعلمات القابلة للتدريب. وهو مفيد للضبط الدقيق أو التعلّم بالنقل. |
lr0 | float | 0.01 | معدل التعلّم الأولي (أي SGD=1E-2، Adam=1E-3). يُتجاهل مع الإعداد الافتراضي optimizer='auto'؛ لذا حدّد محسِّنًا صراحةً لاستخدامه. |
lrf | float | 0.01 | معدل التعلّم النهائي كنسبة من المعدل الأولي = (lr0 * lrf)، ويُستخدم مع المجدولات لضبط معدل التعلّم بمرور الوقت. |
momentum | float | 0.937 | عامل الزخم في SGD أو معامل beta1 في محسّنات Adam، ويؤثر في مدى إدراج التدرجات السابقة في التحديث الحالي. |
weight_decay | float | 0.0005 | مصطلح انتظام L2، يعاقب الأوزان الكبيرة لمنع فرط التكيّف. |
warmup_epochs | float | 3.0 | عدد حقب إحماء معدل التعلّم، حيث يُزاد المعدل تدريجيًا من قيمة منخفضة إلى المعدل الأولي لتحقيق استقرار التدريب في بدايته. |
warmup_momentum | float | 0.8 | الزخم الأولي لمرحلة الإحماء، ويُعدّل تدريجيًا ليصل إلى الزخم المحدد خلال فترة الإحماء. |
warmup_bias_lr | float | 0.1 | معدل التعلّم لمعاملات الانحياز أثناء مرحلة الإحماء، ما يساعد على تحقيق استقرار تدريب النموذج في الحقب الأولى. يُضبط تلقائيًا على 0.0 مع الإعداد الافتراضي optimizer='auto'؛ لذا حدّد محسِّنًا صراحةً لاستخدامه. |
distill_model | str | None | مسار نقطة تحقق نموذج المعلّم (مثل yolo26x.pt) لتقطير المعرفة. عند تعيينه، يُدرّب نموذج الطالب باستخدام خسارة تقطير إضافية يوجّهها نموذج المعلّم المجمّد. |
dis | float | 6.0 | وزن خسارة التقطير المضافة إلى خسائر الكشف القياسية. تزيد القيم الأعلى من تأثير توجيه خصائص نموذج المعلّم. |
box | float | 7.5 | وزن مكوّن خسارة الصندوق في دالة الخسارة، ويؤثر في مقدار التركيز على التنبؤ الدقيق بإحداثيات الصندوق المحيط. |
cls | float | 0.5 | وزن خسارة التصنيف في دالة الخسارة الكلية، ويؤثر في أهمية التنبؤ الصحيح بالفئة مقارنةً بالمكونات الأخرى. |
cls_pw | float | 0.0 | قوة ترجيح الفئات لمعالجة اختلال توازن الفئات باستخدام معكوس تكرار الفئة. تعطّل 0.0 ترجيح الفئات، بينما تطبّق 1.0 الترجيح الكامل بمعكوس التكرار. وتوفّر القيم بين 0 و1 ترجيحًا جزئيًا. |
dfl | float | 1.5 | وزن حد انحدار مسافة الصندوق: خسارة البؤرة التوزيعية (DFL) عندما يستخدم رأس الكشف reg_max > 1، وخسارة L1 لمسافات الصندوق المطبّعة في YOLO26 الخالي من DFL (reg_max: 1). |
pose | float | 12.0 | وزن خسارة الوضعية في النماذج المدرّبة لتقدير الوضعيات، ويؤثر في التركيز على التنبؤ الدقيق بالنقاط المفتاحية للوضعية. |
kobj | float | 1.0 | وزن خسارة احتمالية وجود الكائن عند النقطة المفتاحية في نماذج تقدير الوضعيات، لتحقيق توازن بين ثقة الكشف ودقة الوضعية. |
rle | float | 1.0 | وزن خسارة تقدير الاحتمالية اللوغاريتمية المتبقية في نماذج تقدير الوضعيات، ويؤثر في دقة تحديد مواقع النقاط المفتاحية. |
angle | float | 1.0 | وزن خسارة الزاوية في نماذج OBB، ويؤثر في دقة التنبؤ بزوايا الصناديق المحيطة الموجّهة. |
dlog | float | 1.0 | وزن خسارة اللوغاريتمية الثابتة للمقياس (SILog) في نماذج تقدير العمق، وهي الحد الأساسي المحرّك لدقة العمق. |
dgrad | float | 0.5 | وزن خسارة التدرّج في نماذج تقدير العمق، وتعاقب الأخطاء عند حواف العمق وتشجّع على حدود أسطح أكثر وضوحًا. |
dlam | float | 1.0 | عامل التركيز على التباين في خسارة SILog بنماذج تقدير العمق. تجعل 1.0 الخسارة ثابتة المقياس بالكامل، بينما تقلّصها 0.0 إلى RMSE لوغاريتمي عادي. |
nbs | int | 64 | حجم الدفعة الاسمي لتطبيع الخسارة. |
overlap_mask | bool | True | يحدّد ما إذا كان ينبغي دمج أقنعة الأجسام في قناع واحد للتدريب، أم إبقاء قناع منفصل لكل جسم. عند التداخل، يوضع القناع الأصغر فوق الأكبر أثناء الدمج. |
mask_ratio | int | 4 | نسبة خفض دقة أقنعة التجزئة، وتؤثر في دقة الأقنعة المستخدمة أثناء التدريب. ولا تغيّر دقة الأقنعة المتنبأ بها. |
dropout | float | 0.0 | معدل الإسقاط للتنظيم في مهام التصنيف، ويمنع فرط التكيّف بإسقاط الوحدات عشوائيًا أثناء التدريب. |
val | bool | True | يتيح التحقق أثناء التدريب، ما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة. |
nms | bool، اختياري | None | يختار رأس الاستدلال المستخدم للتحقق في كل حقبة واختيار نقاط التحقق والإيقاف المبكر. يستخدم None أو True أسلوب واحد إلى متعدد مع NMS؛ أما False فيستخدم الرأس الخالي من NMS عند توفره. ويحتفظ كلا الرأسين بخسائر التدريب. |
plots | bool | True | ينشئ مخططات مقاييس التدريب والتحقق وأمثلة التنبؤ ويحفظها، ما يوفّر رؤى مرئية حول أداء النموذج وتقدمه في التعلّم. |
compile | bool أو str | False | يتيح تجميع رسوم torch.compile في PyTorch 2.x باستخدام backend='inductor'. يقبل True → "default"، أو False لتعطيله، أو وضعًا نصيًا مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". ويعود إلى التنفيذ الفوري مع تحذير إذا لم يكن مدعومًا. |
channels_last | bool | None | يستخدم تنسيق الذاكرة channels_last (NHWC) للالتفافات أثناء التدريب. تفعّله None تلقائيًا على CUDA مع PyTorch 1.11 أو أحدث، باستثناء Windows، حيث أظهرت القياسات أنه أبطأ. وتعطّله False، بينما تطلبه True صراحةً. ويظل التدريب على CPU أو MPS دائمًا بتنسيق NCHW (يُتجاهل True مع إظهار تحذير). |
max_det | int | 300 | الحد الأقصى لعدد عمليات الكشف لكل صورة أثناء التحقق من التدريب. بالنسبة إلى الكشف والتجزئة والوضعيات وOBB، يرتفع الحد الافتراضي البالغ 300 إلى أكبر عدد من الكائنات الموسومة في التدريب/التحقق، وذلك فقط عندما يتجاوز هذا العدد 300. وتظل القيم الأخرى ثابتة؛ ويؤدي تجاوز الحد إلى ظهور تحذير. |
يمكن ضبط الوسيطة batch بثلاث طرق:
- حجم دفعة ثابت: عيّن قيمة عددية صحيحة (مثل
batch=16) لتحديد عدد الصور في كل دفعة مباشرةً. - الوضع التلقائي (60% من ذاكرة GPU): استخدم
batch=-1لضبط حجم الدفعة تلقائيًا بهدف استخدام نحو 60% من ذاكرة CUDA. - الوضع التلقائي مع تحديد نسبة الاستخدام: عيّن قيمة كسرية (مثل
batch=0.70) لضبط حجم الدفعة استنادًا إلى النسبة المحددة من استخدام ذاكرة GPU. - إعادة المحاولة التلقائية عند نفاد الذاكرة: إذا وقع خطأ نفاد ذاكرة CUDA خلال العصر التدريبي الأول، يخفض المُدرِّب حجم الدفعة إلى النصف تلقائيًا ثم يعيد المحاولة (حتى 3 مرات). ينطبق هذا على التدريب باستخدام GPU واحد فقط؛ أما التدريب باستخدام عدة وحدات GPU (DDP) فيُصدر الخطأ فورًا.
- تعذّر العثور على حجم مناسب: إذا لم ينتج أي حجم مرشح للدفعة ملف تعريف قابلًا للاستخدام، يرفع AutoBatch خطأ
RuntimeErrorواضحًا بدلًا من الرجوع بصمت إلى قيمة افتراضية غير ذات صلة.
إعدادات الإثراء والمعاملات الفائقة#
تُعد تقنيات الإثراء ضرورية لتحسين متانة نماذج YOLO وأدائها، إذ تُدخل تنوعًا على بيانات التدريب، ما يساعد النموذج على التعميم بصورة أفضل على البيانات التي لم يرها من قبل. يوضح الجدول التالي الغرض من كل وسيطة إثراء وتأثيرها:
| المعامل | النوع | الافتراضي | المهام المدعومة | النطاق | الوصف |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | يضبط درجة تدرج اللون في الصورة بجزء من عجلة الألوان، ما يضيف تنوعًا لونيًا. ويساعد النموذج على التعميم في ظروف الإضاءة المختلفة. بالنسبة إلى classify، لا ينطبق هذا إلا عند auto_augment=None. |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | يغيّر تشبع الصورة بمقدار كسري، ما يؤثر في شدة الألوان. ويفيد في محاكاة الظروف البيئية المختلفة. بالنسبة إلى classify، لا ينطبق هذا إلا عند auto_augment=None. |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | يعدّل قيمة الصورة (السطوع) بمقدار كسري، ما يساعد النموذج على الأداء الجيد في ظروف الإضاءة المتنوعة. بالنسبة إلى classify، لا ينطبق هذا إلا عند auto_augment=None. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | يدير الصورة عشوائيًا ضمن نطاق الدرجات المحدد، ما يحسّن قدرة النموذج على التعرّف على الأجسام بمختلف اتجاهاتها. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | ينقل الصورة أفقيًا ورأسيًا بجزء من حجمها، ما يساعد النموذج على تعلم اكتشاف الأجسام الظاهرة جزئيًا. |
scale | float | tuple | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1، أو صف (min, max) صريح (ليس لـ classify). | يغيّر حجم الصورة بعامل تكبير، لمحاكاة وجود الأجسام على مسافات مختلفة من الكاميرا. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | يقص الصورة بالدرجة المحددة، لمحاكاة تأثير رؤية الأجسام من زوايا مختلفة. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | يطبّق تحويل منظور عشوائيًا على الصورة، ما يعزز قدرة النموذج على فهم الأجسام في فضاء ثلاثي الأبعاد. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | يقلب الصورة رأسًا على عقب بالاحتمال المحدد، ما يزيد تنوع البيانات دون التأثير في خصائص الجسم. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | يقلب الصورة من اليسار إلى اليمين بالاحتمال المحدد، ما يفيد في تعلم الأجسام المتماثلة وزيادة تنوع مجموعة البيانات. |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | يقلب قنوات الصورة من RGB إلى BGR بالاحتمال المحدد، ما يفيد في زيادة المتانة تجاه الترتيب غير الصحيح للقنوات. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | يدمج أربع صور تدريب في صورة واحدة، لمحاكاة تراكيب المشاهد المختلفة والتفاعلات بين الأجسام. وهو فعال جدًا في فهم المشاهد المعقدة. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | يمزج صورتين وتسميتيهما لإنشاء صورة مركّبة. ويعزز قدرة النموذج على التعميم عبر إدخال ضوضاء على التسميات وتنوع بصري. |
cutmix | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | يدمج أجزاءً من صورتين، منشئًا مزجًا جزئيًا مع الحفاظ على مناطق متميزة. ويعزز متانة النموذج عبر إنشاء حالات حجب. |
copy_paste | float | 0 | segment, semantic, obb | 0.0 - 1.0 | نسبة الأجسام المؤهلة التي تُلصق؛ يعكسها flip داخل الصورة، بينما يستخدم mixup القيمة أيضًا احتمالًا للتطبيق عبر الصور. |
copy_paste_mode | str | flip | segment, semantic, obb | - | يحدد استراتيجية copy-paste المراد استخدامها. تشمل الخيارات 'flip' و'mixup'. |
auto_augment | str | randaugment | classify | - | يطبّق سياسة زيادة بيانات محددة مسبقًا ('randaugment' أو 'autoaugment' أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | يمحو مناطق من الصورة عشوائيًا أثناء التدريب، لتشجيع النموذج على التركيز على السمات الأقل وضوحًا. |
augmentations | list | None | detect, segment, semantic, depth, pose, obb | - | تحويلات Albumentations مخصصة لزيادة البيانات المتقدمة (واجهة Python فقط). تقبل قائمة بكائنات التحويل لتلبية احتياجات زيادة البيانات المتخصصة. |
يمكن تعديل هذه الإعدادات لتلبية متطلبات مجموعة البيانات والمهمة المحددة. وقد يساعد التجريب بقيم مختلفة في العثور على استراتيجية الإثراء المثلى التي تحقق أفضل أداء للنموذج.
لمزيد من المعلومات حول عمليات إثراء بيانات التدريب، راجع قسم المراجع.
التسجيل#
تُكتب مقاييس التدريب والمخططات ونقاط التحقق دائمًا في دليل التشغيل، كما تبثها Ultralytics إلى أي أداة تتبّع تجارب ثبّتها وفعّلتها: Comet وClearML وTensorBoard وMLflow وWeights & Biases وDVCLive. ويمكن تفعيل كل مسجّل أو إيقافه من خلال إعدادات Ultralytics، مثل yolo settings tensorboard=True. وفيما يلي أكثر ثلاثة إعدادات شيوعًا.
Comet#
Comet منصة تتيح لعلماء البيانات والمطورين تتبّع التجارب والنماذج ومقارنتها وتفسيرها وتحسينها. وتوفر إمكانات مثل المقاييس في الوقت الفعلي وفروق التعليمات البرمجية وتتبع المعاملات الفائقة.
لاستخدام Comet:
# pip install comet_ml
import comet_ml
comet_ml.login()تذكّر تسجيل الدخول إلى حسابك في Comet على موقعهم الإلكتروني والحصول على مفتاح API. ستحتاج إلى إضافته إلى متغيرات البيئة أو إلى البرنامج النصي لتسجيل تجاربك.
ClearML#
ClearML منصة مفتوحة المصدر تؤتمت تتبّع التجارب وتساعد على مشاركة الموارد بكفاءة. صُممت لمساعدة الفرق على إدارة أعمال التعلم الآلي وتنفيذها وإعادة إنتاجها بكفاءة أكبر.
لاستخدام ClearML:
# pip install clearml
import clearml
clearml.browser_login()بعد تشغيل هذا البرنامج النصي، ستحتاج إلى تسجيل الدخول إلى حسابك في ClearML عبر المتصفح ومصادقة جلستك.
TensorBoard#
TensorBoard مجموعة أدوات للتصور خاصة بـTensorFlow. تتيح لك تصور مخطط TensorFlow ورسم المقاييس الكمية المتعلقة بتنفيذ المخطط وعرض بيانات إضافية، مثل الصور التي تمر عبره.
لاستخدام TensorBoard في Google Colab:
%load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directoryلاستخدام TensorBoard محليًا، شغّل الأمر أدناه واعرض النتائج في localhost:6006.
tensorboard --logdir ultralytics/runs # replace with 'runs' directoryسيؤدي ذلك إلى تشغيل TensorBoard وتوجيهه إلى الدليل الذي تُحفَظ فيه سجلات التدريب.
بعد إعداد أداة التسجيل، يمكنك البدء بتدريب النموذج. ستُسجّل جميع مقاييس التدريب تلقائيًا على المنصة التي اخترتها، ويمكنك الوصول إلى هذه السجلات لمراقبة أداء النموذج بمرور الوقت ومقارنة النماذج المختلفة وتحديد الجوانب التي تحتاج إلى تحسين.
ما الخطوة التالية؟#
تحقّق من صحة نموذجك المدرَّب باستخدام بيانات مستبعدة للتحقق من دقته في العالم الحقيقي، ثم صدّره إلى ONNX أو TensorRT أو تنسيق نشر آخر. هل تدرّب على بياناتك بدلًا من COCO8؟ نسّقها أولًا باستخدام دليل مجموعات البيانات.
الأسئلة الشائعة#
نعم. يتضمن التدريب السحابي على منصة Ultralytics أرصدة مجانية للبدء. ارفع مجموعة بياناتك، واختر نموذجًا وGPU، وابدأ التدريب مباشرةً من المتصفح.
لتدريب نموذج لكشف الأجسام باستخدام Ultralytics YOLO26، يمكنك استخدام واجهة Python البرمجية أو CLI. فيما يلي مثال لكل منهما:
مثال على التدريب باستخدام GPU واحد وCPUfrom ultralytics import YOLO # تحميل نموذج model = YOLO("yolo26n.pt") # تحميل نموذج مدرّب مسبقًا (موصى به للتدريب) # تدريب النموذج results = model.train(data="coco8.yaml", epochs=100, imgsz=640)لمزيد من التفاصيل، راجع قسم إعدادات التدريب.
تشمل الميزات الرئيسية لوضع التدريب في Ultralytics YOLO26 ما يلي:
- تنزيل مجموعة البيانات تلقائيًا: ينزّل مجموعات البيانات القياسية مثل COCO وVOC وImageNet تلقائيًا.
- دعم عدة وحدات GPU: وسّع نطاق التدريب عبر وحدات GPU متعددة لتسريع المعالجة.
- ضبط المعاملات الفائقة: خصّص المعاملات الفائقة عبر ملفات YAML أو وسائط CLI.
- التصور والمراقبة: تتبّع مقاييس التدريب في الوقت الفعلي للحصول على رؤى أفضل.
تجعل هذه الميزات التدريب فعالًا وقابلًا للتخصيص وفق احتياجاتك. لمزيد من التفاصيل، راجع قسم الميزات الرئيسية لوضع التدريب.
لاستئناف التدريب بعد انقطاع جلسة، عيّن الوسيطة
resumeإلىTrueوحدد مسار آخر نقطة تحقق محفوظة.مثال على استئناف التدريبfrom ultralytics import YOLO # تحميل النموذج المدرَّب جزئيًا model = YOLO("path/to/last.pt") # استئناف التدريب results = model.train(resume=True)راجع قسم استئناف عمليات التدريب المنقطعة لمزيد من المعلومات.
يحدث اختلال توازن الفئات عندما يكون عدد الأمثلة لبعض الفئات في بيانات التدريب أقل بكثير من عددها في الفئات الأخرى. وقد يؤدي ذلك إلى ضعف أداء النموذج في الفئات النادرة. تدعم Ultralytics YOLO ترجيح الفئات عبر الوسيطة
cls_pwلمعالجة هذه المشكلة.تتحكم الوسيطة
cls_pwفي مقدار ترجيح الفئات استنادًا إلى معكوس تواتر الفئة:cls_pw=0.0(افتراضي): يعطّل ترجيح الفئاتcls_pw=1.0: يطبّق ترجيحًا كاملًا بمعكوس التواتر- توفر القيم بين
0.0و1.0ترجيحًا جزئيًا للاختلال المعتدل
تُحسب أوزان الفئات على النحو
(1.0 / class_counts) ^ cls_pwوتُطبّع بحيث يساوي متوسطها 1.0.التدريب على مجموعة بيانات غير متوازنةfrom ultralytics import YOLO # تحميل نموذج مدرَّب مسبقًا model = YOLO("yolo26n.pt") # التدريب بترجيح كامل للفئات عند وجود اختلال شديد في توازن البيانات results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=1.0) # أو استخدام ترجيح جزئي (0.25) للاختلال المعتدل results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=0.25)نصيحةابدأ باستخدام
cls_pw=0.25مع مجموعات البيانات ذات الاختلال المعتدل، وارفع القيمة إلى1.0إذا استمر ضعف أداء الفئات النادرة. يمكنك التحقق من أوزان الفئات المحسوبة في سجلات التدريب للتأكد من توزيع الأوزان.نعم، تدعم Ultralytics YOLO26 التدريب على شرائح Apple silicon باستخدام إطار عمل مظللات الأداء المعدني (MPS). حدّد 'mps' جهازًا للتدريب.
مثال على التدريب باستخدام MPSfrom ultralytics import YOLO # تحميل نموذج مدرَّب مسبقًا model = YOLO("yolo26n.pt") # تدريب النموذج على شريحة Apple silicon (M1/M2/M3/M4) results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")لمزيد من التفاصيل، راجع قسم التدريب باستخدام Apple Silicon وMPS.
تتيح لك Ultralytics YOLO26 ضبط مجموعة متنوعة من إعدادات التدريب عبر الوسائط، مثل حجم الدفعة ومعدل التعلم وعدد العصور التدريبية وغيرها. إليك لمحة موجزة:
المعامل الافتراضي الوصف modelNoneمسار ملف النموذج المراد تدريبه. dataNoneمسار ملف YAML لمجموعة البيانات (مثل coco8.yaml)، أو دليل مجموعة البيانات أو اسمها (مثلimagenet10) لمهمة التصنيف.epochs100العدد الإجمالي لعصور التدريب. batch16حجم الدفعة، ويمكن ضبطه كعدد صحيح أو باستخدام الوضع التلقائي. imgsz640حجم الصور المستهدف للتدريب. deviceNoneجهاز أو أجهزة الحوسبة المستخدمة للتدريب، مثل cpuأو0أو0,1أوmps.saveTrueيتيح حفظ نقاط تحقق التدريب وأوزان النموذج النهائية. للاطلاع على دليل مفصل حول إعدادات التدريب، راجع قسم إعدادات التدريب.