İçeriğe geç

Comet

YOLOv5 ile Comet

Bu kılavuzda YOLOv5 ile nasıl kullanılacağı ele alınacaktır Comet

Hakkında Comet

Comet veri bilimcilerin, mühendislerin ve ekip liderlerinin makine öğrenimi ve derin öğrenme modellerini hızlandırmasına ve optimize etmesine yardımcı olan araçlar geliştirir.

Model ölçümlerini gerçek zamanlı olarak takip edin ve görselleştirin, hiperparametrelerinizi, veri kümelerinizi ve model kontrol noktalarınızı kaydedin ve Comet Özel Paneller ile model tahminlerinizi görselleştirin! Comet çalışmanızın izini asla kaybetmemenizi sağlar ve sonuçları paylaşmayı ve her büyüklükteki ekipler arasında işbirliği yapmayı kolaylaştırır!

Başlarken

Kurulum Comet

pip install comet_ml

Comet Kimlik Bilgilerini Yapılandırma

Comet adresini YOLOv5 ile yapılandırmanın iki yolu vardır.

Kimlik bilgilerinizi ortam değişkenleri aracılığıyla ayarlayabilirsiniz

Ortam Değişkenleri

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

Ya da bir .comet.config dosyasını açın ve kimlik bilgilerinizi orada ayarlayın.

Comet Yapılandırma Dosyası

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

Eğitim Komut Dosyasını Çalıştırın

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

İşte bu kadar! Comet hiperparametrelerinizi, komut satırı argümanlarınızı, eğitim ve doğrulama metriklerinizi otomatik olarak günlüğe kaydedecektir. Çalışmalarınızı Comet kullanıcı arayüzünde görselleştirebilir ve analiz edebilirsiniz

yolo-ui

Bir Örnek Deneyin!

Tamamlanmış bir çalışma örneğine buradan göz atın

Ya da daha iyisi, bu Colab Notebook'ta kendiniz deneyin

Colab'da Aç

Otomatik olarak günlüğe kaydet

Varsayılan olarak, Comet aşağıdaki öğeleri günlüğe kaydeder

Metrikler

  • Eğitim ve doğrulama verileri için Kutu Kaybı, Nesne Kaybı, Sınıflandırma Kaybı
  • mAP_0.5, doğrulama verileri için mAP_0.5:0.95 metrikleri.
  • Doğrulama verileri için Kesinlik ve Geri Çağırma

Parametreler

  • Model Hiperparametreleri
  • Komut satırı seçenekleri aracılığıyla aktarılan tüm parametreler

Görselleştirmeler

  • Doğrulama verileri üzerindeki model tahminlerinin karışıklık matrisi
  • Tüm sınıflarda PR ve F1 eğrileri için grafikler
  • Sınıf Etiketlerinin Korelogramı

Comet Günlük Kaydını Yapılandırma

Comet eğitim betiğine aktarılan komut satırı bayrakları veya ortam değişkenleri aracılığıyla ek verileri günlüğe kaydedecek şekilde yapılandırılabilir.

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

ile Kontrol Noktalarını Günlüğe Kaydetme Comet

Modellerin Comet adresinde günlüğe kaydedilmesi varsayılan olarak devre dışıdır. Etkinleştirmek için save-period eğitim komut dosyasına argüman. Bu, günlüğe kaydedilen kontrol noktalarını Comet adresine kaydedecektir. save-period

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

Günlük Modeli Tahminleri

Varsayılan olarak, model tahminleri (görüntüler, temel gerçek etiketleri ve sınırlayıcı kutular) Comet adresine kaydedilecektir.

Günlüğe kaydedilen tahminlerin ve ilişkili görüntülerin sıklığını bbox_interval komut satırı argümanı. Tahminler Comet'un Nesne Algılama Özel Paneli kullanılarak görselleştirilebilir. Bu sıklık, dönem başına her N'inci veri grubuna karşılık gelir. Aşağıdaki örnekte, her dönem için her 2. veri grubunu günlüğe kaydediyoruz.

Not: YOLOv5 doğrulama veri yükleyicisi varsayılan olarak 32'lik bir yığın boyutuna sahip olacaktır, bu nedenle günlük kaydı sıklığını buna göre ayarlamanız gerekecektir.

İşte Panel'i kullanan örnek bir proje

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

Kaydedilen Tahmin Görüntülerinin sayısını kontrol etme Comet

