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

التدريب النموذجي مع Ultralytics YOLO

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

مقدمة

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



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

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

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

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

الميزات الرئيسية لوضع القطار

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

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

نصيحة

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

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

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

مثال للتدريب الفرديGPU و CPU

يتم تحديد الجهاز تلقائيًا. إذا كان GPU متاحًا فسيتم استخدامه، وإلا سيبدأ التدريب على 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

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

مثال تدريب متعدد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])
# 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

تدريب Apple Silicon MPS Apple

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

لتمكين التدريب على رقائق السيليكون من Apple، يجب عليك تحديد "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، مما يتيح معالجة أكثر كفاءة لمهام التدريب. لمزيد من الإرشادات التفصيلية وخيارات التكوين المتقدمة، يُرجى الرجوع إلى وثائق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 ستواصل الدالة التدريب من حيث توقفت، باستخدام الحالة المخزّنة في ملف "المسار/إلى/لاست.pt". إذا كانت resume أو تم حذف الوسيطة أو ضبطها على Falseفإن train ستبدأ وظيفة بدء دورة تدريبية جديدة.

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

إعدادات القطار

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

الجدال افتراضي الوصف
model None يحدد ملف النموذج للتدريب. يقبل مسارًا إما إلى .pt نموذج تم تدريبه مسبقًا أو .yaml ملف التكوين. ضروري لتحديد بنية النموذج أو تهيئة الأوزان.
data None المسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال, coco8.yaml). يحتوي هذا الملف على معلمات خاصة بمجموعة البيانات، بما في ذلك مسارات التدريب و بيانات التحقق من الصحةوأسماء الفصول، وعدد الفصول.
epochs 100 إجمالي عدد الحلقات التدريبية. تمثل كل حلقة تدريبية تمرينًا كاملاً على مجموعة البيانات بأكملها. يمكن أن يؤثر تعديل هذه القيمة على مدة التدريب وأداء النموذج.
time None الحد الأقصى لوقت التدريب بالساعات. إذا تم تعيينه، فإن هذا يتجاوز epochs مما يسمح بإيقاف التدريب تلقائيًا بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة بالوقت.
patience 100 عدد الحقب الزمنية التي يجب انتظارها دون حدوث تحسن في مقاييس التحقق من الصحة قبل إيقاف التدريب مبكرًا. يساعد على منع الإفراط في التركيب عن طريق إيقاف التدريب عند توقف الأداء.
batch 16 حجم الدفعة، مع ثلاثة أوضاع: التعيين كعدد صحيح (على سبيل المثال, batch=16)، الوضع التلقائي لاستخدام الذاكرة بنسبة 60% GPU (batch=-1)، أو الوضع التلقائي مع جزء استخدام محدد (batch=0.70).
imgsz 640 حجم الصورة المستهدف للتدريب. يتم تغيير حجم جميع الصور إلى هذا البعد قبل إدخالها في النموذج. يؤثر على دقة النموذج والتعقيد الحسابي.
save True تمكين حفظ نقاط مراجعة التدريب وأوزان النموذج النهائي. مفيد لاستئناف التدريب أو نشر النموذج.
save_period -1 تواتر حفظ نقاط التحقق من النموذج، محدداً بالأحقاب الزمنية. تعطل القيمة -1 هذه الميزة. مفيدة لحفظ النماذج المؤقتة أثناء جلسات التدريب الطويلة.
cache False تمكين التخزين المؤقت لصور مجموعة البيانات في الذاكرة (True/ram)، على القرص (disk)، أو تعطيله (False). يحسن سرعة التدريب عن طريق تقليل إدخال/إخراج القرص على حساب زيادة استخدام الذاكرة.
device None يحدد الجهاز (الأجهزة) الحسابية للتدريب: جهاز (أجهزة) حسابية واحدة GPU (device=0)، وحدات معالجة رسومات متعددة (device=0,1)، CPU (device=cpu)، أو MPS لسيليكون Apple (device=mps).
workers 8 عدد الخيوط العاملة لتحميل البيانات (لكل RANK إذا كان التدريب متعددGPU ). يؤثر على سرعة المعالجة المسبقة للبيانات وتغذيتها في النموذج، وهو مفيد بشكل خاص في الإعدادات المتعددةGPU .
project None اسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بالتخزين المنظم للتجارب المختلفة.
name None اسم التشغيل التدريبي. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التدريب.
exist_ok False إذا كان صواب، يسمح بالكتابة فوق دليل مشروع/اسم موجود. مفيد للتجربة التكرارية دون الحاجة إلى مسح المخرجات السابقة يدويًا.
pretrained True يحدد ما إذا كان سيبدأ التدريب من نموذج مدرب مسبقًا أم لا. يمكن أن تكون قيمة منطقية أو مسار سلسلة لنموذج محدد يتم تحميل الأوزان منه. يعزز كفاءة التدريب وأداء النموذج.
optimizer 'auto' اختيار مُحسِّن للتدريب. تشمل الخيارات SGD, Adam, AdamW, NAdam, RAdam, RMSProp إلخ، أو auto للاختيار التلقائي بناءً على تكوين النموذج. يؤثر على سرعة التقارب والاستقرار.
seed 0 يضبط البذرة العشوائية للتدريب، مما يضمن إمكانية تكرار النتائج عبر عمليات التشغيل بنفس التكوينات.
deterministic True يفرض استخدام خوارزمية حتمية، مما يضمن قابلية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب التقييد على الخوارزميات غير الحتمية.
single_cls False يعامل جميع الفئات في مجموعات البيانات متعددة الفئات كفئة واحدة أثناء التدريب. مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الكائنات بدلاً من التصنيف.
classes None يحدد قائمة بمعرفات الفئات المراد التدريب عليها. مفيد للتصفية والتركيز فقط على فئات معينة أثناء التدريب.
rect False تمكين التدريب المستطيل، وتحسين تكوين الدُفعات للحصول على الحد الأدنى من الحشو. يمكن أن يحسن الكفاءة والسرعة ولكنه قد يؤثر على دقة النموذج.
cos_lr False يستخدم أداة جدولة معدل التعلُّم بجيب التمام لضبط معدل التعلُّم باتباع منحنى جيب التمام على مدى الحقب الزمنية. يساعد في إدارة معدل التعلم لتحسين التقارب.
close_mosaic 10 تعطيل زيادة بيانات الفسيفساء في آخر N حقبة زمنية لتثبيت التدريب قبل اكتماله. يؤدي الضبط على 0 إلى تعطيل هذه الميزة.
resume False استئناف التدريب من آخر نقطة تفتيش محفوظة. يقوم تلقائيًا بتحميل أوزان النموذج وحالة المُحسِّن وعدد الحقبة، ويواصل التدريب بسلاسة.
amp True تمكين التدريب التلقائي مختلط الدقة (AMP)، مما يقلل من استخدام الذاكرة وربما يسرّع التدريب بأقل تأثير على الدقة.
fraction 1.0 تحديد جزء من مجموعة البيانات المراد استخدامها للتدريب. يسمح بالتدريب على مجموعة فرعية من مجموعة البيانات الكاملة، وهو أمر مفيد للتجارب أو عندما تكون الموارد محدودة.
profile False يتيح تحديد سرعات ONNX و TensorRT أثناء التدريب، وهو أمر مفيد لتحسين نشر النموذج.
freeze None يجمد الطبقات N الأولى من النموذج أو الطبقات المحددة حسب الفهرس، مما يقلل من عدد المعلمات القابلة للتدريب. مفيد للضبط الدقيق أو نقل التعلّم.
lr0 0.01 معدل التعلم الأولي (أي SGD=1E-2, Adam=1E-3) . يعد ضبط هذه القيمة أمرًا بالغ الأهمية لعملية التحسين، حيث يؤثر على سرعة تحديث أوزان النموذج.
lrf 0.01 معدل التعلم النهائي كجزء من المعدل الأولي = (lr0 * lrf)، تُستخدم جنبًا إلى جنب مع أدوات الجدولة لضبط معدل التعلم بمرور الوقت.
momentum 0.937 عامل الزخم لـ SGD أو بيتا1 لمُحسِّنات آدم، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي.
weight_decay 0.0005 مصطلح التنظيم L2، مع معاقبة الأوزان الكبيرة لمنع الإفراط في التركيب.
warmup_epochs 3.0 عدد الحقب الزمنية لإحماء معدل التعلم، وزيادة معدل التعلم تدريجيًا من قيمة منخفضة إلى معدل التعلم الأولي لتحقيق الاستقرار في التدريب في وقت مبكر.
warmup_momentum 0.8 الزخم المبدئي لمرحلة الإحماء، والتكيف التدريجي مع الزخم المحدد خلال فترة الإحماء.
warmup_bias_lr 0.1 معدل التعلم لمعلمات التحيز أثناء مرحلة الإحماء، مما يساعد على استقرار تدريب النموذج في الحقب الأولية.
box 7.5 وزن مكون خسارة الصندوق في دالة الخسارة، مما يؤثر على مدى التركيز على التنبؤ بدقة بإحداثيات الصندوق المحدد.
cls 0.5 وزن خسارة التصنيف في دالة الخسارة الإجمالية، مما يؤثر على أهمية التنبؤ الصحيح للفئة بالنسبة للمكونات الأخرى.
dfl 1.5 وزن الخسارة البؤرية للتوزيع، المستخدم في بعض إصدارات YOLO للتصنيف الدقيق.
pose 12.0 وزن فقدان الوضعية في النماذج المدرّبة على تقدير الوضعية، مما يؤثر على التركيز على التنبؤ بدقة بنقاط الوضعية الرئيسية.
kobj 2.0 ترجيح فقدان نقطة الارتكاز في نماذج تقدير الوضعية في نماذج تقدير الوضعية، وموازنة الثقة في الكشف مع دقة الوضعية.
nbs 64 حجم الدفعة الاسمي لتطبيع الخسارة.
overlap_mask True يحدد ما إذا كان ينبغي دمج أقنعة الكائنات في قناع واحد للتدريب، أو الاحتفاظ بها منفصلة لكل كائن. في حالة التداخل، يتم تراكب القناع الأصغر فوق القناع الأكبر أثناء الدمج.
mask_ratio 4 نسبة تقليل العينة لأقنعة التجزئة، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب.
dropout 0.0 معدل التسرب من أجل التنظيم في مهام التصنيف، مما يمنع الإفراط في التركيب عن طريق حذف الوحدات عشوائيًا أثناء التدريب.
val True تمكين التحقق من الصحة أثناء التدريب، مما يسمح بإجراء تقييم دوري لأداء النموذج على مجموعة بيانات منفصلة.
plots False توليد وحفظ مخططات لمقاييس التدريب والتحقق من الصحة، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم.

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

