Ultralytics'in Ultralytics YOLOv5 model optimizasyonu için Comet ile nasıl ortaklık kurduğunu keşfedin: gerçek zamanlı izleme, kolaylaştırılmış işbirliği ve gelişmiş tekrarlanabilirlik.

Ultralytics'in Ultralytics YOLOv5 model optimizasyonu için Comet ile nasıl ortaklık kurduğunu keşfedin: gerçek zamanlı izleme, kolaylaştırılmış işbirliği ve gelişmiş tekrarlanabilirlik.
Ultralytics olarak, YOLOv5 gibi harika açık kaynaklı araçlarımızın araştırma ve geliştirme çalışmalarını finanse etmemize ve bunları herkes için ücretsiz tutmamıza yardımcı olmak için diğer startup'larla ticari ortaklıklar kuruyoruz. Bu makale, bu ortaklara ait bağlı kuruluş bağlantıları içerebilir.
En yeni ortağımız 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ştiriyor.
Comet, modellerinizi, veri kümelerinizi ve metriklerinizi izlemek için güçlü bir araçtır. Hatta her çalıştırma için yeniden üretilebilirlik ve sorunsuz hata ayıklama sağlamak amacıyla sisteminizi ve ortam değişkenlerinizi günlüğe kaydeder. Notları hangi notların tutulacağını sihirli bir şekilde bilen sanal bir asistana sahip olmak gibi. 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!
Ayrıca, Comet çalışmanızı asla kaybetmemenizi sağlar ve sonuçları paylaşmayı ve her boyuttaki ekiplerle işbirliği yapmayı kolaylaştırır!
YOLOv5, bilgisayar görüşü yolculuğunuz için harika bir başlangıç noktasıdır. Modelinizin performansını artırmak ve üretime hazır hale getirmek için, sonuçları Comet gibi bir deney izleme aracında kaydetmeniz gerekir.
Comet ve YOLOv5 entegrasyonu 3 ana özellik sunar:
Bu kılavuz, YOLOv5'in Comet ile nasıl kullanılacağını kapsayacaktır.
Peki, deneylerinizi gerçek zamanlı olarak izlemeye hazır mısınız? Haydi başlayalım!
Pip install comet_ml
Comet'i YOLOv5 ile yapılandırmanın iki yolu vardır.
Kimlik bilgilerinizi ortam değişkenleri aracılığıyla ayarlayabilir veya çalışma dizininizde bir .comet.config dosyası oluşturup kimlik bilgilerinizi orada ayarlayabilirsiniz.
export COMET_API_KEY=export COMET_PROJECT_NAME= # Bu varsayılan olarak 'yolov5' olacaktır
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# COCO128 üzerinde 5 epoch için YOLOv5s'i eğitinpython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt
Bu kadar!
Comet, hiperparametrelerinizi, komut satırı argümanlarınızı, eğitim ve doğrulama metriklerinizi otomatik olarak kaydeder. Çalışmalarınızı Comet UI'da görselleştirebilir ve analiz edebilirsiniz.
Burada tamamlanmış bir çalıştırma örneğine göz atın.
Ya da daha iyisi, bu Colab Not Defteri'nde kendiniz deneyin.
Varsayılan olarak, Comet aşağıdaki öğeleri günlüğe kaydedecektir:
Comet, eğitim komut dosyasına veya ortam değişkenlerine iletilen komut satırı işaretleri aracılığıyla ek verileri günlüğe kaydetmek için yapılandırılabilir.
export COMET_MODE=online # Comet'in 'online' veya 'offline' modda çalıştırılıp çalıştırılmayacağını ayarlayın. Varsayılan olarak online'dır. export COMET_MODEL_NAME= #Kaydedilen model için adı ayarlayın. Varsayılan olarak yolov5'tir export COMET_LOG_CONFUSION_MATRIX=false # Comet Karışıklık Matrisi günlüğünü devre dışı bırakmak için ayarlayın. Varsayılan olarak true'dur export COMET_MAX_IMAGE_UPLOADS= # Comet'e kaç adet toplam görüntü tahmini günlüğe kaydedileceğini kontrol eder. Varsayılan olarak 100'dür. export COMET_LOG_PER_CLASS_METRICS=true # Eğitim sonunda algılanan her sınıf için değerlendirme metriklerini günlüğe kaydetmek için ayarlayın. Varsayılan olarak false'dur export COMET_DEFAULT_CHECKPOINT_FILENAME= # Farklı bir kontrol noktasından eğitime devam etmek isterseniz bunu ayarlayın. Varsayılan olarak 'last.pt'dir export COMET_LOG_BATCH_LEVEL_METRICS=true # Eğitim metriklerini toplu iş düzeyinde günlüğe kaydetmek isterseniz bunu ayarlayın. Varsayılan olarak false'dur. export COMET_LOG_PREDICTIONS=true # Model tahminlerinin günlüğe kaydedilmesini devre dışı bırakmak için bunu false olarak ayarlayın
Modelleri Comet'e kaydetme varsayılan olarak devre dışıdır. Etkinleştirmek için, eğitim komut dosyasına save-period argümanını iletin. Bu, günlüğe kaydedilen kontrol noktalarını, save-period tarafından sağlanan aralık değerine göre Comet'e kaydedecektir.
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--save-period 1
Varsayılan olarak, model tahminleri (görüntüler, temel doğruluk etiketleri ve sınırlayıcı kutular) Comet'e kaydedilecektir. bbox_interval komut satırı argümanını ileterek, günlüğe kaydedilen tahminlerin sıklığını ve ilgili görüntüleri kontrol edebilirsiniz. Tahminler, Comet'in 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 batch boyutuna ayarlanacaktı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
YOLOv5'ten tahminleri kaydederken, Comet her tahmin kümesiyle ilişkili görüntüleri de kaydeder. Varsayılan olarak, maksimum 100 doğrulama görüntüsü kaydedilir. COMET_MAX_IMAGE_UPLOADS ortam değişkenini kullanarak bu sayıyı artırabilir veya azaltabilirsiniz.
env COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1
Her sınıf için mAP, kesinlik, geri çağırma ve f1 değerlerini kaydetmek için COMET_LOG_PER_CLASS_METRICS ortam değişkenini kullanın.
env COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt
Verilerinizi Comet Artifacts kullanarak saklamak isterseniz, upload_dataset işaretini kullanarak bunu yapabilirsiniz.
Veri kümesi, YOLOv5 belgelerinde açıklanan şekilde düzenlenmiştir. Veri kümesi yapılandırma yaml dosyasının coco128.yaml dosyasıyla aynı biçimde olması gerekir.
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
Verileri doğrudan Comet UI'da önizleyebilirsiniz.
Artifact'ler sürüm kontrollüdür ve veri kümesi hakkında meta veri eklemeyi de destekler. Comet, veri kümesi yaml dosyanızdaki meta verileri otomatik olarak günlüğe kaydeder.
Comet Artifacts'ten bir veri kümesi kullanmak istiyorsanız, veri kümesi yaml dosyanızdaki yol değişkenini aşağıdaki Artifact kaynak URL'sini gösterecek şekilde ayarlayın.
# artifact.yaml dosyasının içeriği path: "comet:///:"
Ardından, bu dosyayı eğitim komut dosyanıza aşağıdaki şekilde 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ızda nasıl aktığının izlenmesini sağlar. Burada, yüklediğiniz veri kümesini kullanan tüm deneyleri gösteren bir grafik görebilirsiniz.
Eğitiminiz herhangi bir nedenle kesintiye uğrarsa, örneğin internet bağlantısı kesilirse, devam ettirme işaretini ve Comet Çalıştırma Yolunu kullanarak eğitime devam edebilirsiniz.
Çalıştırma Yolu şu biçime sahiptir: comet://././.
Bu, çalıştırmayı kesintiden önceki durumuna geri yükleyecektir; 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 kaydetmeye devam edecektir.
python train.py \--resume "comet://"
YOLOv5 ayrıca Comet'in Optimizer'ı ile entegre edilmiştir ve bu da hiperparametre taramalarını Comet UI'da görselleştirmeyi kolaylaştırır.
Comet Optimizer'ı yapılandırmak için, sweep hakkındaki bilgileri içeren bir JSON dosyası oluşturmanız gerekecektir.
Örnek bir dosya şu konumda 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 betiği, train.py ile aynı argümanları kabul eder. Sweep'inize ek argümanlar geçirmek isterseniz, bunları betikten sonra eklemeniz yeterlidir.
python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \--save-period 1 \--bbox_interval 1
comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"
Comet, sweep sonuçlarınızı görselleştirmenin birçok yolunu sunar. Tamamlanmış bir sweep içeren bir projeye buradan göz atın:
YOLOv5 modellerinizi (eğitim süreçlerinden üretim izlemeye kadar) yönetmek, görselleştirmek ve optimize etmek için Comet ile entegrasyonumuzu kullanmaya başlayın.
Ve elbette, Ultralytics Topluluğu'na katılın; burası YOLOv5 eğitimi, doğrulama ve dağıtımı hakkında soru sormak ve ipuçları paylaşmak için bir yerdir.