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

تدريب النماذج باستخدام 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("yolov8n.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=yolov8n.pt epochs=100 imgsz=640 device=-1

# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolov8n.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 مختلف المعلمات الفائقة والتكوينات المستخدمة أثناء عملية التدريب. تؤثر هذه الإعدادات على أداء النموذج وسرعته و دقته. تتضمن إعدادات التدريب الرئيسية حجم الدفعة ومعدل التعلم والزخم وتضاؤل الوزن. بالإضافة إلى ذلك، يمكن أن يؤثر اختيار المحسن و دالة الخسارة وتكوين مجموعة بيانات التدريب على عملية التدريب. يعد الضبط الدقيق والتجريب بهذه الإعدادات أمرًا بالغ الأهمية لتحسين الأداء.

الوسيطة النوع افتراضي الوصف
model str None يحدد ملف النموذج للتدريب. يقبل مسارًا إما إلى .pt نموذج مُدرَّب مسبقًا أو إلى .yaml ملف تكوين. ضروري لتحديد بنية النموذج أو تهيئة الأوزان.
data str None مسار إلى ملف تكوين مجموعة البيانات (مثل, coco8.yaml). يحتوي هذا الملف على معلمات خاصة بمجموعة البيانات، بما في ذلك مسارات إلى التدريب و بيانات التحققوأسماء الفئات وعدد الفئات.
epochs int 100 العدد الإجمالي لحقب التدريب. تمثل كل حقبة تمريرة كاملة على مجموعة البيانات بأكملها. يمكن أن يؤثر تعديل هذه القيمة على مدة التدريب وأداء النموذج.
time float None الحد الأقصى لوقت التدريب بالساعات. إذا تم تعيينه، فإنه يتجاوز epochs مما يسمح بإيقاف التدريب تلقائيًا بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة بالوقت.
patience int 100 عدد الحقب التي يجب الانتظار خلالها دون تحسن في مقاييس التحقق قبل الإيقاف المبكر للتدريب. يساعد على منع التحميل الزائد عن طريق إيقاف التدريب عندما يستقر الأداء.
batch int أو float 16 حجم الدفعة، مع ثلاثة أوضاع: يتم تعيينه كعدد صحيح (مثل, batch=16)، الوضع التلقائي لاستخدام ذاكرة GPU بنسبة 60٪ (batch=-1)، أو الوضع التلقائي مع تحديد جزء الاستخدام (batch=0.70).
imgsz int أو list 640 حجم الصورة المستهدف للتدريب. يتم تغيير حجم جميع الصور إلى هذا البعد قبل إدخالها في النموذج. يؤثر على دقة النموذج والتعقيد الحسابي.
save bool True يتيح حفظ نقاط التحقق من التدريب وأوزان النموذج النهائية. مفيد لاستئناف التدريب أو نشر النموذج.
save_period int -1 تكرار حفظ نقاط التحقق من النموذج، المحدد بالحقبة. القيمة -1 تعطل هذه الميزة. مفيد لحفظ النماذج المؤقتة أثناء جلسات التدريب الطويلة.
cache bool 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)، أو الاختيار التلقائي لوحدة معالجة الرسومات (GPU) الأكثر خمولاً (device=-1) أو وحدات معالجة الرسومات (GPU) المتعددة غير المستخدمة (device=[-1,-1])
workers int 8 عدد سلاسل العمل لتحميل البيانات (لكل RANK إذا كان التدريب متعدد وحدات معالجة الرسوميات). يؤثر على سرعة معالجة البيانات الأولية وتغذيتها في النموذج، وهو مفيد بشكل خاص في إعدادات وحدات معالجة الرسوميات المتعددة.
project str None اسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بتخزين منظم للتجارب المختلفة.
name str None اسم تشغيل التدريب. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التدريب.
exist_ok bool False إذا كانت القيمة True، يسمح بالكتابة فوق دليل مشروع/اسم موجود. مفيد للتجريب التكراري دون الحاجة إلى مسح المخرجات السابقة يدويًا.
pretrained bool أو str True يحدد ما إذا كان سيتم بدء التدريب من نموذج مُدرَّب مسبقًا. يمكن أن تكون قيمة منطقية أو مسار سلسلة إلى نموذج معين لتحميل الأوزان منه. يعزز كفاءة التدريب وأداء النموذج.
optimizer str 'auto' اختيار المحسن للتدريب. تشمل الخيارات SGD, Adam, AdamW, NAdam, RAdam, RMSProp إلخ، أو auto للاختيار التلقائي بناءً على تكوين النموذج. يؤثر على سرعة واستقرار التقارب.
seed int 0 يحدد البذرة العشوائية للتدريب، مما يضمن إمكانية تكرار النتائج عبر عمليات التشغيل بنفس التكوينات.
deterministic bool True يفرض استخدام الخوارزمية الحتمية، مما يضمن إمكانية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب القيود المفروضة على الخوارزميات غير الحتمية.
single_cls bool False يعامل جميع الفئات في مجموعات البيانات متعددة الفئات كفئة واحدة أثناء التدريب. مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الكائن بدلاً من التصنيف.
classes list[int] None يحدد قائمة بمعرفات الفئات المراد التدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التدريب.
rect bool False يتيح التدريب المستطيل، وتحسين تكوين الدُفعات لتقليل الحشو. يمكن أن يحسن الكفاءة والسرعة ولكنه قد يؤثر على دقة النموذج.
multi_scale bool False تمكين التدريب متعدد المقاييس عن طريق الزيادة/النقصان imgsz بنسبة تصل إلى عامل 0.5 أثناء التدريب. يدرب النموذج ليكون أكثر دقة مع imgsz أثناء الاستدلال.
cos_lr bool False يستخدم جدولة معدل التعلم لجيب التمام، وضبط معدل التعلم باتباع منحنى جيب التمام عبر الحقب. يساعد في إدارة معدل التعلم لتحسين التقارب.
close_mosaic int 10 يعطل زيادة البيانات الفسيفسائية في آخر N حقبة لتثبيت التدريب قبل الانتهاء. يؤدي التعيين إلى 0 إلى تعطيل هذه الميزة.
resume bool False يستأنف التدريب من آخر نقطة تفتيش محفوظة. يقوم تلقائيًا بتحميل أوزان النموذج وحالة المُحسِّن وعدد الحقب، ومتابعة التدريب بسلاسة.
amp bool True يتيح التدريب التلقائي بالدقة المختلطة (AMP)، مما يقلل من استخدام الذاكرة وربما يسرع التدريب مع الحد الأدنى من التأثير على الدقة.
fraction float 1.0 يحدد جزء مجموعة البيانات المراد استخدامه للتدريب. يسمح بالتدريب على مجموعة فرعية من مجموعة البيانات الكاملة، وهو مفيد للتجارب أو عندما تكون الموارد محدودة.
profile bool False يتيح تحديد سرعات ONNX و TensorRT أثناء التدريب، وهو أمر مفيد لتحسين نشر النموذج.
freeze int أو list None يقوم بتجميد أول N طبقة من النموذج أو طبقات محددة بواسطة الفهرس، مما يقلل من عدد المعلمات القابلة للتدريب. مفيد للضبط الدقيق أو التعلم بالنقل.
lr0 float 0.01 معدل التعلم الأولي (على سبيل المثال SGD=1E-2, Adam=1E-3). يعد تعديل هذه القيمة أمرًا بالغ الأهمية لعملية التحسين، مما يؤثر على مدى سرعة تحديث أوزان النموذج.
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 معدل التعلم لمعلمات التحيز خلال مرحلة الإحماء، مما يساعد على استقرار تدريب النموذج في الحقب الأولية.
box float 7.5 وزن مكون خسارة الصندوق في دالة الخسارة، مما يؤثر على مقدار التركيز الذي يتم وضعه على التنبؤ بدقة بإحداثيات المربع المحيط.
cls float 0.5 وزن خسارة التصنيف في دالة الخسارة الكلية، مما يؤثر على أهمية التنبؤ الصحيح بالفئة بالنسبة إلى المكونات الأخرى.
dfl float 1.5 وزن خسارة التوزيع البؤري، المستخدم في إصدارات YOLO معينة للتصنيف الدقيق.
pose float 12.0 وزن خسارة الوضعية في النماذج المدربة على تقدير الوضعية، مما يؤثر على التأكيد على التنبؤ الدقيق بالنقاط الرئيسية للوضعية.
kobj float 2.0 وزن خسارة موضوعية النقاط الرئيسية في نماذج تقدير الوضعية، وموازنة الثقة في الكشف مع دقة الوضعية.
nbs int 64 حجم الدفعة الاسمية لتطبيع الخسارة.
overlap_mask bool True يحدد ما إذا كان يجب دمج أقنعة الكائنات في قناع واحد للتدريب، أو الاحتفاظ بها منفصلة لكل كائن. في حالة التداخل، يتم وضع القناع الأصغر فوق القناع الأكبر أثناء الدمج.
mask_ratio int 4 نسبة أخذ العينات السفلية لأقنعة التجزئة، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب.
dropout float 0.0 معدل التسرب للتسوية في مهام التصنيف، ومنع التجاوز عن طريق حذف الوحدات عشوائيًا أثناء التدريب.
val bool True يتيح التحقق من الصحة أثناء التدريب، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة.
plots bool False يقوم بإنشاء وحفظ مخططات لمقاييس التدريب والتحقق من الصحة، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم.

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

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

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

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

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

