تخطي إلى المحتوى

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

النظام البيئي Ultralytics YOLO وعمليات التكامل

مقدمة

يتضمن تدريب نموذج التعلم العميق تغذيته بالبيانات وضبط معاملاته بحيث يمكنه تقديم تنبؤات دقيقة. تم تصميم وضع التدريب في Ultralytics YOLO11 للتدريب الفعال والناجع لنماذج الكشف عن الأجسام، والاستفادة الكاملة من قدرات الأجهزة الحديثة. يهدف هذا الدليل إلى تغطية جميع التفاصيل التي تحتاجها للبدء في تدريب النماذج الخاصة بك باستخدام مجموعة الميزات القوية في YOLO11.



شاهد: كيفية تدريب نموذج YOLO على مجموعة البيانات المخصصة الخاصة بك في Google Colab.

لماذا تختار Ultralytics YOLO للتدريب؟

فيما يلي بعض الأسباب المقنعة لاختيار وضع التدريب في YOLO11:

  • الكفاءة: حقق أقصى استفادة من جهازك، سواء كنت تستخدم إعداد وحدة معالجة رسومات واحدة (GPU) أو تتوسع عبر وحدات معالجة رسومات متعددة.
  • التنوع: التدريب على مجموعات بيانات مخصصة بالإضافة إلى المجموعات المتاحة بسهولة مثل COCO و VOC و ImageNet.
  • سهولة الاستخدام: واجهات بسيطة لكنها قوية للـ CLI و python لتجربة تدريب مباشرة.
  • مرونة المعلمات الفائقة: مجموعة واسعة من المعلمات الفائقة القابلة للتخصيص لضبط أداء النموذج.

الميزات الرئيسية لوضع التدريب

فيما يلي بعض الميزات البارزة لوضع التدريب في YOLO11:

  • تنزيل تلقائي لمجموعة البيانات: يتم تنزيل مجموعات البيانات القياسية مثل COCO و VOC و ImageNet تلقائيًا عند الاستخدام الأول.
  • دعم وحدات معالجة الرسوميات المتعددة: قم بتوسيع نطاق جهود التدريب الخاصة بك بسلاسة عبر وحدات معالجة الرسوميات المتعددة لتسريع العملية.
  • تكوين المعلمات الفائقة: خيار تعديل المعلمات الفائقة من خلال ملفات تكوين YAML أو وسيطات CLI.
  • التصور والمراقبة: تتبع في الوقت الفعلي لمقاييس التدريب وتصور عملية التعلم للحصول على رؤى أفضل.

نصيحة

  • يتم تنزيل مجموعات بيانات YOLO11 مثل COCO و VOC و ImageNet وغيرها الكثير تلقائيًا عند الاستخدام الأول، أي. yolo train data=coco.yaml

أمثلة الاستخدام

تدريب YOLO11n على مجموعة بيانات COCO8 لـ 100 حقبة بحجم صورة 640. يمكن تحديد جهاز التدريب باستخدام الوسيطة device . إذا لم يتم تمرير أي وسيطة، فسيتم استخدام GPU device=0 إذا كان متاحًا، وإلا device='cpu' سيتم استخدام CPU. راجع قسم الوسائط أدناه للحصول على قائمة كاملة بوسائط التدريب.

خطأ تعدد العمليات في نظام التشغيل Windows

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

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

يتم تحديد الجهاز تلقائيًا. إذا كانت وحدة معالجة الرسومات (GPU) متاحة، فسيتم استخدامها (جهاز CUDA الافتراضي 0)، وإلا سيبدأ التدريب على وحدة المعالجة المركزية (CPU).

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.yaml")  # build a new model from YAML
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n.yaml").load("yolo11n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

التدريب متعدد وحدات معالجة الرسومات (GPU)

يتيح التدريب باستخدام وحدات معالجة رسومات متعددة الاستخدام الأكثر كفاءة لموارد الأجهزة المتاحة عن طريق توزيع حمل التدريب عبر وحدات معالجة رسومات متعددة. هذه الميزة متاحة من خلال واجهة python API وسطح الأوامر. لتمكين التدريب متعدد وحدات معالجة الرسومات، حدد معرفات أجهزة GPU التي ترغب في استخدامها.