YOLOv5 adresinden tahminleri günlüğe kaydederken, Comet her bir tahmin setiyle ilişkili görüntüleri günlüğe kaydeder. Varsayılan olarak en fazla 100 doğrulama görüntüsü günlüğe kaydedilir. Bu sayıyı şu komutu kullanarak artırabilir veya azaltabilirsiniz COMET_MAX_IMAGE_UPLOADS ortam değişkeni.

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

Sınıf Seviyesi Metriklerini Günlüğe Kaydetme

Kullanın COMET_LOG_PER_CLASS_METRICS her sınıf için mAP, precision, recall, f1 değerlerini günlüğe kaydetmek için ortam değişkeni.

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

Bir Veri Setini Comet Artifacts'e Yükleme

Verilerinizi aşağıdakileri kullanarak saklamak isterseniz Comet Eserlerkullanarak bunu yapabilirsiniz. upload_dataset bayrak.

Veri kümesi, aşağıda açıklanan şekilde düzenlenmelidir YOLOv5 dokümantasyon. Veri kümesi yapılandırması yaml dosyasının formatı ile aynı formatı takip etmelidir. coco128.yaml Dosya.

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

Yüklenen veri setini Comet Çalışma Alanınızdaki Artifacts sekmesinde bulabilirsiniz artefakt-1

Verileri doğrudan Comet kullanıcı arayüzünde önizleyebilirsiniz. artefakt-2

Eserler sürümlendirilir ve ayrıca veri kümesi hakkında meta veri eklemeyi destekler. Comet veri kümenizdeki meta verileri otomatik olarak günlüğe kaydeder yaml dosya artefakt-3

Kaydedilmiş bir Eseri Kullanma

Comet Artifacts adresinden bir veri kümesi kullanmak isterseniz path veri kümenizdeki değişken yaml dosyasını aşağıdaki Artifact kaynak URL'sine işaret edecek şekilde ayarlayın.

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

Ardından bu dosyayı eğitim betiğinize aşağıdaki şekilde aktarın

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

Eserler aynı zamanda Deneme iş akışınız boyunca akan veri akışını izlemenize de olanak tanır. Burada, yüklediğiniz veri kümesini kullanan tüm deneyleri gösteren bir grafik görebilirsiniz. artefakt-4

Antrenman Koşusuna Devam Etme

Eğitim koşunuz herhangi bir nedenle kesintiye uğrarsa, örneğin internet bağlantınız kesilirse, koşuya devam etmek için resume bayrağı ve Comet Run Path.

Çalıştırma Yolu aşağıdaki biçime sahiptir comet://<your workspace name>/<your project name>/<experiment id>.

Bu, modeli bir kontrol noktasından geri yüklemeyi, tüm hiperparametreleri ve eğitim argümanlarını geri yüklemeyi ve orijinal çalışmada kullanılmışlarsa Comet veri seti Artefaktlarını indirmeyi içeren çalışmayı kesintiden önceki durumuna geri yükleyecektir. Yeniden başlatılan çalıştırma, Comet kullanıcı arayüzündeki mevcut Deneye günlük tutmaya devam edecektir

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

Comet Optimizer ile Hiperparametre Arama

YOLOv5 ayrıca Comet's Optimizer ile entegre edilmiştir ve hiperparametre taramalarını Comet kullanıcı arayüzünde görselleştirmeyi kolaylaştırır.

Optimize Edici Taramasını Yapılandırma

Comet Optimizer'ı yapılandırmak için, tarama ile ilgili bilgileri içeren bir JSON dosyası oluşturmanız gerekecektir. Örnek bir dosya şurada verilmiştir utils/loggers/comet/optimizer_config.json

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

Bu hpo.py betiği şu argümanlarla aynı argümanları kabul eder train.py. Süpürme işleminize ek argümanlar aktarmak isterseniz bunları koddan sonra eklemeniz yeterlidir.

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

Bir Taramayı Paralel Çalıştırma

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

Sonuçları Görselleştirme

Comet taramanızın sonuçlarını görselleştirmek için çeşitli yollar sunar. Tamamlanmış bir taramaya sahip bir projeye buradan göz atın

hiperparametre-yolo



Oluşturma 2023-11-12, Güncelleme 2024-01-07
Yazarlar: glenn-jocher (3), RizwanMunawar (1)

Yorumlar