─░├žeri─če ge├ž

ClearML Entegrasyon

Temizle|MLTemizle|ML

Hakk─▒nda ClearML

ClearML size zaman kazand─▒rmak i├žin tasarlanm─▒┼č a├ž─▒k kaynakl─▒ bir ara├ž kutusudur ÔĆ▒´ŞĆ.

­čöĘ Deney y├Âneticisinde her YOLOv5 e─čitim ├žal─▒┼čmas─▒n─▒ takip edin

­čöž Entegre ClearML Veri Versiyonlama Arac─▒ ile ├Âzel e─čitim verilerinizi versiyonlay─▒n ve kolayca eri┼čin

­čöŽ ClearML Agent'─▒ kullanarak YOLOv5 e─čitim ├žal─▒┼čmalar─▒n─▒z─▒ uzaktan e─čitin ve izleyin

­čöČ ClearML Hiperparametre Optimizasyonunu kullanarak en iyi mAP'yi elde edin

­čöş Yeni e─čitti─činiz YOLOv5 modelinizi ClearML Serving kullanarak sadece birka├ž komutla bir API 'ye d├Ân├╝┼čt├╝r├╝n


Ve ├žok daha fazlas─▒. Bu ara├žlardan ka├ž─▒n─▒ kullanmak istedi─činiz size kalm─▒┼č, deney y├Âneticisine ba─čl─▒ kalabilir veya hepsini etkileyici bir boru hatt─▒na zincirleyebilirsiniz!

ClearML skaler g├Âsterge tablosu



­čŽż ─░┼čleri Ayarlama

Deneylerinizi ve/veya verilerinizi takip etmek i├žin ClearML adresinin bir sunucuyla ileti┼čim kurmas─▒ gerekir. Bir tane edinmek i├žin 2 se├žene─činiz var:

Ya ClearML Hosted Service 'e ├╝cretsiz kaydolun ya da kendi sunucunuzu kurun, buraya bak─▒n. Sunucu bile a├ž─▒k kaynakl─▒d─▒r, bu nedenle hassas verilerle u─čra┼č─▒yor olsan─▒z bile, gitmekte iyi olmal─▒s─▒n─▒z!

  • Y├╝kleme clearml python Paket:

    pip install clearml
    
  • Kimlik bilgileri olu┼čturarak ClearML SDK'y─▒ sunucuya ba─člay─▒n (sa─č ├╝stten Ayarlar -> ├çal─▒┼čma Alan─▒ -> Yeni kimlik bilgileri olu┼čtur'a gidin), ard─▒ndan a┼ča─č─▒daki komutu ├žal─▒┼čt─▒r─▒n ve talimatlar─▒ izleyin:

    clearml-init
    

─░┼čte bu kadar! Bitirdiniz ­čśÄ


­čÜÇ E─čitim YOLOv5 ile ClearML

ClearML deney takibini etkinle┼čtirmek i├žin ClearML pip paketini y├╝klemeniz yeterlidir.

pip install clearml>=1.2.0

Bu, YOLOv5 e─čitim beti─či ile entegrasyonu m├╝mk├╝n k─▒lacakt─▒r. ┼×u andan itibaren her e─čitim ├žal─▒┼čmas─▒ ClearML deney y├Âneticisi taraf─▒ndan yakalanacak ve saklanacakt─▒r.

E─čer de─či┼čtirmek istiyorsan─▒z project_name veya task_name'yi kullan─▒n. --project ve --name arg├╝manlar─▒ train.py komut dosyas─▒nda, varsay─▒lan olarak proje YOLOv5 ve g├Ârev Training. L├ťTFEN D─░KKAT: ClearML ┼čunlar─▒ kullan─▒r / 'yi alt projeler i├žin bir s─▒n─▒rlay─▒c─▒ olarak kullan─▒rken dikkatli olun. / proje ad─▒n─▒zda!

python train.py --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

veya ├Âzel proje ve g├Ârev ad─▒ ile:

python train.py --project my_project --name my_training --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

