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

Comet

YOLOv5 مع Comet

سيغطي هذا الدليل كيفية الاستخدام YOLOv5 مع Comet

عن Comet

Comet يبني الأدوات التي تساعد علماء البيانات والمهندسين وقادة الفرق على تسريع وتحسين نماذج التعلم الآلي والتعلم العميق.

تتبع مقاييس النموذج وتصورها في الوقت الفعلي ، واحفظ المعلمات الفائقة ومجموعات البيانات ونقاط فحص النموذج ، وتصور تنبؤات النموذج باستخدام Comet لوحات مخصصة! Comet يتأكد من أنك لن تفقد مسار عملك أبدا ويجعل من السهل مشاركة النتائج والتعاون عبر الفرق من جميع الأحجام!

الشروع

أقام Comet

pip install comet_ml

تكوين Comet وثائق التفويض

هناك طريقتان للتكوين Comet مع YOLOv5.

يمكنك إما تعيين بيانات الاعتماد الخاصة بك من خلال متغيرات البيئة

متغيرات البيئة

export COMET_API_KEY=<Your Comet API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'

أو قم بإنشاء ملف .comet.config ملف في دليل العمل الخاص بك وتعيين بيانات الاعتماد الخاصة بك هناك.

Comet ملف التكوين

[comet]
api_key=<Your Comet API Key>
project_name=<Your Comet Project Name> # This will default to 'yolov5'

تشغيل البرنامج النصي للتدريب

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

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

yolo-واجهة المستخدم

جرب مثالا!

تحقق من مثال على التشغيل المكتمل هنا

أو الأفضل من ذلك ، جربها بنفسك في دفتر كولاب هذا

فتح في كولاب

تسجيل الدخول تلقائيا

بشكل افتراضي ، Comet سيتم تسجيل العناصر التالية

المقاييس

  • فقدان الصندوق ، فقدان الكائن ، فقدان التصنيف لبيانات التدريب والتحقق من الصحة
  • mAP_0.5، مقاييس mAP_0.5:0.95 لبيانات التحقق من الصحة.
  • الدقة والاستدعاء لبيانات التحقق من الصحة

البارامترات

  • المعلمات الفائقة للنموذج
  • مرت جميع المعلمات من خلال خيارات سطر الأوامر

تصورات

  • مصفوفة الارتباك لتنبؤات النموذج على بيانات التحقق من الصحة
  • قطع أراضي لمنحنيات العلاقات العامة و F1 في جميع الفئات
  • مخطط كوريلوجرام لتسميات الفئة

تكوين Comet تسجيل

Comet يمكن تكوينه لتسجيل بيانات إضافية إما من خلال علامات سطر الأوامر التي تم تمريرها إلى البرنامج النصي للتدريب أو من خلال متغيرات البيئة.

export COMET_MODE=online # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME=<your model name> #Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=<number of allowed images to upload to Comet> # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME=<your checkpoint filename> # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true # Set this to false to disable logging model predictions

تسجيل نقاط التفتيش مع Comet

نماذج تسجيل الدخول إلى Comet يتم تعطيله افتراضيا. لتمكينه ، قم بتمرير save-period وسيطة إلى البرنامج النصي للتدريب. سيؤدي هذا إلى حفظ نقاط التفتيش التي تم تسجيلها إلى Comet استنادا إلى قيمة الفاصل الزمني التي يوفرها save-period

python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--save-period 1

تنبؤات نموذج التسجيل

بشكل افتراضي ، سيتم تسجيل تنبؤات النموذج (الصور وتسميات الحقيقة الأساسية والمربعات المحيطة) إلى Comet.

يمكنك التحكم في تكرار التنبؤات المسجلة والصور المرتبطة بها عن طريق تمرير bbox_interval وسيطة سطر الأوامر. يمكن تصور التنبؤات باستخدام Cometلوحة مخصصة للكشف عن الكائنات. يتوافق هذا التردد مع كل دفعة Nth من البيانات لكل حقبة. في المثال أدناه ، نقوم بتسجيل كل دفعة 2nd من البيانات لكل حقبة.

ملاحظه: ال YOLOv5 سيتم تعيين أداة تحميل بيانات التحقق من الصحة افتراضيا إلى حجم دفعة 32 ، لذلك سيتعين عليك تعيين تكرار التسجيل وفقا لذلك.

