YOLOv5 مع Comet
سيغطي هذا الدليل كيفية الاستخدام YOLOv5 مع Comet
عن Comet
Comet builds tools that help data scientists, engineers, and team leaders accelerate and optimize machine learning and deep learning models.
تتبع مقاييس النموذج وتصورها في الوقت الفعلي ، واحفظ المعلمات الفائقة ومجموعات البيانات ونقاط فحص النموذج ، وتصور تنبؤات النموذج باستخدام 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 سيتم تسجيل العناصر التالية
المقاييس
- Box Loss, Object Loss, Classification Loss for the training and validation data
- mAP_0.5، مقاييس mAP_0.5:0.95 لبيانات التحقق من الصحة.
- الدقة والاستدعاء لبيانات التحقق من الصحة
البارامترات
- المعلمات الفائقة للنموذج
- مرت جميع المعلمات من خلال خيارات سطر الأوامر
تصورات
- Confusion Matrix of the model predictions on the validation data
- قطع أراضي لمنحنيات العلاقات العامة و 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
command line argument. Predictions can be visualized using Comet's كشف الكائن Custom Panel. This frequency corresponds to every Nth batch of data per epoch. In the example below, we are logging every 2nd batch of data for each epoch.
Note: The YOLOv5 validation dataloader will default to a batch size of 32, so you will have to set the logging frequency accordingly.
فيما يلي مثال على مشروع يستخدم اللوحة
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
environment variable to log mAP, precision, recall, f1 for each class.
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 القطع الأثرية، تعيين path
متغير في مجموعة البيانات الخاصة بك yaml
للإشارة إلى عنوان URL لمورد الأداة التالي.
# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"
ثم قم بتمرير هذا الملف إلى البرنامج النصي للتدريب الخاص بك بالطريقة التالية
تسمح لك القطع الأثرية أيضا بتتبع نسب البيانات أثناء تدفقها عبر سير عمل التجريب. يمكنك هنا رؤية رسم بياني يوضح لك جميع التجارب التي استخدمت مجموعة البيانات التي تم تحميلها.
استئناف تشغيل التدريب
إذا تمت مقاطعة تشغيل التدريب الخاص بك لأي سبب من الأسباب ، على سبيل المثال انقطاع الاتصال بالإنترنت ، فيمكنك استئناف التشغيل باستخدام resume
العلم و Comet تشغيل المسار.
يحتوي مسار التشغيل على التنسيق التالي comet://<your workspace name>/<your project name>/<experiment id>
.
سيؤدي ذلك إلى استعادة التشغيل إلى حالته قبل الانقطاع ، والذي يتضمن استعادة النموذج من نقطة تفتيش ، واستعادة جميع المعلمات الفائقة ووسيطات التدريب والتنزيل Comet مجموعة البيانات العناصر إذا تم استخدامها في التشغيل الأصلي. سيستمر التشغيل المستأنف في تسجيل الدخول إلى التجربة الموجودة في 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 يوفر عددا من الطرق لتصور نتائج عملية المسح الخاصة بك. ألق نظرة على مشروع مع عملية مسح مكتملة هنا