Bu yakalayacak:

  • Kaynak kodu + taahh├╝t edilmemi┼č de─či┼čiklikler
  • Y├╝kl├╝ paketler
  • (Hiper) parametreler
  • Model dosyalar─▒ (kullan─▒m --save-period n her n epokta bir kontrol noktas─▒ kaydetmek i├žin)
  • Konsol ├ž─▒kt─▒s─▒
  • Skalalar (mAP_0.5, mAP_0.5:0.95, kesinlik, geri ├ža─č─▒rma, kay─▒plar, ├Â─črenme oranlar─▒, ...)
  • Makine ayr─▒nt─▒lar─▒, ├žal─▒┼čma zaman─▒, olu┼čturma tarihi vb. gibi genel bilgiler.
  • Etiket korelogram─▒ ve kar─▒┼č─▒kl─▒k matrisi gibi ├╝retilen t├╝m grafikler
  • D├Ânem ba┼č─▒na s─▒n─▒rlay─▒c─▒ kutulara sahip g├Âr├╝nt├╝ler
  • D├Ânem ba┼č─▒na mozaik
  • Epok ba┼č─▒na do─črulama g├Âr├╝nt├╝leri

Bu ├žok fazla de─čil mi? ­čĄ» ┼×imdi, e─čitim ilerlememize genel bir bak─▒┼č elde etmek i├žin t├╝m bu bilgileri ClearML kullan─▒c─▒ aray├╝z├╝nde g├Ârselle┼čtirebiliriz. Tablo g├Âr├╝n├╝m├╝ne ├Âzel s├╝tunlar ekleyin (├Ârne─čin mAP_0.5 gibi), b├Âylece en iyi performans g├Âsteren modeli kolayca s─▒ralayabilirsiniz. Ya da birden fazla deney se├žin ve bunlar─▒ do─črudan kar┼č─▒la┼čt─▒r─▒n!

Hiperparametre optimizasyonu ve uzaktan y├╝r├╝tme gibi t├╝m bu bilgilerle yapabilece─čimiz daha da fazlas─▒ var, bu y├╝zden nas─▒l ├žal─▒┼čt─▒─č─▒n─▒ g├Ârmek istiyorsan─▒z okumaya devam edin!

­čöŚ Veri K├╝mesi S├╝r├╝m Y├Ânetimi

Verilerinizi kodunuzdan ayr─▒ olarak s├╝r├╝mlendirmek genellikle iyi bir fikirdir ve en son s├╝r├╝m├╝ edinmeyi de kolayla┼čt─▒r─▒r. Bu veri havuzu, bir veri k├╝mesi s├╝r├╝m kimli─či sa─člamay─▒ destekler ve hen├╝z orada de─čilse verileri ald─▒─č─▒ndan emin olur. Bunun yan─▒ s─▒ra, bu i┼č ak─▒┼č─▒ kullan─▒lan veri seti kimli─čini de g├Ârev parametrelerinin bir par├žas─▒ olarak kaydeder, b├Âylece hangi deneyde hangi verilerin kullan─▒ld─▒─č─▒n─▒ her zaman kesin olarak bilirsiniz!

ClearML Veri Seti Aray├╝z├╝

Veri Setinizi Haz─▒rlay─▒n

YOLOv5 deposu, bilgilerini i├žeren YAML dosyalar─▒n─▒ kullanarak bir dizi farkl─▒ veri k├╝mesini destekler. Varsay─▒lan olarak veri k├╝meleri ../datasets klas├Âr├╝n├╝ depo k├Âk klas├Âr├╝ne g├Âre ayarlay─▒n. Yani e─čer indirdiyseniz coco128 YAML'deki ba─člant─▒y─▒ kullanarak veya yolov5 taraf─▒ndan sa─članan komut dosyalar─▒yla veri k├╝mesi, bu klas├Âr yap─▒s─▒n─▒ elde edersiniz:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

Ancak bu istedi─činiz herhangi bir veri k├╝mesi olabilir. Bu klas├Âr yap─▒s─▒na uydu─čunuz s├╝rece kendinizinkini kullanmaktan ├žekinmeyin.

Ard─▒ndan,ÔÜá´ŞĆcopy ilgili YAML dosyas─▒n─▒ folderÔÜá´ŞĆ veri k├╝mesinin k├Âkdizinine ekleyin. Bu YAML dosyalar─▒ ClearML 'un veri k├╝mesini d├╝zg├╝n bir ┼čekilde kullanmas─▒ i├žin ihtiya├ž duyaca─č─▒ bilgileri i├žerir. Elbette bunu kendiniz de yapabilirsiniz, sadece ├Ârnek YAML'lerin yap─▒s─▒n─▒ takip edin.