الوسيطة النوع افتراضي النطاق الوصف
hsv_h float 0.015 0.0 - 1.0 يضبط لون الصورة بجزء من عجلة الألوان، مما يدخل تباينًا في الألوان. يساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة.
hsv_s float 0.7 0.0 - 1.0 يغير تشبع الصورة بجزء، مما يؤثر على كثافة الألوان. مفيد لمحاكاة الظروف البيئية المختلفة.
hsv_v float 0.4 0.0 - 1.0 يعدل قيمة (سطوع) الصورة بجزء، مما يساعد النموذج على الأداء الجيد في ظل ظروف الإضاءة المختلفة.
degrees float 0.0 0.0 - 180 يدور الصورة عشوائيًا ضمن نطاق الدرجات المحدد، مما يحسن قدرة النموذج على التعرف على الكائنات في اتجاهات مختلفة.
translate float 0.1 0.0 - 1.0 ينقل الصورة أفقيًا وعموديًا بجزء من حجم الصورة، مما يساعد في تعلم اكتشاف الكائنات المرئية جزئيًا.
scale float 0.5 >=0.0 يقوم بتوسيع الصورة بمعامل كسب، مما يحاكي الكائنات على مسافات مختلفة من الكاميرا.
shear float 0.0 -180 - +180 يقص الصورة بدرجة محددة، مما يحاكي تأثير رؤية الكائنات من زوايا مختلفة.
perspective float 0.0 0.0 - 0.001 يطبق تحويلًا منظوريًا عشوائيًا على الصورة، مما يعزز قدرة النموذج على فهم الكائنات في الفضاء ثلاثي الأبعاد.
flipud float 0.0 0.0 - 1.0 يقلب الصورة رأسًا على عقب بالاحتمالية المحددة، مما يزيد من تباين البيانات دون التأثير على خصائص الكائن.
fliplr float 0.5 0.0 - 1.0 يقلب الصورة من اليسار إلى اليمين بالاحتمالية المحددة، وهو أمر مفيد لتعلم الكائنات المتماثلة وزيادة تنوع مجموعة البيانات.
bgr float 0.0 0.0 - 1.0 يقلب قنوات الصورة من RGB إلى BGR بالاحتمالية المحددة، وهو أمر مفيد لزيادة القوة في مواجهة ترتيب القنوات غير الصحيح.
mosaic float 1.0 0.0 - 1.0 يدمج أربع صور تدريبية في صورة واحدة، مما يحاكي تركيبات المشاهد المختلفة وتفاعلات الكائنات. فعال للغاية لفهم المشهد المعقد.
mixup float 0.0 0.0 - 1.0 يمزج صورتين وتسمياتهما، مما يخلق صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضوضاء التسمية والتباين البصري.
cutmix float 0.0 0.0 - 1.0 يجمع أجزاء من صورتين، مما يخلق مزيجًا جزئيًا مع الحفاظ على مناطق متميزة. يعزز قوة النموذج عن طريق إنشاء سيناريوهات انسداد.
copy_paste float 0.0 0.0 - 1.0 تجزئة فقط. ينسخ ويلصق الكائنات عبر الصور لزيادة مثيلات الكائنات.
copy_paste_mode str flip - التجزئة فقط: يحدد الـ copy-paste الإستراتيجية المراد استخدامها. تتضمن الخيارات 'flip' و 'mixup'.
auto_augment str randaugment - تصنيف فقط. يطبق سياسة زيادة محددة مسبقًا ('randaugment', 'autoaugment'، أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري.
erasing float 0.4 0.0 - 0.9 تصنيف فقط. يمحو عشوائيًا مناطق من الصورة أثناء التدريب لتشجيع النموذج على التركيز على الميزات الأقل وضوحًا.

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

معلومات

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

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

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

الوسيطة افتراضي الوصف
model None مسار ملف النموذج للتدريب.
data None مسار إلى ملف تكوين مجموعة البيانات (مثل, coco8.yaml).
epochs 100 العدد الإجمالي لحقب التدريب.
batch 16 حجم الدفعة، قابل للتعديل كعدد صحيح أو وضع تلقائي.
imgsz 640 حجم الصورة المستهدف للتدريب.
device None جهاز (أجهزة) الحوسبة للتدريب مثل cpu, 0, 0,1، أو mps.
save True تمكين حفظ نقاط تفتيش التدريب وأوزان النموذج النهائية.

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



📅 أُنشئ منذ سنة واحدة ✏️ تم التحديث منذ 26 يومًا

تعليقات