İçeriğe geç

Comet

Comet ile YOLOv5

Bu kılavuz, makine öğrenimi deneylerini izlemek, karşılaştırmak ve optimize etmek için güçlü bir araç olan Comet ile YOLOv5'in nasıl kullanılacağını kapsayacaktır.

Comet Hakkında

Comet, veri bilimcilerinin, 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 metriklerini gerçek zamanlı olarak izleyin ve görselleştirin, hiperparametrelerinizi, veri kümelerinizi ve model kontrol noktalarınızı kaydedin ve model tahminlerinizi Comet Özel Panelleri ile görselleştirin! Comet, çalışmalarınızı asla kaybetmemenizi sağlar ve sonuçları paylaşmayı ve her boyuttaki ekipler arasında işbirliği yapmayı kolaylaştırır!

Başlarken

Comet'i Kur

pip install comet_ml

Comet Kimlik Bilgilerini Yapılandırma

YOLOv5 ile Comet'i 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_API_KEY
export COMET_PROJECT_NAME=YOUR_COMET_PROJECT_NAME # This will default to 'yolov5'

Veya bir tane oluşturun .comet.config dosyasını çalışma dizininizde bulundurun ve kimlik bilgilerinizi oraya ayarlayın:

Comet Yapılandırma Dosyası

[comet]
api_key=YOUR_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 UI'da görselleştirebilir ve analiz edebilirsiniz.

YOLOv5 eğitimi ile Comet UI

Bir Örnek Deneyin!

Burada tamamlanmış bir çalıştırma örneğine göz atın.

Ya da daha iyisi, bu Colab Not Defterinde kendiniz deneyin:

Colab'da Aç

Otomatik olarak günlüğe kaydet

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

Metrikler

Parametreler

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

Görselleştirmeler

  • Doğrulama verileri üzerinde model tahminlerinin Karışıklık Matrisi
  • Tüm sınıflar için PR ve F1 eğrileri çizimleri
  • Sınıf Etiketlerinin Korelogramı

Comet Günlüğünü Yapılandırma

Comet, eğitim komut dosyasına iletilen komut satırı işaretleri veya ortam değişkenleri aracılığıyla ek verileri günlüğe kaydetmek için 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="yolov5"                   # 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=30                  # 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="last.pt" # 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 ile Kontrol Noktalarını Günlüğe Kaydetme

Modelleri Comet'e Günlüğe Kaydetme varsayılan olarak devre dışıdır. Etkinleştirmek için şunu iletin: save-period eğitim komut dosyasına argüman. Bu, günlüğe kaydedilen kontrol noktalarını Comet'e, tarafından sağlanan aralık değerine göre kaydedecektir. save-period:

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

Model Tahminlerini Günlüğe Kaydetme

Varsayılan olarak, model tahminleri (görüntüler, temel doğruluk etiketleri ve sınırlayıcı kutular) Comet'e kaydedilecektir.

Kaydedilen tahminlerin ve ilgili görüntülerin sıklığını şunları geçirerek kontrol edebilirsiniz: bbox_interval komut satırı argümanı. Tahminler, Comet'in kullanılarak görselleştirilebilir Nesne Algılama Özel Panel. Bu sıklık, her N'inci veri grubuna karşılık gelir. epok. Aşağıdaki örnekte, her epoch için her 2. veri öbeğini kaydediyoruz.

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

İşte Panel kullanan bir örnek proje

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

Comet'e kaydedilen Tahmin Görüntülerinin sayısını kontrol etme

YOLOv5'ten tahminleri günlüğe kaydederken, Comet her tahmin kümesiyle ilişkili görüntüleri günlüğe kaydeder. Varsayılan olarak, maksimum 100 doğrulama görüntüsü günlüğe kaydedilir. Şunu kullanarak bu sayıyı 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

Şunu kullanın: COMET_LOG_PER_CLASS_METRICS Her sınıf için mAP, kesinlik, geri çağırma, f1'i 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

Comet Artifacts'e Veri Kümesi Yükleme