Temel olarak a┼ča─č─▒daki anahtarlara ihtiyac─▒m─▒z var: path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml  # <---- HERE!
        |_ LICENSE
        |_ README.txt

Veri Setinizi Y├╝kleyin

Bu veri k├╝mesini ClearML adresine s├╝r├╝ml├╝ bir veri k├╝mesi olarak almak i├žin veri k├╝mesi k├Âk klas├Âr├╝ne gidin ve a┼ča─č─▒daki komutu ├žal─▒┼čt─▒r─▒n:

cd coco128
clearml-data sync --project YOLOv5 --name coco128 --folder .

Komut clearml-data sync asl─▒nda k─▒salt─▒lm─▒┼č bir komuttur. Bu komutlar─▒ birbiri ard─▒na da ├žal─▒┼čt─▒rabilirsiniz:

# Optionally add --parent <parent_dataset_id> if you want to base
# this version on another dataset version, so no duplicate files are uploaded!
clearml-data create --name coco128 --project YOLOv5
clearml-data add --files .
clearml-data close

Bir ClearML Veri K├╝mesi Kullanarak E─čitimi ├çal─▒┼čt─▒r─▒n

Art─▒k bir ClearML veri setiniz oldu─čuna g├Âre, bunu ├žok basit bir ┼čekilde ├Âzel YOLOv5 ­čÜÇ modellerini e─čitmek i├žin kullanabilirsiniz!

python train.py --img 640 --batch 16 --epochs 3 --data clearml://<your_dataset_id> --weights yolov5s.pt --cache


­čĹÇ Hiperparametre Optimizasyonu

Art─▒k deneylerimizi ve verilerimizi s├╝r├╝mlendirdi─čimize g├Âre, ├╝zerine neler in┼ča edebilece─čimize bir g├Âz atman─▒n zaman─▒ geldi!

Kod bilgilerini, kurulu paketleri ve ortam ayr─▒nt─▒lar─▒n─▒ kullanarak deneyin kendisi art─▒k tamamen yeniden ├╝retilebilir. Asl─▒nda, ClearML bir deneyi klonlaman─▒za ve hatta parametrelerini de─či┼čtirmenize izin verir. Daha sonra bu yeni parametrelerle otomatik olarak yeniden ├žal─▒┼čt─▒rabiliriz, HPO'nun yapt─▒─č─▒ temelde budur!

Hiperparametre optimizasyonunu yerel olarak ├žal─▒┼čt─▒rmak i├žin, sizin i├žin ├Ânceden haz─▒rlanm─▒┼č bir komut dosyas─▒ ekledik. Bir e─čitim g├Ârevinin en az bir kez ├žal─▒┼čt─▒r─▒ld─▒─č─▒ndan emin olun, b├Âylece ClearML deney y├Âneticisinde olur, asl─▒nda onu klonlayaca─č─▒z ve hiperparametrelerini de─či┼čtirece─čiz.

Bunun kimli─čini doldurman─▒z gerekecek template task adresinde bulunan komut dosyas─▒nda utils/loggers/clearml/hpo.py ve sonra sadece ├žal─▒┼čt─▒r─▒n :) De─či┼čtirebilirsiniz task.execute_locally() i├žin task.execute() ClearML kuyru─čuna koymak ve bunun yerine uzak bir temsilcinin ├╝zerinde ├žal─▒┼čmas─▒n─▒ sa─člamak i├žin.

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

HPO

­čĄ» Uzaktan Y├╝r├╝tme (geli┼čmi┼č)

HPO'yu yerel olarak ├žal─▒┼čt─▒rmak ger├žekten kullan─▒┼čl─▒d─▒r, ancak bunun yerine deneylerimizi uzak bir makinede ├žal─▒┼čt─▒rmak istersek ne olur? Belki tesisinizde ├žok g├╝├žl├╝ bir GPU makinesine eri┼čiminiz vard─▒r veya bulut GPU'lar─▒ kullanmak i├žin biraz b├╝t├ženiz vard─▒r. ─░┼čte bu noktada ClearML Agent devreye giriyor. Arac─▒n─▒n neler yapabildi─čine buradan g├Âz at─▒n:

