Ultralytics YOLO27:
Get Started

تدريب النماذج باستخدام Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

مقدمة#

يتضمن تدريب نموذج التعلّم العميق تزويده بالبيانات وضبط معلماته ليتمكن من تقديم تنبؤات دقيقة. صُمم وضع التدريب في 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

في Windows، قد يظهر لك RuntimeError عند بدء التدريب كنص برمجي. أضف كتلة if __name__ == "__main__": قبل رمز التدريب لحل المشكلة.

مثال على التدريب باستخدام GPU واحد وCPU

يُحدَّد الجهاز تلقائيًا. إذا توفر 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 متعددة

للتدريب باستخدام وحدتي 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

لا يعمل التدريب باستخدام وحدات 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.

التدريب باستخدام وحدات GPU متعددة ورمز مخصص

عند تحديد أجهزة متعددة (مثل 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.sh
مثال على التدريب باستخدام Ascend NPU
from 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 الأقل انشغالًا

لاختيار وحدة 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 التي تتميز بما يلي:

  1. نسب استخدام حالية أقل
  2. ذاكرة متاحة أكبر (ذاكرة VRAM خالية)

تكتسب هذه الميزة أهمية خاصة في بيئات الحوسبة المشتركة أو عند تشغيل مهام تدريب متعددة على نماذج مختلفة. فهي تتكيف تلقائيًا مع تغير ظروف النظام، ما يضمن تخصيص الموارد على النحو الأمثل دون تدخل يدوي.

التدريب باستخدام Apple Silicon وMPS#

بفضل دمج دعم شرائح Apple silicon في نماذج Ultralytics YOLO، أصبح من الممكن الآن تدريب النماذج على الأجهزة التي تستخدم إطار عمل Metal Performance Shaders (MPS) القوي. ويوفر MPS طريقة عالية الأداء لتنفيذ مهام الحساب ومعالجة الصور على شرائح Apple المخصصة.

لتفعيل التدريب على شرائح Apple silicon، حدّد 'mps' جهازًا عند بدء عملية التدريب. فيما يلي مثال على تنفيذ ذلك باستخدام Python وسطر الأوامر:

مثال على التدريب باستخدام MPS
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.

المعاملالنوعالافتراضيالوصف
modelstrNoneيحدّد ملف النموذج المستخدم للتدريب. يقبل مسارًا إلى نموذج مدرَّب مسبقًا من .pt أو ملف تهيئة .yaml. وهو ضروري لتعريف بنية النموذج أو تهيئة الأوزان.
datastrNoneمسار ملف YAML لمجموعة البيانات (مثل coco8.yaml)، الذي يتضمن مسارات بيانات التحقق والتدريب، وأسماء الفئات، وعددها. أما التصنيف فيقبل دليل مجموعة بيانات أو اسم مجموعة بيانات مضمّنة (مثل imagenet10).
epochsint100إجمالي عدد حقب التدريب. تمثل كل حقبة مرورًا كاملًا على مجموعة البيانات بأكملها. ويمكن أن يؤثر تعديل هذه القيمة في مدة التدريب وأداء النموذج.
timefloatNoneالحد الأقصى لمدة التدريب بالساعات. إذا عُيّنت هذه القيمة، فإنها تتجاوز الوسيطة epochs، ما يسمح بإيقاف التدريب تلقائيًا بعد المدة المحددة. وهي مفيدة في سيناريوهات التدريب المقيّدة زمنيًا.
patienceint100عدد الحقب التي يُنتظر خلالها دون تحسّن في مقاييس التحقق قبل إيقاف التدريب مبكرًا. تساعد هذه القيمة على منع فرط التكيّف بإيقاف التدريب عند استقرار الأداء.
batchint أو float16حجم الدفعة، وله ثلاثة أوضاع: تعيينه كعدد صحيح (مثل batch=16)، أو وضع تلقائي لاستخدام 60% من ذاكرة GPU (batch=-1)، أو وضع تلقائي مع تحديد نسبة الاستخدام (batch=0.70).
imgszint640حجم الصورة المستهدف للتدريب. تُغيّر أحجام الصور إلى مربعات طول أضلاعها يساوي القيمة المحددة (إذا كانت rect=False)، مع الحفاظ على نسبة العرض إلى الارتفاع في نماذج YOLO، ولكن ليس في RT-DETR. ويؤثر ذلك في دقة النموذج وتعقيده الحسابي.
saveboolTrueيتيح حفظ نقاط التحقق أثناء التدريب وأوزان النموذج النهائية. وهو مفيد لاستئناف التدريب أو نشر النموذج.
save_periodint-1وتيرة حفظ نقاط تحقق النموذج، محددة بعدد الحقب. تعطل القيمة -1 هذه الميزة. وهي مفيدة لحفظ نماذج وسيطة أثناء جلسات التدريب الطويلة.
cachebool أو strFalseيتيح تخزين صور مجموعة البيانات مؤقتًا في الذاكرة (True/ram) أو على القرص (disk)، أو تعطيل التخزين المؤقت (False). ويحسّن سرعة التدريب بتقليل عمليات الإدخال/الإخراج على القرص، مقابل زيادة استخدام الذاكرة.
deviceint أو str أو listNoneيحدّد جهازًا أو أكثر للحوسبة أثناء التدريب: 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]).
workersint8عدد سلاسل العاملين لتحميل البيانات (لكل RANK في حال التدريب باستخدام عدة وحدات GPU). يؤثر في سرعة المعالجة المسبقة للبيانات وإدخالها إلى النموذج، وهو مفيد بوجه خاص في إعدادات التدريب متعددة وحدات GPU.
projectstrNoneاسم دليل المشروع الذي تُحفظ فيه مخرجات التدريب. يتيح تنظيم تخزين التجارب المختلفة.
namestrNoneاسم تشغيل التدريب. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع تُخزّن فيه سجلات التدريب ومخرجاته.
exist_okboolFalseإذا كانت القيمة True، يُسمح بالكتابة فوق دليل موجود للمشروع/الاسم. وهذا مفيد للتجارب التكرارية دون الحاجة إلى مسح المخرجات السابقة يدويًا.
save_dirstrNoneيحدّد الدليل الدقيق لحفظ مخرجات التشغيل، متجاوزًا تركيبة project/name. يُستخدم المسار كما هو دون زيادة تلقائية، لذا تعيد عمليات التشغيل المتتالية استخدام الدليل نفسه.
pretrainedbool أو strTrueيحدّد ما إذا كان التدريب سيبدأ بأوزان مدرّبة مسبقًا. يمكن أن تكون القيمة منطقية أو سلسلة تمثل مسار الأوزان المطلوب تحميلها. تُدرّب pretrained=False انطلاقًا من أوزان مهيأة عشوائيًا مع الحفاظ على بنية النموذج.
cls_remapboolTrueعند الضبط الدقيق عبر مجموعات بيانات مختلفة، تُنسخ صفوف رأس التصنيف المدرّب مسبقًا إلى النموذج الجديد حيثما تطابقت أسماء الفئات، بحيث تحتفظ الفئات المتداخلة بالانحياز الذي تعلّمته، إلى جانب أوزانها عندما يظل عرض الرأس دون تغيير. ينطبق ذلك سواء اختلف عدد الفئات أم تطابق مع اختلاف ترتيبها.
optimizerstr'auto'اختيار محسِّن التدريب. تشمل الخيارات SGD، وMuSGD، وAdam، وAdamax، وAdamW، وNAdam، وRAdam، وRMSProp، أو auto لاختيار AdamW أو MuSGD وفقًا لعدد تكرارات التدريب. ويؤثر ذلك في سرعة التقارب واستقراره.
seedint0يعيّن البذرة العشوائية للتدريب، ما يضمن إمكانية إعادة إنتاج النتائج عبر عمليات التشغيل ذات التهيئات نفسها.
deterministicboolTrueيفرض استخدام خوارزميات حتمية، ما يضمن إمكانية إعادة إنتاج النتائج، لكن قد يؤثر في الأداء والسرعة بسبب تقييد الخوارزميات غير الحتمية.
verboseboolTrueيتيح عرضًا تفصيليًا أثناء التدريب، يشمل أشرطة التقدم والمقاييس لكل حقبة ومعلومات تدريب إضافية في وحدة التحكم.
single_clsboolFalseيعامل جميع الفئات في مجموعات البيانات متعددة الفئات على أنها فئة واحدة أثناء التدريب. وهو مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الأجسام بدلًا من تصنيفها.
classeslist[int]Noneيحدّد قائمة بمعرّفات الفئات المطلوب التدريب عليها. وهو مفيد لتصفية الفئات والتركيز على فئات بعينها أثناء التدريب.
rectboolFalseتفعّل استراتيجية الحد الأدنى من الحشو، بحيث تُحشى الصور في الدفعة بأقل قدر ممكن للوصول إلى حجم موحّد، ويكون أطول ضلع مساويًا لـ imgsz. قد يؤدي ذلك إلى تحسين الكفاءة والسرعة، لكنه قد يؤثر في دقة النموذج. يستخدم مدرّب YOLO القياسي rect=True للتحقق من مهام الكشف والتجزئة وتقدير الوضعية وOBB، بصرف النظر عن هذا الإعداد.
multi_scalefloat0.0يغيّر قيمة imgsz عشوائيًا في كل دفعة بمقدار +/- multi_scale (مثلًا: 0.25 ← من 0.75x إلى 1.25x)، مع التقريب إلى مضاعفات خطوة النموذج؛ وتعطّل 0.0 التدريب متعدد المقاييس.
cos_lrboolFalseيستخدم مجدول معدل التعلّم ذي المنحنى الجيبي، إذ يضبط معدل التعلّم وفق منحنى جيبي عبر الحقب. ويساعد على إدارة معدل التعلّم لتحقيق تقارب أفضل.
close_mosaicint10يعطّل زيادة بيانات الفسيفساء خلال آخر N حقب لتحقيق استقرار التدريب قبل انتهائه. يؤدي تعيين القيمة إلى 0 إلى تعطيل هذه الميزة.
resumeboolFalseيستأنف التدريب من آخر نقطة تحقق محفوظة. ويحمّل تلقائيًا أوزان النموذج وحالة المحسِّن وعدد الحقب لمتابعة التدريب بسلاسة.
ampbool أو strTrueيحدّد دقة التدريب: يستخدم True أو "fp16" تنسيق FP16، ويستخدم "bf16" تنسيق BF16 على أجهزة CUDA المدعومة، بينما يستخدم False أو "fp32" تنسيق FP32.
quantizeint أو strNoneعيّن القيمة إلى 8 (أو "int8") للتدريب المدرك للتكميم إلى INT8 (QAT)، الذي يجري ضبطًا دقيقًا باستخدام تكميم زائف ضمن الحلقة كي تتحمل الأوزان التصدير إلى INT8. راجع التدريب المدرك للتكميم.
fractionfloat أو int أو list1.0جزء مجموعة البيانات، محدد كنسبة أو عدد أو قائمة [train, val, test]. تعني 1 التقسيم الكامل، وتمثل الأعداد الصحيحة الأكبر من 1 أعداد الصور، ولا يقبل الإدخال الاختياري للاختبار وحده 0/0.0 بمعنى لا شيء. وتُبقي القوائم ذات العنصرين مجموعة الاختبار كاملة.
profileboolFalseيتيح قياس سرعتي ONNX وTensorRT أثناء التدريب، وهو مفيد لتحسين نشر النموذج.
freezeint أو listNoneيجمّد أول N طبقة من النموذج، أو طبقات محددة حسب الفهرس أو اسم الوحدة (23.cv2، من دون البادئة model.)، ما يقلل عدد المعلمات القابلة للتدريب. وهو مفيد للضبط الدقيق أو التعلّم بالنقل.
lr0float0.01معدل التعلّم الأولي (أي SGD=1E-2، Adam=1E-3). يُتجاهل مع الإعداد الافتراضي optimizer='auto'؛ لذا حدّد محسِّنًا صراحةً لاستخدامه.
lrffloat0.01معدل التعلّم النهائي كنسبة من المعدل الأولي = (lr0 * lrf)، ويُستخدم مع المجدولات لضبط معدل التعلّم بمرور الوقت.
momentumfloat0.937عامل الزخم في SGD أو معامل beta1 في محسّنات Adam، ويؤثر في مدى إدراج التدرجات السابقة في التحديث الحالي.
weight_decayfloat0.0005مصطلح انتظام L2، يعاقب الأوزان الكبيرة لمنع فرط التكيّف.
warmup_epochsfloat3.0عدد حقب إحماء معدل التعلّم، حيث يُزاد المعدل تدريجيًا من قيمة منخفضة إلى المعدل الأولي لتحقيق استقرار التدريب في بدايته.
warmup_momentumfloat0.8الزخم الأولي لمرحلة الإحماء، ويُعدّل تدريجيًا ليصل إلى الزخم المحدد خلال فترة الإحماء.
warmup_bias_lrfloat0.1معدل التعلّم لمعاملات الانحياز أثناء مرحلة الإحماء، ما يساعد على تحقيق استقرار تدريب النموذج في الحقب الأولى. يُضبط تلقائيًا على 0.0 مع الإعداد الافتراضي optimizer='auto'؛ لذا حدّد محسِّنًا صراحةً لاستخدامه.
distill_modelstrNoneمسار نقطة تحقق نموذج المعلّم (مثل yolo26x.pt) لتقطير المعرفة. عند تعيينه، يُدرّب نموذج الطالب باستخدام خسارة تقطير إضافية يوجّهها نموذج المعلّم المجمّد.
disfloat6.0وزن خسارة التقطير المضافة إلى خسائر الكشف القياسية. تزيد القيم الأعلى من تأثير توجيه خصائص نموذج المعلّم.
boxfloat7.5وزن مكوّن خسارة الصندوق في دالة الخسارة، ويؤثر في مقدار التركيز على التنبؤ الدقيق بإحداثيات الصندوق المحيط.
clsfloat0.5وزن خسارة التصنيف في دالة الخسارة الكلية، ويؤثر في أهمية التنبؤ الصحيح بالفئة مقارنةً بالمكونات الأخرى.
cls_pwfloat0.0قوة ترجيح الفئات لمعالجة اختلال توازن الفئات باستخدام معكوس تكرار الفئة. تعطّل 0.0 ترجيح الفئات، بينما تطبّق 1.0 الترجيح الكامل بمعكوس التكرار. وتوفّر القيم بين 0 و1 ترجيحًا جزئيًا.
dflfloat1.5وزن حد انحدار مسافة الصندوق: خسارة البؤرة التوزيعية (DFL) عندما يستخدم رأس الكشف reg_max > 1، وخسارة L1 لمسافات الصندوق المطبّعة في YOLO26 الخالي من DFL (reg_max: 1).
posefloat12.0وزن خسارة الوضعية في النماذج المدرّبة لتقدير الوضعيات، ويؤثر في التركيز على التنبؤ الدقيق بالنقاط المفتاحية للوضعية.
kobjfloat1.0وزن خسارة احتمالية وجود الكائن عند النقطة المفتاحية في نماذج تقدير الوضعيات، لتحقيق توازن بين ثقة الكشف ودقة الوضعية.
rlefloat1.0وزن خسارة تقدير الاحتمالية اللوغاريتمية المتبقية في نماذج تقدير الوضعيات، ويؤثر في دقة تحديد مواقع النقاط المفتاحية.
anglefloat1.0وزن خسارة الزاوية في نماذج OBB، ويؤثر في دقة التنبؤ بزوايا الصناديق المحيطة الموجّهة.
dlogfloat1.0وزن خسارة اللوغاريتمية الثابتة للمقياس (SILog) في نماذج تقدير العمق، وهي الحد الأساسي المحرّك لدقة العمق.
dgradfloat0.5وزن خسارة التدرّج في نماذج تقدير العمق، وتعاقب الأخطاء عند حواف العمق وتشجّع على حدود أسطح أكثر وضوحًا.
dlamfloat1.0عامل التركيز على التباين في خسارة SILog بنماذج تقدير العمق. تجعل 1.0 الخسارة ثابتة المقياس بالكامل، بينما تقلّصها 0.0 إلى RMSE لوغاريتمي عادي.
nbsint64حجم الدفعة الاسمي لتطبيع الخسارة.
overlap_maskboolTrueيحدّد ما إذا كان ينبغي دمج أقنعة الأجسام في قناع واحد للتدريب، أم إبقاء قناع منفصل لكل جسم. عند التداخل، يوضع القناع الأصغر فوق الأكبر أثناء الدمج.
mask_ratioint4نسبة خفض دقة أقنعة التجزئة، وتؤثر في دقة الأقنعة المستخدمة أثناء التدريب. ولا تغيّر دقة الأقنعة المتنبأ بها.
dropoutfloat0.0معدل الإسقاط للتنظيم في مهام التصنيف، ويمنع فرط التكيّف بإسقاط الوحدات عشوائيًا أثناء التدريب.
valboolTrueيتيح التحقق أثناء التدريب، ما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة.
nmsbool، اختياريNoneيختار رأس الاستدلال المستخدم للتحقق في كل حقبة واختيار نقاط التحقق والإيقاف المبكر. يستخدم None أو True أسلوب واحد إلى متعدد مع NMS؛ أما False فيستخدم الرأس الخالي من NMS عند توفره. ويحتفظ كلا الرأسين بخسائر التدريب.
plotsboolTrueينشئ مخططات مقاييس التدريب والتحقق وأمثلة التنبؤ ويحفظها، ما يوفّر رؤى مرئية حول أداء النموذج وتقدمه في التعلّم.
compilebool أو strFalseيتيح تجميع رسوم torch.compile في PyTorch 2.x باستخدام backend='inductor'. يقبل True → "default"، أو False لتعطيله، أو وضعًا نصيًا مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". ويعود إلى التنفيذ الفوري مع تحذير إذا لم يكن مدعومًا.
channels_lastboolNoneيستخدم تنسيق الذاكرة channels_last (NHWC) للالتفافات أثناء التدريب. تفعّله None تلقائيًا على CUDA مع PyTorch 1.11 أو أحدث، باستثناء Windows، حيث أظهرت القياسات أنه أبطأ. وتعطّله False، بينما تطلبه True صراحةً. ويظل التدريب على CPU أو MPS دائمًا بتنسيق NCHW (يُتجاهل True مع إظهار تحذير).
max_detint300الحد الأقصى لعدد عمليات الكشف لكل صورة أثناء التحقق من التدريب. بالنسبة إلى الكشف والتجزئة والوضعيات و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_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يضبط درجة تدرج اللون في الصورة بجزء من عجلة الألوان، ما يضيف تنوعًا لونيًا. ويساعد النموذج على التعميم في ظروف الإضاءة المختلفة. بالنسبة إلى classify، لا ينطبق هذا إلا عند auto_augment=None.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يغيّر تشبع الصورة بمقدار كسري، ما يؤثر في شدة الألوان. ويفيد في محاكاة الظروف البيئية المختلفة. بالنسبة إلى classify، لا ينطبق هذا إلا عند auto_augment=None.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يعدّل قيمة الصورة (السطوع) بمقدار كسري، ما يساعد النموذج على الأداء الجيد في ظروف الإضاءة المتنوعة. بالنسبة إلى classify، لا ينطبق هذا إلا عند auto_augment=None.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180يدير الصورة عشوائيًا ضمن نطاق الدرجات المحدد، ما يحسّن قدرة النموذج على التعرّف على الأجسام بمختلف اتجاهاتها.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0ينقل الصورة أفقيًا ورأسيًا بجزء من حجمها، ما يساعد النموذج على تعلم اكتشاف الأجسام الظاهرة جزئيًا.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1، أو صف (min, max) صريح (ليس لـ classify).يغيّر حجم الصورة بعامل تكبير، لمحاكاة وجود الأجسام على مسافات مختلفة من الكاميرا.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180يقص الصورة بالدرجة المحددة، لمحاكاة تأثير رؤية الأجسام من زوايا مختلفة.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001يطبّق تحويل منظور عشوائيًا على الصورة، ما يعزز قدرة النموذج على فهم الأجسام في فضاء ثلاثي الأبعاد.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يقلب الصورة رأسًا على عقب بالاحتمال المحدد، ما يزيد تنوع البيانات دون التأثير في خصائص الجسم.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يقلب الصورة من اليسار إلى اليمين بالاحتمال المحدد، ما يفيد في تعلم الأجسام المتماثلة وزيادة تنوع مجموعة البيانات.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0يقلب قنوات الصورة من RGB إلى BGR بالاحتمال المحدد، ما يفيد في زيادة المتانة تجاه الترتيب غير الصحيح للقنوات.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0يدمج أربع صور تدريب في صورة واحدة، لمحاكاة تراكيب المشاهد المختلفة والتفاعلات بين الأجسام. وهو فعال جدًا في فهم المشاهد المعقدة.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0يمزج صورتين وتسميتيهما لإنشاء صورة مركّبة. ويعزز قدرة النموذج على التعميم عبر إدخال ضوضاء على التسميات وتنوع بصري.
cutmixfloat0detect, segment, semantic, pose, obb0.0 - 1.0يدمج أجزاءً من صورتين، منشئًا مزجًا جزئيًا مع الحفاظ على مناطق متميزة. ويعزز متانة النموذج عبر إنشاء حالات حجب.
copy_pastefloat0segment, semantic, obb0.0 - 1.0نسبة الأجسام المؤهلة التي تُلصق؛ يعكسها flip داخل الصورة، بينما يستخدم mixup القيمة أيضًا احتمالًا للتطبيق عبر الصور.
copy_paste_modestrflipsegment, semantic, obb-يحدد استراتيجية copy-paste المراد استخدامها. تشمل الخيارات 'flip' و'mixup'.
auto_augmentstrrandaugmentclassify-يطبّق سياسة زيادة بيانات محددة مسبقًا ('randaugment' أو 'autoaugment' أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري.
erasingfloat0.4classify0.0 - 1.0يمحو مناطق من الصورة عشوائيًا أثناء التدريب، لتشجيع النموذج على التركيز على السمات الأقل وضوحًا.
augmentationslistNonedetect, 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 واحد وCPU
    from 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' جهازًا للتدريب.

    مثال على التدريب باستخدام MPS
    from 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يتيح حفظ نقاط تحقق التدريب وأوزان النموذج النهائية.

    للاطلاع على دليل مفصل حول إعدادات التدريب، راجع قسم إعدادات التدريب.

التعليقات