فيما يلي مثال على مشروع يستخدم اللوحة

python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--bbox_interval 2

التحكم في عدد صور التنبؤ التي تم تسجيلها Comet

عند تسجيل التنبؤات من YOLOv5, Comet سيتم تسجيل الصور المرتبطة بكل مجموعة من التنبؤات. بشكل افتراضي ، يتم تسجيل 100 صورة تحقق كحد أقصى. يمكنك زيادة أو تقليل هذا الرقم باستخدام COMET_MAX_IMAGE_UPLOADS متغير البيئة.

env COMET_MAX_IMAGE_UPLOADS=200 python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--bbox_interval 1

تسجيل مقاييس مستوى الفصل

استخدم الزر COMET_LOG_PER_CLASS_METRICS متغير البيئة لتسجيل mAP ، الدقة ، الاستدعاء ، f1 لكل فئة.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt

تحميل مجموعة بيانات إلى Comet التحف

إذا كنت ترغب في تخزين بياناتك باستخدام Comet التحف، يمكنك القيام بذلك باستخدام upload_dataset علم.

يتم تنظيم مجموعة البيانات بالطريقة الموضحة في YOLOv5 توثيق. تكوين مجموعة البيانات yaml يجب أن يتبع الملف نفس تنسيق ملف coco128.yaml ملف.

python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--upload_dataset

يمكنك العثور على مجموعة البيانات التي تم تحميلها في علامة التبويب "القطع الأثرية" في Comet مساحه عمل قطعة أثرية -1

يمكنك معاينة البيانات مباشرة في Comet واجهة المستخدم. قطعة أثرية -2

يتم إصدار القطع الأثرية وتدعم أيضا إضافة بيانات وصفية حول مجموعة البيانات. Comet سيقوم تلقائيا بتسجيل البيانات الوصفية من مجموعة البيانات الخاصة بك yaml ملف قطعة أثرية -3

استخدام قطعة أثرية محفوظة

إذا كنت ترغب في استخدام مجموعة بيانات من Comet القطع الأثرية، تعيين path متغير في مجموعة البيانات الخاصة بك yaml للإشارة إلى عنوان URL لمورد الأداة التالي.

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

ثم قم بتمرير هذا الملف إلى البرنامج النصي للتدريب الخاص بك بالطريقة التالية

python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data artifact.yaml \
--weights yolov5s.pt

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

استئناف تشغيل التدريب

إذا تمت مقاطعة تشغيل التدريب الخاص بك لأي سبب من الأسباب ، على سبيل المثال انقطاع الاتصال بالإنترنت ، فيمكنك استئناف التشغيل باستخدام resume العلم و Comet تشغيل المسار.

يحتوي مسار التشغيل على التنسيق التالي comet://<your workspace name>/<your project name>/<experiment id>.

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

python train.py \
--resume "comet://<your run path>"

البحث عن المعلمات الفائقة باستخدام Comet محسن

YOLOv5 يتكامل أيضا مع Cometمحسن ، مما يجعل من السهل تصور عمليات مسح المعلمات الفائقة في Comet واجهة المستخدم.

تكوين مسح محسن

لتكوين Comet محسن ، سيكون عليك إنشاء ملف JSON بمعلومات حول المسح. تم توفير ملف مثال في utils/loggers/comet/optimizer_config.json

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

ال hpo.py يقبل البرنامج النصي نفس الوسيطات مثل train.py. إذا كنت ترغب في تمرير وسيطات إضافية إلى عملية المسح الخاصة بك ، فما عليك سوى إضافتها بعد البرنامج النصي.

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \
  --save-period 1 \
  --bbox_interval 1

إجراء عملية مسح بالتوازي

comet optimizer -j <set number of workers> utils/loggers/comet/hpo.py \
  utils/loggers/comet/optimizer_config.json"

تصور النتائج

Comet يوفر عددا من الطرق لتصور نتائج عملية المسح الخاصة بك. ألق نظرة على مشروع مع عملية مسح مكتملة هنا

المعلمة الفائقة-yolo



تم النشر في 2023-11-12, اخر تحديث 2024-01-07
المؤلفون: جلين جوشر (3) ، رضوان منور (1)

التعليقات