Meet YOLO26: next-gen vision AI.

Makine öğrenimi deney takibi için Comet ML logosu

Link to this sectionComet ile YOLOv5#

Bu kılavuz, makine öğrenimi deneylerini takip etmek, 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.

Link to this sectionComet Hakkında#

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 metriklerini gerçek zamanlı olarak takip et ve görselleştir, hiperparametrelerini, veri kümelerini ve model kontrol noktalarını kaydet ve Comet Özel Panelleri ile model tahminlerini görselleştir! Comet, çalışmalarını asla kaybetmemeni sağlar ve sonuçları paylaşmayı ve her ölçekteki ekipte iş birliği yapmayı kolaylaştırır!

Link to this sectionBaşlarken#

Link to this sectionComet Kurulumu#

pip install comet_ml

Link to this sectionComet Kimlik Bilgilerini Yapılandır#

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

Kimlik bilgilerini ortam değişkenleri aracılığıyla ayarlayabilirsin:

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 çalışma dizininde bir .comet.config dosyası oluşturup kimlik bilgilerini orada ayarlayabilirsin:

Comet Yapılandırma Dosyası

[comet]
api_key=YOUR_API_KEY
project_name=YOUR_COMET_PROJECT_NAME # This will default to 'yolov5'

Link to this sectionEğitim Komut Dosyasını Çalıştır#

# 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, hiperparametrelerini, komut satırı argümanlarını, eğitim ve doğrulama metriklerini otomatik olarak günlüğe kaydeder. Çalışmalarını Comet arayüzünde görselleştirebilir ve analiz edebilirsin.

YOLOv5 eğitim metriklerini ve deney takibini gösteren Comet paneli

Link to this sectionBir Örnek Dene!#

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

Veya daha iyisi, bu Colab Not Defteri'nde kendin dene:

Colab'da Aç

Link to this sectionOtomatik Günlüğe Kaydet#

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

Link to this sectionMetrikler#

  • Eğitim ve doğrulama verileri için Kutu Kaybı, Nesne Kaybı, Sınıflandırma Kaybı
  • Doğrulama verileri için mAP_0.5, mAP_0.5:0.95 metrikleri
  • Doğrulama verileri için Hassasiyet ve Anımsama

Link to this sectionParametreler#

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

Link to this sectionGörselleştirmeler#

  • Modelin doğrulama verileri üzerindeki tahminlerinin Karmaşıklık Matrisi
  • Tüm sınıflar genelinde PR ve F1 eğrileri için grafikler
  • Sınıf Etiketlerinin Korelogamı

Link to this sectionComet Günlüğe Kaydetmeyi Yapılandır#

Comet, eğitim komut dosyasına iletilen 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="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

Link to this sectionComet ile Kontrol Noktalarını Günlüğe Kaydetme#

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

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

Link to this sectionModel 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 günlüğe kaydedilir.

bbox_interval komut satırı argümanını ileterek, günlüğe kaydedilen tahminlerin ve ilişkili görüntülerin sıklığını kontrol edebilirsin. Tahminler, Comet'in Nesne Algılama Özel Paneli kullanılarak görselleştirilebilir. Bu sıklık, her epoch başına N. veri grubuna karşılık gelir. Aşağıdaki örnekte, her epoch 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 boyutu kullanır, bu nedenle günlüğe kaydetme sıklığını buna göre ayarlaman gerekecektir.

İşte Paneli kullanan bir örnek proje

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

Link to this sectionComet'e günlüğe kaydedilen Tahmin Görüntüleri sayısını kontrol etme#

YOLOv5'ten tahminleri günlüğe kaydederken, Comet her 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ı COMET_MAX_IMAGE_UPLOADS ortam değişkenini kullanarak artırabilir veya azaltabilirsin:

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

Link to this sectionSınıf Düzeyi Metriklerini Günlüğe Kaydetme#

Her sınıf için mAP, hassasiyet, anımsama ve f1 değerlerini günlüğe kaydetmek için COMET_LOG_PER_CLASS_METRICS ortam değişkenini kullan:

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

Link to this sectionBir Veri Kümesini Comet Yapıtlarına Yükleme#

Verilerini Comet Yapıtlarını kullanarak saklamak istersen, upload_dataset bayrağını kullanarak bunu yapabilirsin.

Veri kümesi, YOLOv5 belgelerinde açıklandığı gibi düzenlenmelidir. Veri kümesi yapılandırma yaml dosyası, coco128.yaml dosyasıyla aynı biçimi izlemelidir.

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ındaki Yapıtlar sekmesinde bulabilirsin:

Veri kümesi sürüm oluşturma için Comet yapıtlar paneli

Verileri doğrudan Comet arayüzünde önizleyebilirsin:

Comet veri kümesi önizlemesi ve sürüm geçmişi

Yapıtlar sürümlüdür ve ayrıca veri kümesi hakkında meta veriler eklemeyi de destekler. Comet, veri kümesi yaml dosyanızdaki meta verileri otomatik olarak günlüğe kaydeder:

Comet Yapıt Meta Verileri

Link to this sectionKaydedilmiş bir Yapıtı kullanma#

If you would like to use a dataset from Comet Artifacts, set the path variable in your dataset yaml file to point to the following Artifact resource URL:

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

Ardından bu dosyayı eğitim komut dosyana aşağıdaki şekilde ilet:

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

Yapıtlar ayrıca, deney iş akışında ilerlerken verilerin soyunu takip etmene olanak tanır. Burada, yüklenen veri kümeni kullanan tüm deneyleri gösteren bir grafik görebilirsin:

Comet Yapıt Soy Grafiği

Link to this sectionBir Eğitim Çalışmasını Sürdürme#

Eğitim çalışman herhangi bir nedenle kesintiye uğrarsa (örneğin, internet bağlantısının kesilmesi), resume bayrağını ve Comet Çalışma Yolunu kullanarak çalışmayı sürdürebilirsin.

Çalışma Yolu şu biçimdedir: comet://WORKSPACE_NAME/PROJECT_NAME/EXPERIMENT_ID.

Bu, çalışmayı kesintiden önceki durumuna geri yükleyecektir; buna modeli bir kontrol noktasından geri yükleme, tüm hiperparametreleri ve eğitim argümanlarını geri yükleme ve orijinal çalışmada kullanılmışlarsa Comet veri kümesi Yapıtlarını indirme dahildir. Sürdürülen çalışma, Comet arayüzündeki mevcut Deneyi günlüğe kaydetmeye devam edecektir:

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

Link to this sectionComet Optimizer ile Hiperparametre Araması#

YOLOv5 ayrıca Comet'in Optimizer'ı ile entegredir, bu da Comet arayüzünde hiperparametre taramalarını görselleştirmeyi basit hale getirir.

Link to this sectionBir Optimizer Taramasını Yapılandırma#

Comet Optimizer'ı yapılandırmak için tarama hakkında bilgileri içeren bir JSON dosyası oluşturman gerekecektir. Örnek bir dosya utils/loggers/comet/optimizer_config.json içinde sağlanmıştır:

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

hpo.py komut dosyası train.py ile aynı argümanları kabul eder. Taramana ek argümanlar iletmek istersen, bunları komut dosyasından sonra eklemen yeterlidir:

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

Link to this sectionSonuçları Görselleştirme#

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

Comet Hiperparametre Görselleştirmesi

Katkıda bulunanlar

Yorumlar