مثال على التدريب باستخدام وحدات معالجة رسومات متعددة

للتدريب باستخدام وحدتي معالجة رسومات، CUDA الجهازين 0 و 1، استخدم الأوامر التالية. قم بالتوسيع ليشمل وحدات معالجة رسومات إضافية حسب الحاجة.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=0,1

# Use the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1

تدريب GPU في وضع الخمول

يمكّن تدريب GPU في وضع الخمول الاختيار التلقائي لوحدات معالجة الرسومات الأقل استخدامًا في الأنظمة متعددة وحدات معالجة الرسومات، مما يحسن استخدام الموارد دون تحديد GPU يدويًا. تحدد هذه الميزة وحدات معالجة الرسومات المتاحة بناءً على مقاييس الاستخدام وتوافر VRAM.

مثال على تدريب GPU في وضع الخمول

لتحديد واستخدام وحدات معالجة الرسوميات (GPU) الأكثر خمولًا للتدريب تلقائيًا، استخدم -1 معامل الجهاز. هذا مفيد بشكل خاص في بيئات الحوسبة المشتركة أو الخوادم التي بها العديد من المستخدمين.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
# Start training using the single most idle GPU
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1

# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1

تعطي خوارزمية الاختيار التلقائي الأولوية لوحدات معالجة الرسومات (GPUs) التي:

  1. نسب استخدام حالية أقل
  2. ذاكرة متاحة أعلى (VRAM مجانية)
  3. انخفاض درجة الحرارة واستهلاك الطاقة

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

التدريب على Apple Silicon MPS

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

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

مثال على التدريب باستخدام MPS

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
# Start training from a pretrained *.pt model using MPS
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

مع الاستفادة من القوة الحسابية لشرائح Apple silicon، فإن هذا يتيح معالجة أكثر كفاءة لمهام التدريب. للحصول على إرشادات أكثر تفصيلاً وخيارات التكوين المتقدمة، يرجى الرجوع إلى وثائق PyTorch MPS.

استئناف التدريبات المتوقفة

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

عند استئناف التدريب، يقوم Ultralytics YOLO بتحميل الأوزان من النموذج الذي تم حفظه مؤخرًا، كما يستعيد حالة المُحسِّن، وجدول معدل التعلم، ورقم الحقبة. يتيح لك ذلك متابعة عملية التدريب بسلاسة من حيث توقفت.

يمكنك بسهولة استئناف التدريب في Ultralytics YOLO عن طريق تعيين الوسيطة resume إلى True عند استدعاء الدالة train وتحديد المسار إلى ملف .pt الذي يحتوي على أوزان النموذج المدرب جزئيًا.

فيما يلي مثال لكيفية استئناف التدريب المتقطع باستخدام python وعبر سطر الأوامر:

مثال على استئناف التدريب

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)
# Resume an interrupted training
yolo train resume model=path/to/last.pt

عن طريق تعيين resume=True، ستستمر دالة train في التدريب من حيث توقفت، باستخدام الحالة المخزنة في الملف 'path/to/last.pt'. إذا كان resume تم حذف الوسيطة أو تعيينها إلى False، ستستمر دالة train ستبدأ الدالة دورة تدريب جديدة.

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

إعدادات التدريب

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

