انتقل إلى المحتوى

تكوين

YOLO settings and hyperparameters play a critical role in the model's performance, speed, and accuracy. These settings and hyperparameters can affect the model's behavior at various stages of the model development process, including training, validation, and prediction.



شاهد: Mastering Ultralytics YOLO: Configuration

Ultralytics تستخدم الأوامر بناء الجملة التالي:

مثل

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO11 model from a pre-trained weights file
model = YOLO("yolo11n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

أين:

افتراضي ARG يتم تعريف القيم في هذه الصفحة من cfg/defaults.yaml ملف.

المهام

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

  • كشف: لتحديد وتوطين الكائنات أو المناطق ذات الأهمية في صورة أو مقطع فيديو.
  • الجزء: لتقسيم صورة أو مقطع فيديو إلى مناطق أو وحدات بكسل تتوافق مع كائنات أو فئات مختلفة.
  • تصنيف: للتنبؤ بتسمية الفئة لصورة الإدخال.
  • الوضعية: لتحديد الأشياء وتقدير نقاطها الرئيسية في صورة أو مقطع فيديو.
  • OBB: صناديق محيطة موجهة (أي دوارة) مناسبة لصور الأقمار الصناعية أو الصور الطبية.
جدالافتراضيوصف
task'detect'يحدد YOLO المهمة المراد تنفيذها. تشمل الخيارات detect for object detection, segment للتجزئة ، classify للتصنيف ، pose لتقدير الوضع و obb للمربعات المحيطة الموجهة. تم تصميم كل مهمة لأنواع محددة من المخرجات والمشاكل في تحليل الصور والفيديو.

دليل المهام

وسائط

YOLO يمكن استخدام النماذج في أوضاع مختلفة اعتمادا على المشكلة المحددة التي تحاول حلها. تتضمن هذه الأوضاع:

  • Train: For training a YOLO11 model on a custom dataset.
  • Val: For validating a YOLO11 model after it has been trained.
  • Predict: For making predictions using a trained YOLO11 model on new images or videos.
  • Export: For exporting a YOLO11 model to a format that can be used for deployment.
  • Track: For tracking objects in real-time using a YOLO11 model.
  • Benchmark: For benchmarking YOLO11 exports (ONNX, TensorRT, etc.) speed and accuracy.
جدالافتراضيوصف
mode'train'يحدد الوضع الذي YOLO نموذج يعمل. الخيارات هي train للتدريب النموذجي ، val للتحقق من الصحة ، predict للاستدلال على البيانات الجديدة ، export لتحويل النموذج إلى تنسيقات النشر ، track لتتبع الكائنات، و benchmark لتقييم الأداء. تم تصميم كل وضع لمراحل مختلفة من دورة حياة النموذج ، من التطوير إلى النشر.

دليل الأوضاع

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

The training settings for YOLO models encompass various hyperparameters and configurations used during the training process. These settings influence the model's performance, speed, and accuracy. Key training settings include batch size, learning rate, momentum, and weight decay. Additionally, the choice of optimizer, loss function, and training dataset composition can impact the training process. Careful tuning and experimentation with these settings are crucial for optimizing performance.

جدالافتراضيوصف
modelNoneيحدد ملف النموذج للتدريب. يقبل مسارا إلى أي منهما .pt نموذج تم تدريبه مسبقا أو أ .yaml ملف التكوين. ضروري لتحديد هيكل النموذج أو تهيئة الأوزان.
dataNoneالمسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال، coco8.yaml). This file contains dataset-specific parameters, including paths to training and validation data, class names, and number of classes.
epochs100Total number of training epochs. Each epoch represents a full pass over the entire dataset. Adjusting this value can affect training duration and model performance.
timeNoneالحد الأقصى لوقت التدريب بالساعات. إذا تم تعيينه، فإن هذا يتجاوز epochs وسيطة ، مما يسمح للتدريب بالتوقف تلقائيا بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة بالوقت.
patience100Number of epochs to wait without improvement in validation metrics before early stopping the training. Helps prevent overfitting by stopping training when performance plateaus.
batch16Batch size, with three modes: set as an integer (e.g., batch=16)، الوضع التلقائي لاستخدام الذاكرة بنسبة 60% GPU (batch=-1)، أو الوضع التلقائي مع جزء استخدام محدد (batch=0.70).
imgsz640Target image size for training. All images are resized to this dimension before being fed into the model. Affects model accuracy and computational complexity.
saveTrueEnables saving of training checkpoints and final model weights. Useful for resuming training or model deployment.
save_period-1تواتر نقاط التفتيش النموذجية المحفوظة ، المحددة في العصور. تؤدي القيمة -1 إلى تعطيل هذه الميزة. مفيد لحفظ النماذج المؤقتة أثناء جلسات التدريب الطويلة.
cacheFalseتمكين التخزين المؤقت لصور مجموعة البيانات في الذاكرة (True/ram)، على القرص (disk)، أو تعطيله (False). يحسن سرعة التدريب عن طريق تقليل إدخال/إخراج القرص على حساب زيادة استخدام الذاكرة.
deviceNoneيحدد الجهاز (الأجهزة) الحسابية للتدريب: جهاز (أجهزة) حسابية واحدة GPU (device=0) ، ووحدات معالجة رسومات متعددة (device=0,1)، CPU (device=cpu)، أو MPS لسيليكون Apple (device=mps).
workers8عدد مؤشرات الترابط العاملة لتحميل البيانات (لكل RANK إذا كان التدريب متعددGPU ). يؤثر على سرعة المعالجة المسبقة للبيانات وتغذيتها في النموذج، وهو مفيد بشكل خاص في الإعدادات المتعددةGPU .
projectNoneاسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بالتخزين المنظم للتجارب المختلفة.
nameNoneاسم تشغيل التدريب. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع ، حيث يتم تخزين سجلات التدريب والمخرجات.
exist_okFalseإذا كان صحيحا ، يسمح بالكتابة فوق دليل مشروع / اسم موجود. مفيد للتجربة التكرارية دون الحاجة إلى مسح المخرجات السابقة يدويا.
pretrainedTrueيحدد ما إذا كان سيبدأ التدريب من نموذج تم تدريبه مسبقا. يمكن أن تكون قيمة منطقية أو مسار سلسلة إلى نموذج معين يتم من خلاله تحميل الأوزان. يعزز كفاءة التدريب وأداء النموذج.
optimizer'auto'اختيار محسن للتدريب. تشمل الخيارات SGD, Adam, AdamW, NAdam, RAdam, RMSProp إلخ، أو auto للاختيار التلقائي بناء على تكوين النموذج. يؤثر على سرعة التقارب والاستقرار.
verboseFalseتمكين الإخراج المطول أثناء التدريب ، وتوفير سجلات مفصلة وتحديثات التقدم. مفيد لتصحيح الأخطاء ومراقبة عملية التدريب عن كثب.
seed0يحدد البذور العشوائية للتدريب ، مما يضمن إمكانية تكرار النتائج عبر عمليات التشغيل بنفس التكوينات.
deterministicTrueيفرض استخدام الخوارزمية الحتمية ، مما يضمن قابلية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب القيود المفروضة على الخوارزميات غير الحتمية.
single_clsFalseيعامل جميع الفئات في مجموعات البيانات متعددة الفئات كفئة واحدة أثناء التدريب. مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الكائن بدلا من التصنيف.
rectFalseيتيح التدريب المستطيل ، وتحسين تكوين الدفعات للحد الأدنى من الحشو. يمكن أن يحسن الكفاءة والسرعة ولكنه قد يؤثر على دقة النموذج.
cos_lrFalseUtilizes a cosine learning rate scheduler, adjusting the learning rate following a cosine curve over epochs. Helps in managing learning rate for better convergence.
close_mosaic10Disables mosaic data augmentation in the last N epochs to stabilize training before completion. Setting to 0 disables this feature.
resumeFalseيستأنف التدريب من آخر نقطة تفتيش محفوظة. يقوم تلقائيا بتحميل أوزان النموذج وحالة المحسن وعدد العصور، مع مواصلة التدريب بسلاسة.
ampTrueEnables Automatic Mixed Precision (AMP) training, reducing memory usage and possibly speeding up training with minimal impact on accuracy.
fraction1.0يحدد جزء مجموعة البيانات المراد استخدامه للتدريب. يسمح بالتدريب على مجموعة فرعية من مجموعة البيانات الكاملة ، وهو مفيد للتجارب أو عندما تكون الموارد محدودة.
profileFalseتمكين التنميط من ONNX و TensorRT سرعات أثناء التدريب ، مفيدة لتحسين نشر النموذج.
freezeNoneFreezes the first N layers of the model or specified layers by index, reducing the number of trainable parameters. Useful for fine-tuning or transfer learning.
lr00.01معدل التعلم الأولي (أي SGD=1E-2, Adam=1E-3) . يعد ضبط هذه القيمة أمرا بالغ الأهمية لعملية التحسين ، مما يؤثر على مدى سرعة تحديث أوزان النموذج.
lrf0.01معدل التعلم النهائي كجزء من المعدل الأولي = (lr0 * lrf)، تستخدم جنبا إلى جنب مع برامج الجدولة لضبط معدل التعلم بمرور الوقت.
momentum0.937Momentum factor for SGD or beta1 for Adam optimizers, influencing the incorporation of past gradients in the current update.
weight_decay0.0005L2 regularization term, penalizing large weights to prevent overfitting.
warmup_epochs3.0عدد فترات الإحماء لمعدل التعلم ، وزيادة معدل التعلم تدريجيا من قيمة منخفضة إلى معدل التعلم الأولي لتحقيق الاستقرار في التدريب في وقت مبكر.
warmup_momentum0.8الزخم الأولي لمرحلة الإحماء ، والتكيف تدريجيا مع الزخم المحدد خلال فترة الإحماء.
warmup_bias_lr0.1معدل التعلم لمعلمات التحيز خلال مرحلة الإحماء ، مما يساعد على استقرار تدريب النموذج في العصور الأولية.
box7.5Weight of the box loss component in the loss function, influencing how much emphasis is placed on accurately predicting bounding box coordinates.
cls0.5وزن خسارة التصنيف في دالة الخسارة الكلية ، مما يؤثر على أهمية التنبؤ الصحيح بالفئة بالنسبة للمكونات الأخرى.
dfl1.5وزن الخسارة البؤرية للتوزيع ، المستخدمة في بعض YOLO إصدارات للتصنيف الدقيق الحبيبات.
pose12.0وزن فقدان الوضع في النماذج المدربة على تقدير الوضع ، مما يؤثر على التركيز على التنبؤ بدقة بالنقاط الرئيسية.
kobj2.0وزن فقدان كائن النقطة الرئيسية في نماذج تقدير الوضع ، وتحقيق التوازن بين ثقة الكشف ودقة الوضع.
label_smoothing0.0يمكن أن يؤدي تطبيق تجانس الملصقات ، وتليين الملصقات الصلبة على مزيج من الملصق المستهدف والتوزيع الموحد على الملصقات ، إلى تحسين التعميم.
nbs64حجم الدفعة الاسمي لتطبيع الخسارة.
overlap_maskTrueDetermines whether segmentation masks should overlap during training, applicable in instance segmentation tasks.
mask_ratio4نسبة العينة السفلية لأقنعة التجزئة ، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب.
dropout0.0معدل التسرب لتسوية مهام التصنيف ، ومنع الإفراط في التجهيز عن طريق حذف الوحدات بشكل عشوائي أثناء التدريب.
valTrueيتيح التحقق من الصحة أثناء التدريب ، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة.
plotsFalseيقوم بإنشاء وحفظ مخططات مقاييس التدريب والتحقق من الصحة، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم.

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

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

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