إن batch يمكن تكوين الوسيطة بثلاث طرق:

  • حجم الدفعة الثابتة: تعيين قيمة صحيحة (على سبيل المثال, batch=16)، مع تحديد عدد الصور لكل دفعة مباشرةً.
  • الوضع التلقائي (60% GPU ذاكرة ): الاستخدام 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 -180 - +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 يمزج صورتين وتسمياتهما، مما يؤدي إلى إنشاء صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضوضاء التسمية والتباين البصري.
copy_paste float 0.0 0.0 - 1.0 ينسخ الكائنات ويلصقها عبر الصور، وهو مفيد لزيادة مثيلات الكائنات وتعلم انسداد الكائنات. يتطلب تسميات تجزئة.
copy_paste_mode str flip - اختيار طريقة زيادة النسخ واللصق من بين خيارات ("flip", "mixup").
auto_augment str randaugment - يطبق تلقائياً سياسة زيادة محددة مسبقاً (randaugment, autoaugment, augmix)، وتحسين مهام التصنيف من خلال تنويع الميزات المرئية.
erasing float 0.4 0.0 - 0.9 محو جزء من الصورة عشوائيًا أثناء التدريب على التصنيف، مما يشجع النموذج على التركيز على الميزات الأقل وضوحًا للتعرف عليها.
crop_fraction float 1.0 0.1 - 1.0 اقتصاص صورة التصنيف إلى جزء صغير من حجمها للتأكيد على الميزات المركزية والتكيف مع مقاييس الأجسام، مما يقلل من تشتيت انتباه الخلفية.

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

المعلومات

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

التسجيل

عند تدريب نموذج 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 عبارة عن مجموعة أدوات تصور ل 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 أو CLI. فيما يلي مثال لكليهما:

مثال للتدريب الفرديGPU و 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 'Train 'ما يلي:

  • تنزيل مجموعة البيانات تلقائيًا: تنزيل مجموعات البيانات القياسية تلقائيًا مثل COCO و VOC و ImageNet.
  • دعم متعددGPU : توسيع نطاق التدريب عبر وحدات معالجة رسومات متعددة لمعالجة أسرع.
  • تكوين المعرفات التشعبية: تخصيص المعلمات التشعبية من خلال ملفات 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؟

نعم، يدعم موقع Ultralytics YOLO11 التدريب على رقائق السيليكون من Apple باستخدام إطار عمل الأداء المعدني (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 تمكين حفظ نقاط التحقق من التدريب وأوزان النموذج النهائي.

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

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 1 شهر

التعليقات