الوسيطةالنوعافتراضيالوصف
modelstrNoneيحدد ملف النموذج للتدريب. يقبل مسارًا إما إلى .pt نموذج مُدرَّب مسبقًا أو إلى .yaml ملف تكوين. ضروري لتحديد بنية النموذج أو تهيئة الأوزان.
datastrNoneمسار إلى ملف تكوين مجموعة البيانات (مثل, coco8.yaml). يحتوي هذا الملف على معلمات خاصة بمجموعة البيانات، بما في ذلك مسارات إلى التدريب و بيانات التحققوأسماء الفئات وعدد الفئات.
epochsint100العدد الإجمالي لحقب التدريب. تمثل كل حقبة تمريرة كاملة على مجموعة البيانات بأكملها. يمكن أن يؤثر تعديل هذه القيمة على مدة التدريب وأداء النموذج.
timefloatNoneالحد الأقصى لوقت التدريب بالساعات. إذا تم تعيينه، فإنه يتجاوز epochs مما يسمح بإيقاف التدريب تلقائيًا بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة بالوقت.
patienceint100عدد الحقب التي يجب الانتظار خلالها دون تحسن في مقاييس التحقق قبل الإيقاف المبكر للتدريب. يساعد على منع التحميل الزائد عن طريق إيقاف التدريب عندما يستقر الأداء.
batchint أو float16حجم الدفعة، مع ثلاثة أوضاع: يتم تعيينه كعدد صحيح (مثل, batch=16)، الوضع التلقائي لاستخدام ذاكرة GPU بنسبة 60٪ (batch=-1)، أو الوضع التلقائي مع تحديد جزء الاستخدام (batch=0.70).
imgszint640حجم الصورة المستهدف للتدريب. يتم تغيير حجم الصور إلى مربعات بأضلاع تساوي القيمة المحددة (إذا rect=False)، مع الحفاظ على نسبة العرض إلى الارتفاع لنماذج YOLO وليس RT-DETR. يؤثر على النموذج الدقة والتعقيد الحسابي.
saveboolTrueيتيح حفظ نقاط التحقق من التدريب وأوزان النموذج النهائية. مفيد لاستئناف التدريب أو نشر النموذج.
save_periodint-1تكرار حفظ نقاط التحقق من النموذج، المحدد بالحقبة. القيمة -1 تعطل هذه الميزة. مفيد لحفظ النماذج المؤقتة أثناء جلسات التدريب الطويلة.
cacheboolFalseيتيح تخزين صور مجموعة البيانات مؤقتًا في الذاكرة (True/ram)، على القرص (disk)، أو تعطيله (False). يحسن سرعة التدريب عن طريق تقليل عمليات الإدخال/الإخراج على القرص على حساب زيادة استخدام الذاكرة.
deviceint أو str أو listNoneيحدد الجهاز (الأجهزة) الحسابية للتدريب: وحدة معالجة رسومات واحدة (GPU) (device=0)، وحدات معالجة رسومات متعددة (GPU) (device=[0,1])، وحدة معالجة مركزية (CPU) (device=cpu)، MPS لـ Apple silicon (device=mps)، أو الاختيار التلقائي لوحدة معالجة الرسومات (GPU) الأكثر خمولاً (device=-1) أو وحدات معالجة الرسومات (GPU) المتعددة غير المستخدمة (device=[-1,-1])
workersint8عدد سلاسل العمل لتحميل البيانات (لكل RANK إذا كان التدريب متعدد وحدات معالجة الرسوميات). يؤثر على سرعة معالجة البيانات الأولية وتغذيتها في النموذج، وهو مفيد بشكل خاص في إعدادات وحدات معالجة الرسوميات المتعددة.
projectstrNoneاسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بتخزين منظم للتجارب المختلفة.
namestrNoneاسم تشغيل التدريب. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التدريب.
exist_okboolFalseإذا كانت القيمة True، يسمح بالكتابة فوق دليل مشروع/اسم موجود. مفيد للتجريب التكراري دون الحاجة إلى مسح المخرجات السابقة يدويًا.
pretrainedbool أو strTrueيحدد ما إذا كان سيتم بدء التدريب من نموذج مُدرَّب مسبقًا. يمكن أن تكون قيمة منطقية أو مسار سلسلة إلى نموذج معين لتحميل الأوزان منه. يعزز كفاءة التدريب وأداء النموذج.
optimizerstr'auto'اختيار المحسن للتدريب. تشمل الخيارات SGD, Adam, AdamW, NAdam, RAdam, RMSProp إلخ، أو auto للاختيار التلقائي بناءً على تكوين النموذج. يؤثر على سرعة واستقرار التقارب.
seedint0يحدد البذرة العشوائية للتدريب، مما يضمن إمكانية تكرار النتائج عبر عمليات التشغيل بنفس التكوينات.
deterministicboolTrueيفرض استخدام الخوارزمية الحتمية، مما يضمن إمكانية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب القيود المفروضة على الخوارزميات غير الحتمية.
single_clsboolFalseيعامل جميع الفئات في مجموعات البيانات متعددة الفئات كفئة واحدة أثناء التدريب. مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الكائن بدلاً من التصنيف.
classeslist[int]Noneيحدد قائمة بمعرفات الفئات المراد التدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التدريب.
rectboolFalseتمكين الحد الأدنى لاستراتيجية الحشو - يتم حشو الصور في دفعة بشكل ضئيل للوصول إلى حجم مشترك، مع كون الجانب الأطول مساويًا لـ imgsz. يمكن أن يحسن الكفاءة والسرعة ولكنه قد يؤثر على دقة النموذج.
multi_scaleboolFalseتمكين التدريب متعدد المقاييس عن طريق الزيادة/النقصان imgsz بنسبة تصل إلى عامل 0.5 أثناء التدريب. يدرب النموذج ليكون أكثر دقة مع imgsz أثناء الاستدلال.
cos_lrboolFalseيستخدم جدولة معدل التعلم لجيب التمام، وضبط معدل التعلم باتباع منحنى جيب التمام عبر الحقب. يساعد في إدارة معدل التعلم لتحسين التقارب.
close_mosaicint10يعطل زيادة البيانات الفسيفسائية في آخر N حقبة لتثبيت التدريب قبل الانتهاء. يؤدي التعيين إلى 0 إلى تعطيل هذه الميزة.
resumeboolFalseيستأنف التدريب من آخر نقطة تفتيش محفوظة. يقوم تلقائيًا بتحميل أوزان النموذج وحالة المُحسِّن وعدد الحقب، ومتابعة التدريب بسلاسة.
ampboolTrueيتيح التدريب التلقائي بالدقة المختلطة (AMP)، مما يقلل من استخدام الذاكرة وربما يسرع التدريب مع الحد الأدنى من التأثير على الدقة.
fractionfloat1.0يحدد جزء مجموعة البيانات المراد استخدامه للتدريب. يسمح بالتدريب على مجموعة فرعية من مجموعة البيانات الكاملة، وهو مفيد للتجارب أو عندما تكون الموارد محدودة.
profileboolFalseيتيح تحديد سرعات ONNX و TensorRT أثناء التدريب، وهو أمر مفيد لتحسين نشر النموذج.
freezeint أو listNoneيقوم بتجميد أول N طبقة من النموذج أو طبقات محددة بواسطة الفهرس، مما يقلل من عدد المعلمات القابلة للتدريب. مفيد للضبط الدقيق أو التعلم بالنقل.
lr0float0.01معدل التعلم الأولي (على سبيل المثال SGD=1E-2, Adam=1E-3). يعد تعديل هذه القيمة أمرًا بالغ الأهمية لعملية التحسين، مما يؤثر على مدى سرعة تحديث أوزان النموذج.
lrffloat0.01معدل التعلم النهائي كجزء من المعدل الأولي =lr0 * lrf)، ويستخدم بالاشتراك مع المجدولات لضبط معدل التعلم بمرور الوقت.
momentumfloat0.937عامل الزخم لـ SGD أو beta1 لـ محسنات Adam، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي.
weight_decayfloat0.0005مصطلح تسوية L2، لمعاقبة الأوزان الكبيرة لمنع التجاوز.
warmup_epochsfloat3.0عدد الحقب لتهيئة معدل التعلم، وزيادة معدل التعلم تدريجيًا من قيمة منخفضة إلى معدل التعلم الأولي لتحقيق الاستقرار في التدريب في وقت مبكر.
warmup_momentumfloat0.8الزخم الأولي لمرحلة الإحماء، والتعديل التدريجي للزخم المحدد خلال فترة الإحماء.
warmup_bias_lrfloat0.1معدل التعلم لمعلمات التحيز خلال مرحلة الإحماء، مما يساعد على استقرار تدريب النموذج في الحقب الأولية.
boxfloat7.5وزن مكون خسارة الصندوق في دالة الخسارة، مما يؤثر على مقدار التركيز الذي يتم وضعه على التنبؤ بدقة بإحداثيات المربع المحيط.
clsfloat0.5وزن خسارة التصنيف في دالة الخسارة الكلية، مما يؤثر على أهمية التنبؤ الصحيح بالفئة بالنسبة إلى المكونات الأخرى.
dflfloat1.5وزن خسارة التوزيع البؤري، المستخدم في إصدارات YOLO معينة للتصنيف الدقيق.
posefloat12.0وزن خسارة الوضعية في النماذج المدربة على تقدير الوضعية، مما يؤثر على التأكيد على التنبؤ الدقيق بالنقاط الرئيسية للوضعية.
kobjfloat2.0وزن خسارة موضوعية النقاط الرئيسية في نماذج تقدير الوضعية، وموازنة الثقة في الكشف مع دقة الوضعية.
nbsint64حجم الدفعة الاسمية لتطبيع الخسارة.
overlap_maskboolTrueيحدد ما إذا كان يجب دمج أقنعة الكائنات في قناع واحد للتدريب، أو الاحتفاظ بها منفصلة لكل كائن. في حالة التداخل، يتم وضع القناع الأصغر فوق القناع الأكبر أثناء الدمج.
mask_ratioint4نسبة أخذ العينات السفلية لأقنعة التجزئة، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب.
dropoutfloat0.0معدل التسرب للتسوية في مهام التصنيف، ومنع التجاوز عن طريق حذف الوحدات عشوائيًا أثناء التدريب.
valboolTrueيتيح التحقق من الصحة أثناء التدريب، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة.
plotsboolFalseيقوم بإنشاء وحفظ مخططات لمقاييس التدريب والتحقق من الصحة، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم.
compilebool أو strFalseتمكين PyTorch 2.x torch.compile تجميع الرسم البياني مع backend='inductor'. يقبل True"default", False → تعطيل أو وضع سلسلة مثل "default", "reduce-overhead", "max-autotune-no-cudagraphs". يعود إلى التلهف مع تحذير إذا كان غير مدعوم.

