YOLOv5 مع Comet
سيغطي هذا الدليل كيفية استخدام YOLOv5 مع Comet
نبذة عن Comet
Comet يبني أدوات تساعد علماء البيانات والمهندسين وقادة الفرق في تسريع وتحسين نماذج التعلُّم الآلي والتعلُّم العميق.
تعقب مقاييس النموذج وتصورها في الوقت الفعلي، واحفظ المعلمات الفائقة، ومجموعات البيانات، ونقاط التحقق من النموذج، وتصور تنبؤات نموذجك باستخدام Comet لوحات مخصصة! Comet يضمن لك ألا تفقد تتبع عملك أبدًا ويسهل مشاركة النتائج والتعاون عبر الفرق من جميع الأحجام!
الشروع في العمل
التثبيت Comet
تكوين 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
جرّب مثالاً!
اطّلع على مثال على عملية تشغيل مكتملة هنا
أو الأفضل من ذلك، جربها بنفسك في دفتر ملاحظات كولاب هذا
تسجيل الدخول تلقائياً
بشكل افتراضي، سيقوم الموقع 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's اكتشاف الكائن لوحة مخصصة. يتوافق هذا التردد مع كل دفعة N من البيانات لكل الحقبة الزمنية. في المثال أدناه، نقوم بتسجيل كل دفعة ثانية من البيانات لكل حقبة زمنية.
ملاحظة: سيقوم مُحمّل بيانات التحقق من الصحة 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, الدقة, الاستدعاءو1 لكل فئة.
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
يمكنك معاينة البيانات مباشرةً في واجهة المستخدم Comet .
يتم إصدار القطع الأثرية وتدعم أيضًا إضافة البيانات الوصفية حول مجموعة البيانات. Comet سيقوم تلقائيًا بتسجيل البيانات الوصفية من مجموعة البيانات الخاصة بك yaml
الملف
استخدام قطعة أثرية محفوظة
إذا كنت ترغب في استخدام مجموعة بيانات من Comet Artifacts، قم بتعيين path
متغير في مجموعة بياناتك yaml
للإشارة إلى عنوان URL مورد القطع الأثرية التالي.
# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"
ثم مرر هذا الملف إلى البرنامج النصي للتدريب بالطريقة التالية
تسمح لك القطع الأثرية أيضًا بتتبع تسلسل البيانات أثناء تدفقها عبر سير عمل التجارب الخاصة بك. يمكنك هنا رؤية رسم بياني يوضح لك جميع التجارب التي استخدمت مجموعة البيانات التي تم تحميلها.
استئناف التدريب على الجري
إذا انقطع تدريبك لأي سبب من الأسباب، مثل انقطاع الاتصال بالإنترنت، يمكنك استئناف التدريب باستخدام resume
العلم ومسار Comet Run Path.
يحتوي مسار التشغيل على التنسيق التالي comet://<your workspace name>/<your project name>/<experiment id>
.
سيؤدي ذلك إلى استعادة التشغيل إلى حالته قبل الانقطاع، وهو ما يتضمن استعادة النموذج من نقطة تفتيش، واستعادة جميع المعلمات الفائقة ووسائط التدريب وتنزيل مجموعة البيانات Comet Artifacts إذا كانت مستخدمة في التشغيل الأصلي. سيستمر التشغيل المُستأنف في تسجيل الدخول إلى التجربة الحالية في واجهة المستخدم Comet
البحث عن المعلمة الفائقة باستخدام مُحسِّن 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 يوفر عددًا من الطرق لتصور نتائج المسح الخاص بك. ألقِ نظرة على مشروع مسح مكتمل هنا