
Comet 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ı ele alacaktır.
Comet 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 edip görselleştir, hiperparametrelerini, veri setlerini ve model kontrol noktalarını kaydet ve model tahminlerini Comet Custom Panels ile görselleştir! Comet, çalışmalarının takibini asla kaybetmemeni sağlar ve sonuçları paylaşmayı ve her boyuttaki ekiple iş birliği yapmayı kolaylaştırır!
Başlarken
Comet'i Kur
pip install comet_mlComet Kimlik Bilgilerini Yapılandır
Comet'i YOLOv5 ile 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'Ya da ç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'Eğitim Betiğini Ç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 kaydedecektir. Çalışmalarını Comet arayüzünde görselleştirebilir ve analiz edebilirsin.

Bir Örneği Dene!
Tamamlanmış bir çalışmanın örneğine buradan göz at.
Ya da daha iyisi, bu Colab Notebook'ta kendin dene:
Otomatik Olarak Kaydet
Varsayılan olarak, Comet aşağıdaki öğeleri kaydedecektir:
Metrikler
- Eğitim ve doğrulama verileri için Box Loss, Object Loss, Classification Loss
- Doğrulama verileri için mAP_0.5, mAP_0.5:0.95 metrikleri
- Doğrulama verileri için Hassasiyet ve Anımsama
Parametreler
- Model Hiperparametreleri
- Komut satırı seçenekleri aracılığıyla iletilen tüm parametreler
Görselleştirmeler
- Doğrulama verileri üzerindeki model tahminlerinin Karmaşıklık Matrisi
- Tüm sınıflar genelinde PR ve F1 eğrileri için grafikler
- Sınıf Etiketlerinin Korelogamı
Comet Günlüğünü Yapılandır
Comet, eğitim betiğine iletilen komut satırı bayrakları veya ortam değişkenleri aracılığıyla ek verileri 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 predictionsKontrol Noktalarını Comet ile Kaydetme
Modellerin Comet'e kaydedilmesi varsayılan olarak devre dışıdır. Etkinleştirmek için eğitim betiğine save-period argümanını ilet. Bu, save-period tarafından sağlanan aralık değerine göre kaydedilen kontrol noktalarını Comet'e kaydedecektir:
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--save-period 1Model Tahminlerini Kaydetme
Varsayılan olarak, model tahminleri (görüntüler, gerçek etiketler ve sınırlayıcı kutular) Comet'e kaydedilir.
Kaydedilen tahminlerin ve ilişkili görüntülerin sıklığını bbox_interval komut satırı argümanını ileterek kontrol edebilirsin. Tahminler, Comet'in Nesne Algılama Özel Paneli kullanılarak görselleştirilebilir. Bu sıklık, her dönem başına N'inci veri kümesine karşılık gelir. Aşağıdaki örnekte, her dönem için her 2. veri kümesini kaydediyoruz.
Not: YOLOv5 doğrulama veri yükleyicisi varsayılan olarak 32 yığın boyutu kullanır, bu nedenle kayıt sıklığını buna göre ayarlaman gerekecektir.
İşte Paneli kullanan örnek bir proje
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--bbox_interval 2Comet'e kaydedilen Tahmin Görüntüleri sayısını kontrol etme
YOLOv5'ten tahminleri kaydederken, Comet her tahmin setiyle ilişkili görüntüleri kaydeder. Varsayılan olarak, en fazla 100 doğrulama görüntüsü kaydedilir. COMET_MAX_IMAGE_UPLOADS ortam değişkenini kullanarak bu sayıyı 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 1Sınıf Düzeyi Metriklerini Kaydetme
Her sınıf için mAP, hassasiyet, anımsama ve f1 değerlerini 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.ptComet Artifacts'e Veri Seti Yükleme
Verilerini Comet Artifacts kullanarak depolamak istersen, bunu upload_dataset bayrağını kullanarak yapabilirsin.
Veri seti, YOLOv5 belgelerinde açıklandığı gibi düzenlenmelidir. Veri seti 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_datasetYüklenen veri setini Comet Çalışma Alanındaki Artifacts sekmesinde bulabilirsin:

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

Artifacts sürümlüdür ve ayrıca veri seti hakkında meta veri eklemeyi destekler. Comet, veri seti yaml dosyanızdan meta verileri otomatik olarak kaydedecektir:

Kayıtlı bir Artifact 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 betiğine şu şekilde ilet:
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data artifact.yaml \
--weights yolov5s.ptArtifacts ayrıca, deneme iş akışınız boyunca verilerin izini sürmenize olanak tanır. Burada, yüklenen veri setini kullanan tüm deneyleri gösteren bir grafiği görebilirsin:

Eğitim Çalışmasını Devam Ettirme
Eğitim çalışman herhangi bir nedenle (örneğin kesintiye uğrayan internet bağlantısı) durdurulursa, resume bayrağını ve Comet Çalışma Yolunu kullanarak çalışmayı devam ettirebilirsin.
Çalışma Yolu şu biçimdedir: comet://WORKSPACE_NAME/PROJECT_NAME/EXPERIMENT_ID.
Bu, çalışmayı kesintiden önceki durumuna geri yükleyecektir; buna kontrol noktasından modeli geri yükleme, tüm hiperparametreleri ve eğitim argümanlarını geri yükleme ve orijinal çalışmada kullanılmışsa Comet veri seti Artifact'lerini indirme dahildir. Devam ettirilen çalışma, Comet arayüzündeki mevcut Deneye kayıt yapmaya devam edecektir:
python train.py \
--resume "comet://YOUR_RUN_PATH"Comet Optimizer ile Hiperparametre Araması
YOLOv5, Comet'in Optimizer özelliği ile de entegredir, bu da hiperparametre taramalarını Comet arayüzünde görselleştirmeyi basit hale getirir.
Optimizer Taramasını Yapılandırma
Comet Optimizer'ı yapılandırmak için, tarama hakkındaki bilgileri içeren bir JSON dosyası oluşturman gerekecektir. utils/loggers/comet/optimizer_config.json dosyasında örnek bir dosya sağlanmıştır:
python utils/loggers/comet/hpo.py \
--comet_optimizer_config "utils/loggers/comet/optimizer_config.json"hpo.py betiği, train.py ile aynı argümanları kabul eder. Taramanıza ek argümanlar iletmek istersen, bunları betikten sonra eklemen yeterlidir:
python utils/loggers/comet/hpo.py \
--comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \
--save-period 1 \
--bbox_interval 1Sonuçları Görselleştirme
Comet, taramanızın sonuçlarını görselleştirmek için birçok yol sunar. Tamamlanmış bir taramaya sahip projeye buradan göz at.