دليل القطار

توقع الإعدادات

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

حجج الاستدلال:

جدالنوعافتراضيوصف
sourcestr'ultralytics/assets'Specifies the data source for inference. Can be an image path, video file, directory, URL, or device ID for live feeds. Supports a wide range of formats and sources, enabling flexible application across different types of input.
conffloat0.25يعين الحد الأدنى للثقة للاكتشافات. سيتم تجاهل الكائنات المكتشفة بثقة أقل من هذا الحد. يمكن أن يساعد ضبط هذه القيمة في تقليل الإيجابيات الخاطئة.
ioufloat0.7Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Lower values result in fewer detections by eliminating overlapping boxes, useful for reducing duplicates.
imgszint or tuple640يحدد حجم الصورة للاستدلال. يمكن أن يكون عددا صحيحا واحدا 640 for square resizing or a (height, width) tuple. Proper sizing can improve detection accuracy and processing speed.
halfboolFalseEnables half-precision (FP16) inference, which can speed up model inference on supported GPUs with minimal impact on accuracy.
devicestrNoneيحدد جهاز الاستدلال (على سبيل المثال ، cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU ، أو جهاز GPU معين، أو أجهزة حوسبة أخرى لتنفيذ النموذج.
max_detint300الحد الأقصى لعدد الاكتشافات المسموح بها لكل صورة. يحد من العدد الإجمالي للكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات الزائدة في المشاهد الكثيفة.
vid_strideint1خطوة الإطار لمدخلات الفيديو. يسمح بتخطي الإطارات في مقاطع الفيديو لتسريع المعالجة على حساب الدقة الزمنية. قيمة 1 تعالج كل إطار ، القيم الأعلى تتخطى الإطارات.
stream_bufferboolFalseDetermines whether to queue incoming frames for video streams. If False, old frames get dropped to accomodate new frames (optimized for real-time applications). If `True', queues new frames in a buffer, ensuring no frames get skipped, but will cause latency if inference FPS is lower than stream FPS.
visualizeboolFalseينشط تصور ميزات النموذج أثناء الاستدلال ، مما يوفر رؤى حول ما "يراه" النموذج. مفيد لتصحيح الأخطاء وتفسير النموذج.
augmentboolFalseيتيح زيادة وقت الاختبار (TTA) للتنبؤات ، مما قد يؤدي إلى تحسين متانة الكشف على حساب سرعة الاستدلال.
agnostic_nmsboolFalseتمكين منع عدم الحد الأقصى (NMS) اللاأدري للفئة ، والذي يدمج المربعات المتداخلة لفئات مختلفة. مفيد في سيناريوهات الكشف متعددة الفئات حيث يكون تداخل الفئة شائعا.
classeslist[int]Noneتصفية التوقعات إلى مجموعة من معرفات الفئة. سيتم إرجاع الاكتشافات التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الكشف متعددة الفئات.
retina_masksboolFalseيستخدم أقنعة تجزئة عالية الدقة إذا كانت متوفرة في النموذج. يمكن أن يؤدي ذلك إلى تحسين جودة القناع لمهام التجزئة ، مما يوفر تفاصيل أدق.
embedlist[int]NoneSpecifies the layers from which to extract feature vectors or embeddings. Useful for downstream tasks like clustering or similarity search.

وسيطات التصور:

جدالنوعافتراضيوصف
showboolFalseلو True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للملاحظات المرئية الفورية أثناء التطوير أو الاختبار.
saveboolFalse أو TrueEnables saving of the annotated images or videos to file. Useful for documentation, further analysis, or sharing results. Defaults to True when using CLI & False when used in Python.
save_framesboolFalseعند معالجة مقاطع الفيديو ، يحفظ الإطارات الفردية كصور. مفيد لاستخراج إطارات محددة أو لتحليل مفصل لكل إطار على حدة.
save_txtboolFalseيحفظ نتائج الكشف في ملف نصي، باتباع التنسيق [class] [x_center] [y_center] [width] [height] [confidence]. مفيد للتكامل مع أدوات التحليل الأخرى.
save_confboolFalseيتضمن درجات الثقة في الملفات النصية المحفوظة. يعزز التفاصيل المتاحة للمعالجة اللاحقة والتحليل.
save_cropboolFalseيحفظ الصور التي تم اقتصاصها من الاكتشافات. مفيد لزيادة مجموعة البيانات أو تحليلها أو إنشاء مجموعات بيانات مركزة لكائنات محددة.
show_labelsboolTrueيعرض تسميات لكل اكتشاف في الإخراج المرئي. يوفر فهما فوريا للكائنات المكتشفة.
show_confboolTrueيعرض درجة الثقة لكل اكتشاف بجانب الملصق. يعطي نظرة ثاقبة على يقين النموذج لكل اكتشاف.
show_boxesboolTrueيرسم المربعات المحيطة حول الكائنات المكتشفة. ضروري للتحديد البصري وموقع الكائنات في الصور أو إطارات الفيديو.
line_widthNone أو intNoneيحدد عرض خط المربعات المحيطة. لو None، يتم ضبط عرض الخط تلقائيا بناء على حجم الصورة. يوفر التخصيص المرئي للوضوح.

دليل التنبؤ

إعدادات التحقق من الصحة

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

جدالنوعافتراضيوصف
datastrNoneيحدد المسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال، coco8.yaml). This file includes paths to validation data, class names, and number of classes.
imgszint640يحدد حجم الصور المدخلة. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة.
batchint16يضبط عدد الصور لكل دفعة. استخدام -1 للدفعات التلقائية، والتي يتم ضبطها تلقائيًا بناءً على توفر الذاكرة GPU .
save_jsonboolFalseلو True، يحفظ النتائج في ملف JSON لمزيد من التحليل أو التكامل مع الأدوات الأخرى.
save_hybridboolFalseلو True، يحفظ إصدارا مختلطا من التسميات يجمع بين التعليقات التوضيحية الأصلية وتنبؤات النموذج الإضافية.
conffloat0.001يعين الحد الأدنى للثقة للاكتشافات. يتم تجاهل الاكتشافات بثقة أقل من هذا الحد.
ioufloat0.6Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
max_detint300يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. مفيد في المشاهد الكثيفة لمنع الاكتشافات المفرطة.
halfboolTrueEnables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
devicestrNoneيحدد الجهاز للتحقق من صحته (cpu, cuda:0إلخ). يتيح المرونة في استخدام الموارد CPU أو GPU .
dnnboolFalseلو True, uses the أوبن سي في DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
plotsboolFalseعند الضبط على True، يولد ويحفظ مخططات التنبؤات مقابل الحقيقة الأرضية للتقييم البصري لأداء النموذج.
rectboolFalseلو True، يستخدم الاستدلال المستطيل للتجميع وتقليل الحشو وربما زيادة السرعة والكفاءة.
splitstrvalيحدد تقسيم مجموعة البيانات المراد استخدامه للتحقق من الصحة (val, testأو train). يتيح المرونة في اختيار شريحة البيانات لتقييم الأداء.

Careful tuning and experimentation with these settings are crucial to ensure optimal performance on the validation dataset and detect and prevent overfitting.

دليل فال

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

تشمل إعدادات التصدير لنماذج YOLO التكوينات والخيارات المتعلقة بحفظ النموذج أو تصديره لاستخدامه في بيئات أو منصات مختلفة. يمكن أن تؤثر هذه الإعدادات على أداء النموذج وحجمه وتوافقه مع الأنظمة المختلفة. تتضمن إعدادات التصدير الرئيسية تنسيق ملف النموذج المُصدَّر (على سبيل المثال، ONNX ، TensorFlow SavedModel )، والجهاز المستهدف (على سبيل المثال، CPU ، GPU)، وميزات إضافية مثل الأقنعة أو التسميات المتعددة لكل مربع. قد تتأثر عملية التصدير أيضًا بالمهمة المحددة للنموذج ومتطلبات أو قيود البيئة أو المنصة الوجهة.

جدالنوعافتراضيوصف
formatstr'torchscript'التنسيق الهدف للنموذج المصدر، مثل 'onnx', 'torchscript', 'tensorflow'، أو غيرها، تحديد التوافق مع بيئات النشر المختلفة.
imgszint أو tuple640حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددا صحيحا للصور المربعة أو مجموعة (height, width) لأبعاد محددة.
kerasboolFalseEnables export to Keras format for TensorFlow SavedModel, providing compatibility with TensorFlow serving and APIs.
optimizeboolFalseيطبق التحسين للأجهزة المحمولة عند التصدير إلى TorchScript، مما قد يقلل من حجم النموذج ويحسن الأداء.
halfboolFalseتمكين التكميم FP16 (نصف الدقة) ، مما يقلل من حجم النموذج ويحتمل أن يسرع الاستدلال على الأجهزة المدعومة.
int8boolFalseActivates INT8 quantization, further compressing the model and speeding up inference with minimal accuracy loss, primarily for edge devices.
dynamicboolFalseيسمح بأحجام إدخال ديناميكية للصادرات ONNX و TensorRT و OpenVINO ، مما يعزز المرونة في التعامل مع أبعاد الصور المختلفة.
simplifyboolTrueيبسط الرسم البياني النموذجي ل ONNX الصادرات مع onnxslim، مما قد يؤدي إلى تحسين الأداء والتوافق.
opsetintNoneيحدد ONNX إصدار Opset للتوافق مع مختلف ONNX المحللون وأوقات التشغيل. إذا لم يتم تعيينه، يستخدم أحدث إصدار مدعوم.
workspacefloat4.0يضبط الحد الأقصى لحجم مساحة العمل بالجيغابايت من أجل تحسينات TensorRT ، وتحقيق التوازن بين استخدام الذاكرة والأداء.
nmsboolFalseيضيف منع غير أقصى (NMS) إلى CoreML التصدير ، ضروري للكشف الدقيق والفعال بعد المعالجة.
batchint1يحدد حجم الاستدلال على دفعة نموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر بشكل متزامن في predict الوضع.

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

دليل التصدير

إعدادات التعزيز

Augmentation techniques are essential for improving the robustness and performance of YOLO models by introducing variability into the training data, helping the model generalize better to unseen data. The following table outlines the purpose and effect of each augmentation argument:

جدالنوعافتراضينطاقوصف
hsv_hfloat0.0150.0 - 1.0يضبط تدرج الصورة بجزء من عجلة الألوان، مما يؤدي إلى تباين اللون. يساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة.
hsv_sfloat0.70.0 - 1.0يغير تشبع الصورة بكسر، مما يؤثر على كثافة الألوان. مفيد لمحاكاة الظروف البيئية المختلفة.
hsv_vfloat0.40.0 - 1.0يعدل قيمة (سطوع) الصورة بمقدار كسر ، مما يساعد النموذج على الأداء الجيد في ظل ظروف الإضاءة المختلفة.
degreesfloat0.0-180 - +180يقوم بتدوير الصورة عشوائيا ضمن نطاق الدرجة المحدد، مما يحسن قدرة النموذج على التعرف على الكائنات في اتجاهات مختلفة.
translatefloat0.10.0 - 1.0يترجم الصورة أفقيا وعموديا بجزء صغير من حجم الصورة ، مما يساعد في تعلم اكتشاف الأشياء المرئية جزئيا.
scalefloat0.5>=0.0يقيس الصورة بعامل كسب، ويحاكي الكائنات على مسافات مختلفة من الكاميرا.
shearfloat0.0-180 - +180يقص الصورة بدرجة محددة، ويحاكي تأثير الكائنات التي يتم عرضها من زوايا مختلفة.
perspectivefloat0.00.0 - 0.001يطبق تحويل منظور عشوائي على الصورة ، مما يعزز قدرة النموذج على فهم الكائنات في مساحة 3D.
flipudfloat0.00.0 - 1.0يقلب الصورة رأسا على عقب مع الاحتمال المحدد، مما يزيد من تباين البيانات دون التأثير على خصائص الكائن.
fliplrfloat0.50.0 - 1.0يقلب الصورة من اليسار إلى اليمين بالاحتمال المحدد ، وهو مفيد لتعلم الكائنات المتماثلة وزيادة تنوع مجموعة البيانات.
bgrfloat0.00.0 - 1.0يقلب قنوات الصورة من RGB إلى BGR بالاحتمال المحدد، مفيد لزيادة المتانة لترتيب القنوات غير الصحيح.
mosaicfloat1.00.0 - 1.0يجمع بين أربع صور تدريب في صورة واحدة ، ويحاكي تركيبات المشهد المختلفة وتفاعلات الكائنات. فعالة للغاية لفهم المشهد المعقد.
mixupfloat0.00.0 - 1.0يمزج صورتين وعناوينهما، مما يخلق صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضوضاء التسمية والتباين البصري.
copy_pastefloat0.00.0 - 1.0ينسخ كائنات من صورة ويلصقها على صورة أخرى، مفيد لزيادة تواجدات الكائن وتعلم انسداد الكائن.
copy_paste_modestrflip-Copy-Paste augmentation method selection among the options of ("flip", "mixup").
auto_augmentstrrandaugment-يطبق تلقائيا سياسة زيادة محددة مسبقا (randaugment, autoaugment, augmix) ، وتحسين مهام التصنيف من خلال تنويع الميزات المرئية.
erasingfloat0.40.0 - 0.9يمحو بشكل عشوائي جزءا من الصورة أثناء التدريب على التصنيف ، مما يشجع النموذج على التركيز على الميزات الأقل وضوحا للتعرف عليها.
crop_fractionfloat1.00.1 - 1.0يقصاص صورة التصنيف إلى جزء صغير من حجمها للتأكيد على الميزات المركزية والتكيف مع مقاييس الكائن، مما يقلل من تشتيت الخلفية.

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

إعدادات التسجيل ونقاط التفتيش والتخطيط

يعد التسجيل ونقاط التفتيش والتآمر وإدارة الملفات من الاعتبارات المهمة عند تدريب YOLO نموذج.

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

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

جدالافتراضيوصف
project'runs'يحدد الدليل الجذر لحفظ عمليات تشغيل التدريب. سيتم حفظ كل تشغيل في دليل فرعي منفصل داخل هذا الدليل.
name'exp'يحدد اسم التجربة. إذا لم يتم تحديده ، YOLO زيادة هذا الاسم تلقائيا لكل تشغيل ، على سبيل المثال ، exp, exp2، وما إلى ذلك، لتجنب الكتابة فوق التجارب السابقة.
exist_okFalseيحدد هذا الإعداد ما إذا كان سيتم استبدال دليل تجربة حالي إذا كان الدليل الذي يحمل الاسم نفسه موجودا بالفعل. تعيين هذا إلى True يسمح بالكتابة فوقها ، بينما False يمنع ذلك.
plotsFalseيتحكم في إنشاء وحفظ مؤامرات التدريب والتحقق من الصحة. اضبط على True to create plots such as loss curves, precision-recall curves, and sample predictions. Useful for visually tracking model performance over time.
saveFalseتمكن من توفير نقاط التفتيش التدريبية وأوزان النموذج النهائي. اضبط على True لحفظ الدول النموذجية بشكل دوري ، مما يسمح باستئناف التدريب من نقاط التفتيش هذه أو النماذج التي سيتم نشرها.

الأسئلة المتداولة

كيف يمكنني تحسين أداء نموذجي YOLO أثناء التدريب؟

Improving YOLO model performance involves tuning hyperparameters like batch size, learning rate, momentum, and weight decay. Adjusting augmentation settings, selecting the right optimizer, and employing techniques like early stopping or mixed precision can also help. For detailed guidance on training settings, refer to the Train Guide.

ما هي المعلمات الفائقة الرئيسية التي يجب أخذها في الاعتبار من أجل دقة النموذج YOLO ؟

تتضمن المعلمات الفائقة الرئيسية التي تؤثر على دقة النموذج YOLO ما يلي:

  • حجم الدفعة (batch): يمكن أن تؤدي أحجام الدفعات الأكبر إلى استقرار التدريب ولكنها قد تتطلب المزيد من الذاكرة.
  • معدل التعلم (lr0): يتحكم في حجم الخطوة لتحديثات الوزن؛ المعدلات الأصغر توفر تعديلات دقيقة ولكن التقارب بطيء.
  • الزخم (momentum): يساعد على تسريع متجهات التدرج في الاتجاهات الصحيحة، مما يخفف من التذبذبات.
  • حجم الصورة (imgsz): يمكن أن تؤدي أحجام الصور الأكبر إلى تحسين الدقة ولكنها تزيد من العبء الحسابي.

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

كيف يمكنني تعيين معدل التعلم لتدريب نموذج YOLO ؟

معدل التعلم (lr0) أمر بالغ الأهمية للتحسين. نقطة البداية الشائعة هي 0.01 بالدولار السنغافوري أو 0.001 لآدم. من الضروري مراقبة مقاييس التدريب وتعديلها إذا لزم الأمر. استخدم جداول معدل تعلم جيب التمام (cos_lr) أو تقنيات الإحماء (warmup_epochs, warmup_momentum) لتعديل المعدل ديناميكيًا أثناء التدريب. اعثر على مزيد من التفاصيل في دليل القطار.

ما هي إعدادات الاستدلال الافتراضية لنماذج YOLO ؟

تتضمن إعدادات الاستدلال الافتراضية ما يلي:

  • عتبة الثقة (conf=0.25): الحد الأدنى من الثقة للاكتشافات.
  • عتبة IoU (iou=0.7): للقمع غير الأقصى (NMS).
  • حجم الصورة (imgsz=640): تغيير حجم الصور المدخلة قبل الاستدلال.
  • الجهاز (device=None): Selects CPU or GPU for inference. For a comprehensive overview, visit the توقع الإعدادات وقسم دليل التنبؤ.

لماذا يجب استخدام التدريب الدقيق المختلط مع نماذج YOLO ؟

تدريب دقيق مختلط، ممكّن مع amp=Trueيساعد على تقليل استخدام الذاكرة ويمكنه تسريع التدريب من خلال الاستفادة من مزايا كل من FP16 وFP32. هذا الأمر مفيد لوحدات معالجة الرسومات الحديثة، التي تدعم الدقة المختلطة في الأصل، مما يسمح بتضمين المزيد من النماذج في الذاكرة وتمكين إجراء عمليات حسابية أسرع دون خسارة كبيرة في الدقة. تعرف على المزيد حول هذا الأمر في دليل القطار.

📅 Created 11 months ago ✏️ Updated 17 days ago

التعليقات