ملاحظة حول إعدادات حجم الدفعة

في batch يمكن تهيئة وسيطة في ثلاث طرق:

  • حجم الدفعة الثابت: قم بتعيين قيمة عدد صحيح (على سبيل المثال، batch=16)، مع تحديد عدد الصور لكل دفعة مباشرةً.
  • الوضع التلقائي (ذاكرة GPU بنسبة 60٪): استخدم batch=-1 لضبط حجم الدفعة تلقائيًا بما يتناسب مع استخدام ذاكرة CUDA بنسبة 60٪ تقريبًا.
  • الوضع التلقائي مع جزء الاستخدام: قم بتعيين قيمة كسرية (على سبيل المثال، batch=0.70) لضبط حجم الدفعة بناءً على الجزء المحدد من استخدام ذاكرة GPU.

إعدادات الزيادة الفعالة والبارامترات الفائقة

تعتبر تقنيات الزيادة ضرورية لتحسين قوة وأداء نماذج YOLO من خلال إدخال تغييرات على بيانات التدريب، مما يساعد النموذج على التعميم بشكل أفضل على البيانات غير المرئية. يوضح الجدول التالي الغرض من كل وسيطة زيادة وتأثيرها:

الوسيطةالنوعافتراضيالمهام المدعومةالنطاقالوصف
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0يضبط لون الصورة بجزء من عجلة الألوان، مما يدخل تباينًا في الألوان. يساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0يغير تشبع الصورة بجزء، مما يؤثر على كثافة الألوان. مفيد لمحاكاة الظروف البيئية المختلفة.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0يعدل قيمة (سطوع) الصورة بجزء، مما يساعد النموذج على الأداء الجيد في ظل ظروف الإضاءة المختلفة.
degreesfloat0.0detect, segment, pose, obb0.0 - 180يدور الصورة عشوائيًا ضمن نطاق الدرجات المحدد، مما يحسن قدرة النموذج على التعرف على الكائنات في اتجاهات مختلفة.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0ينقل الصورة أفقيًا وعموديًا بجزء من حجم الصورة، مما يساعد في تعلم اكتشاف الكائنات المرئية جزئيًا.
scalefloat0.5detect, segment, pose, obb, classify>=0.0يقوم بتوسيع الصورة بمعامل كسب، مما يحاكي الكائنات على مسافات مختلفة من الكاميرا.
shearfloat0.0detect, segment, pose, obb-180 - +180يقص الصورة بدرجة محددة، مما يحاكي تأثير رؤية الكائنات من زوايا مختلفة.
perspectivefloat0.0detect, segment, pose, obb0.0 - 0.001يطبق تحويلًا منظوريًا عشوائيًا على الصورة، مما يعزز قدرة النموذج على فهم الكائنات في الفضاء ثلاثي الأبعاد.
flipudfloat0.0detect, segment, pose, obb, classify0.0 - 1.0يقلب الصورة رأسًا على عقب بالاحتمالية المحددة، مما يزيد من تباين البيانات دون التأثير على خصائص الكائن.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0يقلب الصورة من اليسار إلى اليمين بالاحتمالية المحددة، وهو أمر مفيد لتعلم الكائنات المتماثلة وزيادة تنوع مجموعة البيانات.
bgrfloat0.0detect, segment, pose, obb0.0 - 1.0يقلب قنوات الصورة من RGB إلى BGR بالاحتمالية المحددة، وهو أمر مفيد لزيادة القوة في مواجهة ترتيب القنوات غير الصحيح.
mosaicfloat1.0detect, segment, pose, obb0.0 - 1.0يدمج أربع صور تدريبية في صورة واحدة، مما يحاكي تركيبات المشاهد المختلفة وتفاعلات الكائنات. فعال للغاية لفهم المشهد المعقد.
mixupfloat0.0detect, segment, pose, obb0.0 - 1.0يمزج صورتين وتسمياتهما، مما يخلق صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضوضاء التسمية والتباين البصري.
cutmixfloat0.0detect, segment, pose, obb0.0 - 1.0يجمع أجزاء من صورتين، مما يخلق مزيجًا جزئيًا مع الحفاظ على مناطق متميزة. يعزز قوة النموذج عن طريق إنشاء سيناريوهات انسداد.
copy_pastefloat0.0segment0.0 - 1.0نسخ الكائنات ولصقها عبر الصور لزيادة مثيلات الكائنات.
copy_paste_modestrflipsegment-يحدد copy-paste الإستراتيجية المراد استخدامها. تتضمن الخيارات 'flip' و 'mixup'.
auto_augmentstrrandaugmentclassify-يطبق سياسة زيادة محددة مسبقًا ('randaugment', 'autoaugment'، أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري.
erasingfloat0.4classify0.0 - 0.9يمحو مناطق من الصورة عشوائيًا أثناء التدريب لتشجيع النموذج على التركيز على الميزات الأقل وضوحًا.
augmentationslist{{ augmentations }}detect, segment, pose, obb-تحويلات Albumentations مخصصة لزيادة البيانات المتقدمةPython واجهة برمجة تطبيقاتPython فقط). يقبل قائمة من كائنات التحويل لاحتياجات التعزيز المتخصصة.