Verilerinizi kullanarak saklamak isterseniz Comet Artifacts, bunu şu yolu kullanarak yapabilirsiniz: upload_dataset bayrağı.

Veri seti, şu bölümde açıklandığı gibi düzenlenmelidir: YOLOv5 dokümantasyonu. Veri kümesi yapılandırması yaml dosyası, şununla aynı biçimde olmalıdır: coco128.yaml dosyası.

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

Yüklenen veri kümesini Comet Çalışma Alanınızdaki Artifacts sekmesinde bulabilirsiniz:

Comet Artifacts Sekmesi

Verileri doğrudan Comet UI'da önizleyebilirsiniz:

Comet Veri Önizlemesi

Artifact'ler sürüm kontrollüdür ve veri kümesi hakkında meta veri eklemeyi de destekler. Comet, veri kümenizdeki meta verileri otomatik olarak günlüğe kaydeder. yaml dosyası:

Comet Artifact Meta Verileri

Kaydedilmiş bir Artifact kullanmak

Comet Artifacts'ten bir veri kümesi kullanmak isterseniz, şunu ayarlayın path veri kümenizdeki değişken yaml dosyasının aşağıdaki Artifact kaynak URL'sini işaret etmesi için:

# Contents of artifact.yaml file
path: "comet://WORKSPACE_NAME>/ARTIFACT_NAME:ARTIFACT_VERSION_OR_ALIAS"

Ardından bu dosyayı aşağıdaki şekilde eğitim komut dosyanıza aktarın:

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

Artifact'ler ayrıca, verilerin deney iş akışınız boyunca akışının soyunu izlemenize olanak tanır. Burada, yüklediğiniz veri kümesini kullanan tüm deneyleri gösteren bir grafik görebilirsiniz:

Comet Artifact Soy Ağacı Grafiği

Eğitim Çalışmasına Devam Etme

Eğitim çalıştırmanız herhangi bir nedenle kesintiye uğrarsa, örneğin internet bağlantısı kesilirse, çalıştırmaya şunu kullanarak devam edebilirsiniz: resume bayrağı ve Comet Çalıştırma Yolu.

Çalıştırma Yolunun biçimi aşağıdaki gibidir comet://WORKSPACE_NAME/PROJECT_NAME/EXPERIMENT_ID.

Bu, çalıştırmayı kesintiden önceki durumuna geri döndürecektir; bu, modeli bir kontrol noktasından geri yüklemeyi, tüm hiperparametreleri ve eğitim argümanlarını geri yüklemeyi ve orijinal çalıştırmada kullanılmışlarsa Comet veri kümesi Artifact'lerini indirmeyi içerir. Devam ettirilen çalıştırma, Comet UI'daki mevcut Deney'e günlük kaydetmeye devam edecektir:

python train.py \
  --resume "comet://YOUR_RUN_PATH"

Comet Optimizer ile Hiperparametre Arama

YOLOv5 ayrıca Comet'in Optimizer'ı ile entegre edilmiştir ve bu da Comet UI'da hiperparametre taramalarını görselleştirmeyi kolaylaştırır.

Bir İyileştirici Taraması Yapılandırma

Comet Optimizer'ı yapılandırmak için, sweep hakkındaki bilgileri içeren bir JSON dosyası oluşturmanız gerekir. Bir örnek dosya şurada sağlanmıştır: utils/loggers/comet/optimizer_config.json:

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

hpo.py komut dosyası, ile aynı argümanları kabul eder train.py. Sweep'inize ek argümanlar geçirmek isterseniz, bunları komut dosyasından sonra eklemeniz yeterlidir:

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

Sonuçları Görselleştirme

Comet, sweep sonuçlarınızı görselleştirmenin çeşitli yollarını sunar. Tamamlanmış bir sweep içeren bir projeye buradan göz atın.

Comet Hiperparametre Görselleştirmesi



📅 1 yıl önce oluşturuldu ✏️ 1 ay önce güncellendi

Yorumlar