K─▒sacas─▒: deney y├Âneticisi taraf─▒ndan izlenen her deney, farkl─▒ bir makinede yeniden ├╝retmek i├žin yeterli bilgi i├žerir (y├╝kl├╝ paketler, taahh├╝t edilmemi┼č de─či┼čiklikler vb.). Dolay─▒s─▒yla bir ClearML ajan─▒ tam olarak bunu yapar: gelen g├Ârevler i├žin bir kuyru─ču dinler ve bir tane buldu─čunda, ortam─▒ yeniden olu┼čturur ve skalalar─▒, grafikleri vb. deney y├Âneticisine bildirmeye devam ederken ├žal─▒┼čt─▒r─▒r.

Herhangi bir makineyi (bir bulut sanal makinesi, yerel bir GPU makinesi, kendi diz├╝st├╝ bilgisayar─▒n─▒z ... ) sadece ├žal─▒┼čt─▒rarak bir ClearML arac─▒s─▒na d├Ân├╝┼čt├╝rebilirsiniz:

clearml-agent daemon --queue <queues_to_listen_to> [--docker]

Klonlama, D├╝zenleme ve S─▒raya Alma

Ajan─▒m─▒z ├žal─▒┼č─▒rken, ona biraz i┼č verebiliriz. HPO b├Âl├╝m├╝nden bir g├Ârevi klonlayabilece─čimizi ve hiperparametreleri d├╝zenleyebilece─čimizi hat─▒rl─▒yor musunuz? Bunu aray├╝zden de yapabiliriz!

­č¬ä Deneyi sa─č t─▒klayarak klonlay─▒n

­čÄ» Hiperparametreleri olmas─▒n─▒ istedi─činiz ┼čekilde d├╝zenleyin

G├Ârevi sa─č t─▒klayarak herhangi bir kuyru─ča atay─▒n

UI'den bir g├Ârev ├ža─č─▒rma

Bir G├Ârevi Uzaktan Y├╝r├╝tme

┼×imdi yukar─▒da a├ž─▒klad─▒─č─▒m─▒z gibi bir g├Ârevi klonlayabilir veya mevcut komut dosyan─▒z─▒ ekleyerek i┼čaretleyebilirsiniz task.execute_remotely() ve y├╝r├╝t├╝ld├╝─č├╝nde, temsilcinin ├╝zerinde ├žal─▒┼čmaya ba┼člamas─▒ i├žin bir s─▒raya konacakt─▒r!

YOLOv5 e─čitim beti─čini uzaktan ├žal─▒┼čt─▒rmak i├žin tek yapman─▒z gereken, clearml kaydedicisi olu┼čturulduktan sonra bu sat─▒r─▒ training.py beti─čine eklemektir:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE
        # Data_dict is either None is user did not choose for ClearML dataset or is filled in by ClearML
        data_dict = loggers.clearml.data_dict
# ...

Bu de─či┼čiklikten sonra e─čitim kodunu ├žal─▒┼čt─▒r─▒rken, python kodu bu sat─▒ra kadar ├žal─▒┼čt─▒racak, daha sonra kodu paketleyecek ve bunun yerine kuyru─ča g├Ânderecektir!

Otomatik ├Âl├žeklendirme ├žal─▒┼čanlar─▒

ClearML otomatik ├Âl├žekleyicilerle de geliyor! Bu ara├ž, se├žti─činiz bulutta (AWS, GCP, Azure) otomatik olarak yeni uzak makineler olu┼čturacak ve kuyrukta alg─▒lanan deneyler oldu─čunda bunlar─▒ sizin i├žin ClearML arac─▒lar─▒na d├Ân├╝┼čt├╝recektir. G├Ârevler i┼člendikten sonra, otomatik ├Âl├žekleyici uzak makineleri otomatik olarak kapat─▒r ve siz de ├Âdeme yapmay─▒ b─▒rak─▒rs─▒n─▒z!

Autoscalers ba┼člang─▒├ž videosuna a┼ča─č─▒dan g├Âz at─▒n.

Videoyu izleyin



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (7), RizwanMunawar (1)

Yorumlar