يمكن تعديل هذه الإعدادات لتلبية المتطلبات المحددة لمجموعة البيانات والمهمة قيد التنفيذ. يمكن أن يساعد التجريب بقيم مختلفة في العثور على استراتيجية التوسيع المثالية التي تؤدي إلى أفضل أداء للنموذج.

معلومات

لمزيد من المعلومات حول عمليات زيادة التدريب، راجع قسم المرجع.

تسجيل البيانات

في تدريب نموذج YOLO11، قد تجد أنه من القيّم تتبع أداء النموذج بمرور الوقت. هذا هو المكان الذي يلعب فيه التسجيل دورًا. توفر Ultralytics YOLO دعمًا لثلاثة أنواع من المسجلات - Comet و ClearML و TensorBoard.

لاستخدام مسجل، حدده من القائمة المنسدلة في مقتطف الشفرة أعلاه وقم بتشغيله. سيتم تثبيت المسجل المحدد وتهيئته.

Comet

Comet عبارة عن منصة تتيح لعلماء البيانات والمطورين تتبع التجارب والنماذج ومقارنتها وشرحها وتحسينها. يوفر وظائف مثل المقاييس في الوقت الفعلي وفروق التعليمات البرمجية وتتبع المعلمات الفائقة.

لاستخدام Comet:

مثال

# pip install comet_ml
import comet_ml

comet_ml.init()

تذكر تسجيل الدخول إلى حساب 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 محليًا، قم بتشغيل الأمر أدناه وعرض النتائج على http://localhost:6006/.

مثال

tensorboard --logdir ultralytics/runs # replace with 'runs' directory

سيؤدي هذا إلى تحميل TensorBoard وتوجيهه إلى الدليل الذي تم فيه حفظ سجلات التدريب الخاصة بك.

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

الأسئلة الشائعة

كيف يمكنني تدريب نموذج اكتشاف الكائنات باستخدام Ultralytics YOLO11؟

لتدريب نموذج اكتشاف الكائنات باستخدام Ultralytics YOLO11، يمكنك إما استخدام Python API أو CLI. يوجد أدناه مثال لكليهما:

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

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

لمزيد من التفاصيل، راجع قسم إعدادات التدريب.

ما هي الميزات الرئيسية لوضع التدريب في Ultralytics YOLO11؟

تشمل الميزات الرئيسية لوضع التدريب في Ultralytics YOLO11 ما يلي:

  • تنزيل مجموعة البيانات تلقائيًا: يقوم تلقائيًا بتنزيل مجموعات البيانات القياسية مثل COCO و VOC و ImageNet.
  • دعم وحدات معالجة الرسومات المتعددة: قم بتوسيع نطاق التدريب عبر وحدات معالجة الرسومات المتعددة لمعالجة أسرع.
  • تكوين المعلمات الفائقة: تخصيص المعلمات الفائقة من خلال ملفات YAML أو وسيطات CLI.
  • التصور والمراقبة: تتبع مقاييس التدريب في الوقت الفعلي للحصول على رؤى أفضل.

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

كيف يمكنني استئناف التدريب من جلسة متوقفة في Ultralytics YOLO11؟

لاستئناف التدريب من جلسة متوقفة، قم بتعيين resume إلى True وحدد المسار إلى آخر نقطة تفتيش محفوظة.

مثال على استئناف التدريب

from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)
yolo train resume model=path/to/last.pt

تحقق من القسم الخاص بـ استئناف التدريبات المتوقفة لمزيد من المعلومات.

هل يمكنني تدريب نماذج YOLO11 على شرائح Apple silicon؟

نعم، يدعم Ultralytics YOLO11 التدريب على رقائق Apple silicon باستخدام إطار عمل Metal Performance Shaders ‏(MPS). حدد 'mps' كجهاز التدريب الخاص بك.

مثال على التدريب باستخدام MPS

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

لمزيد من التفاصيل، راجع قسم التدريب على Apple Silicon MPS.

ما هي إعدادات التدريب الشائعة، وكيف يمكنني تكوينها؟

يتيح لك Ultralytics YOLO11 تكوين مجموعة متنوعة من إعدادات التدريب مثل حجم الدفعة ومعدل التعلم والحقب والمزيد من خلال الوسائط. إليك نظرة عامة موجزة:

الوسيطةافتراضيالوصف
modelNoneمسار ملف النموذج للتدريب.
dataNoneمسار إلى ملف تكوين مجموعة البيانات (مثل, coco8.yaml).
epochs100العدد الإجمالي لحقب التدريب.
batch16حجم الدفعة، قابل للتعديل كعدد صحيح أو وضع تلقائي.
imgsz640حجم الصورة المستهدف للتدريب.
deviceNoneجهاز (أجهزة) الحوسبة للتدريب مثل cpu, 0, 0,1، أو mps.
saveTrueتمكين حفظ نقاط تفتيش التدريب وأوزان النموذج النهائية.

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



📅 تم إنشاؤها منذ 2 سنوات مضت ✏️ تم التحديث منذ 3 أيام
glenn-jocherLaughing-qUltralyticsAssistantMatthewNoyceY-T-GJairajJanglejk4eRizwanMunawardependabotfcakyonBurhan-Q

تعليقات