İçeriğe geç

Ultralytics YOLO ile Model Eğitimi

Ultralytics YOLO ekosistemi ve entegrasyonları

Giriş

Derin öğrenme modelini eğitmek, modele veri beslemeyi ve doğru tahminler yapabilmesi için parametrelerini ayarlamayı içerir. Ultralytics YOLO11'deki Eğitim modu, modern donanım özelliklerini tam olarak kullanarak nesne algılama modellerinin etkili ve verimli bir şekilde eğitilmesi için tasarlanmıştır. Bu kılavuz, YOLO11'in güçlü özelliklerini kullanarak kendi modellerinizi eğitmeye başlamak için ihtiyacınız olan tüm ayrıntıları kapsamayı amaçlamaktadır.



İzle: Google Colab'da Özel Veri Kümeniz Üzerinde Bir YOLO Modelini Eğitme.

Eğitim için Neden Ultralytics YOLO'yu Seçmelisiniz?

İşte YOLO11'in Eğitim modunu tercih etmek için bazı önemli nedenler:

  • Verimlilik: İster tek bir GPU kurulumunda olun, ister birden çok GPU'ya ölçekleniyor olun, donanımınızdan en iyi şekilde yararlanın.
  • Çok Yönlülük: COCO, VOC ve ImageNet gibi hazır olanlara ek olarak özel veri kümeleri üzerinde de eğitim yapın.
  • Kullanıcı Dostu: Basit ama güçlü CLI ve python arayüzleri sayesinde anlaşılır bir eğitim deneyimi.
  • Hiperparametre Esnekliği: Model performansını ince ayar yapmak için geniş bir özelleştirilebilir hiperparametre yelpazesi.

Eğitim Modunun Temel Özellikleri

Aşağıdakiler, YOLO11'in Eğitim modunun bazı önemli özellikleridir:

  • Otomatik Veri Kümesi İndirme: COCO, VOC ve ImageNet gibi standart veri kümeleri, ilk kullanımda otomatik olarak indirilir.
  • Çoklu GPU Desteği: Eğitim çabalarınızı süreci hızlandırmak için birden fazla GPU arasında sorunsuz bir şekilde ölçeklendirin.
  • Hiperparametre Yapılandırması: YAML yapılandırma dosyaları veya CLI argümanları aracılığıyla hiperparametreleri değiştirme seçeneği.
  • Görselleştirme ve İzleme: Daha iyi içgörüler için eğitim metriklerinin gerçek zamanlı takibi ve öğrenme sürecinin görselleştirilmesi.

İpucu

  • COCO, VOC, ImageNet gibi YOLO11 veri kümeleri ve diğer birçok veri kümesi ilk kullanımda otomatik olarak indirilir, örneğin: yolo train data=coco.yaml

Kullanım Örnekleri

COCO8 veri kümesinde 100 için YOLO11n'i eğitin epok 640 görüntü boyutunda. Eğitim cihazı, kullanılarak belirtilebilir device argümanı. Herhangi bir argüman geçirilmezse, GPU device=0 mümkünse kullanılacaktır, aksi takdirde device='cpu' kullanılacaktır. Eğitim argümanlarının tam listesi için aşağıdaki Argümanlar bölümüne bakın.

Windows Çoklu İşleme Hatası

Windows'ta, bir RuntimeError eğitimi bir komut dosyası olarak başlatırken. Bir ekleyin if __name__ == "__main__": çözmek için eğitim kodunuzdan önce bu bloğu ekleyin.

Tek GPU ve CPU Eğitim Örneği

Cihaz otomatik olarak belirlenir. Bir GPU mevcutsa, o kullanılacaktır (varsayılan CUDA cihazı 0), aksi takdirde eğitim CPU'da başlayacaktır.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.yaml")  # build a new model from YAML
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n.yaml").load("yolo11n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

Çoklu GPU Eğitimi

Çoklu GPU eğitimi, eğitim yükünü birden fazla GPU'ya dağıtarak mevcut donanım kaynaklarının daha verimli kullanılmasını sağlar. Bu özellik hem python API'si hem de komut satırı arayüzü aracılığıyla kullanılabilir. Çoklu GPU eğitimini etkinleştirmek için, kullanmak istediğiniz GPU cihaz kimliklerini belirtin.

Çoklu GPU Eğitim Örneği

2 GPU ile eğitmek için, CUDA 0 ve 1 cihazları aşağıdaki komutları kullanır. Gerektiğinde ek GPU'lara genişletin.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=0,1

# Use the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1

Boşta GPU Eğitimi

Boşta GPU Eğitimi, çoklu GPU sistemlerinde en az kullanılan GPU'ların otomatik olarak seçilmesini sağlayarak, manuel GPU seçimi olmadan kaynak kullanımını optimize eder. Bu özellik, kullanım metriklerine ve VRAM kullanılabilirliğine göre mevcut GPU'ları tanımlar.

Boşta GPU Eğitimi Örneği

Eğitim için en boşta olan GPU'ları otomatik olarak seçmek ve kullanmak için şunu kullanın: -1 cihaz parametresi. Bu, özellikle paylaşımlı bilgi işlem ortamlarında veya birden çok kullanıcısı olan sunucularda kullanışlıdır.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
# Start training using the single most idle GPU
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1

# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1

Otomatik seçim algoritması, aşağıdaki özelliklere sahip GPU'lara öncelik verir:

  1. Daha düşük akım kullanım yüzdeleri
  2. Daha yüksek kullanılabilir bellek (boş VRAM)
  3. Daha düşük sıcaklık ve güç tüketimi

Bu özellik, özellikle paylaşılan bilgi işlem ortamlarında veya farklı modellerde birden çok eğitim işi çalıştırırken değerlidir. Sistem koşullarının değişmesine otomatik olarak uyum sağlayarak, manuel müdahale olmadan optimum kaynak tahsisini sağlar.

Apple Silicon MPS Eğitimi

Ultralytics YOLO modellerine entegre edilmiş Apple silikon çipler için destekle, artık modellerinizi güçlü Metal Performance Shaders (MPS) çerçevesini kullanan cihazlarda eğitmek mümkün. MPS, Apple'ın özel silikonunda hesaplama ve görüntü işleme görevlerini yürütmenin yüksek performanslı bir yolunu sunar.

Apple silikon çiplerinde eğitimi etkinleştirmek için, eğitim sürecini başlatırken cihazınız olarak 'mps'yi belirtmelisiniz. Aşağıda, bunu python'da ve komut satırında nasıl yapabileceğinize dair bir örnek verilmiştir:

MPS Eğitim Örneği

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
# Start training from a pretrained *.pt model using MPS
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

Apple silikon çiplerinin işlem gücünden yararlanırken, bu eğitim görevlerinin daha verimli işlenmesini sağlar. Daha ayrıntılı rehberlik ve gelişmiş yapılandırma seçenekleri için lütfen PyTorch MPS belgelerine bakın.

Kesintiye Uğramış Eğitimlere Devam Etme

Daha önce kaydedilmiş bir durumdan eğitime devam etmek, derin öğrenme modelleriyle çalışırken çok önemli bir özelliktir. Bu, eğitim sürecinin beklenmedik bir şekilde kesintiye uğradığı veya bir modeli yeni verilerle veya daha fazla epok için eğitmeye devam etmek istediğiniz gibi çeşitli senaryolarda işe yarayabilir.

Eğitime devam edildiğinde, Ultralytics YOLO, ağırlıkları son kaydedilen modelden yükler ve ayrıca optimize edici durumunu, öğrenme oranı zamanlayıcısını ve epok numarasını geri yükler. Bu, eğitim sürecine kaldığı yerden sorunsuz bir şekilde devam etmenizi sağlar.

Ultralytics YOLO'da eğitimi kolayca devam ettirebilirsiniz. resume argümanını True olarak ayarlayarak train yöntemi ve kısmen eğitilmiş model ağırlıklarını içeren dosyanın yolunu belirterek. .pt dosyasının yolunu belirterek.

Aşağıda, Python kullanarak ve komut satırı aracılığıyla kesintiye uğramış bir eğitime nasıl devam edileceğine dair bir örnek bulunmaktadır:

Eğitime Devam Etme Örneği

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)
# Resume an interrupted training
yolo train resume model=path/to/last.pt

Ayarlanarak resume=True, 'in train fonksiyonu, 'path\/to\/last.pt' dosyasında depolanan durumu kullanarak kaldığı yerden eğitime devam edecektir. Eğer resume argümanı atlanırsa veya False, 'in train olarak ayarlanırsa, fonksiyon yeni bir eğitim oturumu başlatacaktır.

Kontrol noktalarının varsayılan olarak her epoch'un sonunda veya save_period argümanı kullanılarak sabit aralıklarla kaydedildiğini unutmayın, bu nedenle bir eğitim çalıştırmasına devam etmek için en az 1 epoch'u tamamlamanız gerekir.

Eğitim Ayarları

YOLO modelleri için eğitim ayarları, eğitim sürecinde kullanılan çeşitli hiperparametreleri ve yapılandırmaları kapsar. Bu ayarlar, modelin performansını, hızını ve doğruluğunu etkiler. Temel eğitim ayarları arasında batch boyutu, öğrenme oranı, momentum ve ağırlık azalması bulunur. Ek olarak, optimize edici seçimi, kayıp fonksiyonu ve eğitim veri kümesi kompozisyonu da eğitim sürecini etkileyebilir. Performansı optimize etmek için bu ayarların dikkatli bir şekilde ayarlanması ve deneyler yapılması çok önemlidir.

ArgümanTürVarsayılanAçıklama
modelstrNoneEğitim için model dosyasını belirtir. Önceden eğitilmiş bir modelin veya bir .pt modelin veya bir .yaml yapılandırma dosyasının yolunu kabul eder. Model yapısını tanımlamak veya ağırlıkları başlatmak için gereklidir.
datastrNoneVeri kümesi yapılandırma dosyasının yolu (örn. coco8.yaml'). Bu dosya, eğitim ve doğrulama verilerinin yolları, sınıf adları ve sınıf sayısı dahil olmak üzere veri kümesine özgü parametreleri içerir.
epochsint100Toplam eğitim epoch sayısı. Her epoch, tüm veri kümesi üzerinde tam bir geçişi temsil eder. Bu değeri ayarlamak, eğitim süresini ve model performansını etkileyebilir.
timefloatNoneSaat cinsinden maksimum eğitim süresi. Ayarlanırsa, epochs argümanını geçersiz kılar ve eğitimin belirtilen süre sonra otomatik olarak durmasını sağlar. Zaman kısıtlı eğitim senaryoları için kullanışlıdır.
patienceint100Eğitimi erken durdurmadan önce doğrulama metriklerinde iyileşme olmadan beklenecek epoch sayısı. Performansın plato çizdiği durumlarda eğitimi durdurarak aşırı öğrenmeyi önlemeye yardımcı olur.
batchint veya float16Batch boyutu, üç mod ile: bir tamsayı olarak ayarlanır (örn. batch=16), %60 GPU bellek kullanım için otomatik mod (batch=-1), veya belirtilen kullanım oranıyla otomatik mod (batch=0.70).
imgszint640Eğitim için hedef görüntü boyutu. Görüntüler, belirtilen değere eşit kenarlara sahip kareler halinde yeniden boyutlandırılır (eğer rect=False), YOLO modelleri için en boy oranını korur ancak RT-DETR için korumaz. Modeli etkiler doğruluğu ve hesaplama karmaşıklığı üzerinde etkilidir.
saveboolTrueEğitim kontrol noktalarının ve nihai model ağırlıklarının kaydedilmesini sağlar. Eğitime devam etmek veya model dağıtımı için kullanışlıdır.
save_periodint-1Model kontrol noktalarını kaydetme sıklığı, epoch olarak belirtilir. -1 değeri bu özelliği devre dışı bırakır. Uzun eğitim oturumları sırasında ara modelleri kaydetmek için kullanışlıdır.
cacheboolFalseVeri kümesi resimlerinin bellekte (True/ram), diskte (disk), veya devre dışı bırakılarak (False) önbelleğe alınmasını sağlar. Artan bellek kullanımı pahasına disk G/Ç'sini azaltarak eğitim hızını artırır.
deviceint veya str veya listNoneEğitim için işlem cihaz(lar)ını belirtir: tek bir GPU (device=0), birden çok GPU (device=[0,1]), CPU (device=cpu), Apple silikon için MPS (device=mps), veya en boşta olan GPU'nun otomatik seçimi (device=-1) veya birden fazla boşta GPU (device=[-1,-1])
workersint8Veri yükleme için çalışan iş parçacığı sayısı (her RANK Multi-GPU eğitimi için). Veri ön işleme ve modele besleme hızını etkiler, özellikle çoklu GPU kurulumlarında kullanışlıdır.
projectstrNoneEğitim çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerin düzenli bir şekilde saklanmasını sağlar.
namestrNoneEğitim çalıştırmasının adı. Eğitim günlüklerinin ve çıktılarının saklandığı proje klasörü içinde bir alt dizin oluşturmak için kullanılır.
exist_okboolFalseDoğru ise, mevcut bir proje/ad dizininin üzerine yazılmasına izin verir. Önceki çıktıları manuel olarak temizlemeye gerek kalmadan yinelemeli deneyler için kullanışlıdır.
pretrainedbool veya strTrueEğitime önceden eğitilmiş bir modelden başlayıp başlamayacağını belirler. Ağırlıkların yükleneceği belirli bir modelin boolean değeri veya dize yolu olabilir. Eğitim verimliliğini ve model performansını artırır.
optimizerstr'auto'Eğitim için optimize edici seçimi. Seçenekler arasında SGD, Adam, AdamW, NAdam, RAdam, RMSProp vb. veya model yapılandırmasına göre otomatik seçim için auto bulunur. Yakınsama hızını ve kararlılığını etkiler.
seedint0Eğitim için rastgele tohumu ayarlar, aynı yapılandırmalara sahip çalıştırmalarda sonuçların tekrarlanabilirliğini sağlar.
deterministicboolTrueDeterministik algoritma kullanımını zorlar, tekrarlanabilirliği sağlar ancak deterministik olmayan algoritmalardaki kısıtlama nedeniyle performansı ve hızı etkileyebilir.
single_clsboolFalseÇok sınıflı veri kümelerindeki tüm sınıfları eğitim sırasında tek bir sınıf olarak ele alır. İkili sınıflandırma görevleri için veya sınıflandırmadan ziyade nesne varlığına odaklanırken kullanışlıdır.
classeslist[int]NoneÜzerinde eğitim yapılacak sınıf kimliklerinin bir listesini belirtir. Eğitim sırasında yalnızca belirli sınıflara odaklanmak ve bunları filtrelemek için kullanışlıdır.
rectboolFalseMinimum dolgu stratejisini etkinleştirir; bir gruptaki görüntüler, en uzun kenarı imgszeşit olacak şekilde ortak bir boyuta ulaşmak için minimum düzeyde doldurulur. Verimliliği ve hızı artırabilir ancak model doğruluğunu etkileyebilir.
multi_scaleboolFalseArtırarak/azaltarak çok ölçekli eğitimi etkinleştirir. imgsz ...faktörüne kadar 0.5 eğitim sırasında. Modeli birden fazla ile daha doğru olacak şekilde eğitir imgsz çıkarım sırasında.
cos_lrboolFalseDönemler boyunca bir kosinüs eğrisini izleyerek öğrenme oranını ayarlayan bir kosinüs öğrenme oranı zamanlayıcısı kullanır. Daha iyi yakınsama için öğrenme oranını yönetmeye yardımcı olur.
close_mosaicint10Tamamlanmadan önce eğitimi stabilize etmek için son N dönemde mozaik veri artırmayı devre dışı bırakır. 0'a ayarlamak bu özelliği devre dışı bırakır.
resumeboolFalseSon kaydedilen kontrol noktasından eğitime devam eder. Model ağırlıklarını, optimize edici durumunu ve dönem sayısını otomatik olarak yükler ve eğitime sorunsuz bir şekilde devam eder.
ampboolTrueOtomatik Karışık Duyarlıklı (AMP) eğitimini etkinleştirir, bellek kullanımını azaltır ve doğruluğu en az etkileyerek eğitimi hızlandırabilir.
fractionfloat1.0Eğitim için kullanılacak veri kümesinin oranını belirtir. Tam veri kümesinin bir alt kümesi üzerinde eğitime olanak tanır; deneyler için veya kaynaklar sınırlı olduğunda kullanışlıdır.
profileboolFalseModel dağıtımını optimize etmek için kullanışlı olan eğitim sırasında ONNX ve TensorRT hızlarının profilini çıkarmayı sağlar.
freezeint veya listNoneModelin ilk N katmanını veya belirtilen katmanlarını indeksine göre dondurarak eğitilebilir parametrelerin sayısını azaltır. İnce ayar veya transfer öğrenimi için kullanışlıdır.
lr0float0.01Başlangıç öğrenme oranı (yani SGD=1E-2, Adam=1E-3). Bu değeri ayarlamak, model ağırlıklarının ne kadar hızlı güncellendiğini etkileyerek optimizasyon süreci için çok önemlidir.
lrffloat0.01Başlangıç oranının bir kesri olarak nihai öğrenme oranı = (lr0 * lrf), zaman içinde öğrenme oranını ayarlamak için zamanlayıcılarla birlikte kullanılır.
momentumfloat0.937SGD için momentum faktörü veya Adam optimize ediciler için beta1, geçmiş gradyanların mevcut güncellemeye dahil edilmesini etkiler.
weight_decayfloat0.0005Aşırı öğrenmeyi önlemek için büyük ağırlıkları cezalandıran L2 düzenlileştirme terimi.
warmup_epochsfloat3.0Öğrenme oranı ısınması için dönem sayısı, eğitimi erken aşamada stabilize etmek için öğrenme oranını düşük bir değerden başlangıç öğrenme oranına kademeli olarak artırır.
warmup_momentumfloat0.8Isınma aşaması için başlangıç momentumu, ısınma süresi boyunca ayarlanan momentuma kademeli olarak ayarlanır.
warmup_bias_lrfloat0.1Isınma aşamasında bias parametreleri için öğrenme oranı, ilk dönemlerde model eğitimini stabilize etmeye yardımcı olur.
boxfloat7.5Kayıp fonksiyonundaki kutu kaybı bileşeninin ağırlığı, sınırlayıcı kutu koordinatlarını doğru bir şekilde tahmin etmeye ne kadar önem verildiğini etkiler.
clsfloat0.5Toplam kayıp fonksiyonunda sınıflandırma kaybının ağırlığı, diğer bileşenlere göre doğru sınıf tahmininin önemini etkiler.
dflfloat1.5Dağıtım odaklı kaybın ağırlığı, ince taneli sınıflandırma için belirli YOLO sürümlerinde kullanılır.
posefloat12.0Poz tahmini için eğitilmiş modellerde poz kaybının ağırlığı, poz anahtar noktalarını doğru bir şekilde tahmin etmeye verilen önemi etkiler.
kobjfloat2.0Poz tahmini modellerinde anahtar nokta nesnelliği kaybının ağırlığı, algılama güvenini poz doğruluğu ile dengeler.
nbsint64Kayıp normalleştirme için nominal toplu iş boyutu.
overlap_maskboolTrueNesne maskelerinin eğitim için tek bir maskede birleştirilip birleştirilmeyeceğini veya her nesne için ayrı tutulup tutulmayacağını belirler. Çakışma durumunda, birleştirme sırasında daha küçük maske daha büyük maskenin üzerine yerleştirilir.
mask_ratioint4Eğitim sırasında kullanılan maskelerin çözünürlüğünü etkileyen segmentasyon maskeleri için alt örnekleme oranı.
dropoutfloat0.0Sınıflandırma görevlerinde düzenlileştirme için bırakma oranı (dropout rate), eğitim sırasında birimleri rastgele çıkararak aşırı öğrenmeyi önler.
valboolTrueEğitim sırasında doğrulamayı etkinleştirir ve modelin performansının ayrı bir veri kümesi üzerinde periyodik olarak değerlendirilmesine olanak tanır.
plotsboolFalseModel performansı ve öğrenme ilerlemesi hakkında görsel bilgiler sağlayan eğitim ve doğrulama metriklerinin yanı sıra tahmin örneklerinin grafiklerini oluşturur ve kaydeder.
compilebool veya strFalsePyTorch 2.x'i etkinleştirir torch.compile ile grafik derleme backend='inductor'. Kabul Ediyor True"default", False → devre dışı bırakır veya aşağıdaki gibi bir dize modu "default", "reduce-overhead", "max-autotune-no-cudagraphs". Desteklenmezse bir uyarı ile istekliye geri döner.

Yığın Boyutu Ayarları Hakkında Not

batch argümanı üç şekilde yapılandırılabilir:

  • Sabit Yığın Boyutu: Bir tamsayı değeri ayarlayın (örneğin, batch=16), doğrudan parti başına düşen resim sayısını belirtir.
  • Otomatik Mod (%60 GPU Belleği): Kullanın batch=-1 yaklaşık %60 CUDA bellek kullanımı için toplu iş boyutunu otomatik olarak ayarlamak için.
  • Kullanım Oranı ile Otomatik Mod: Bir kesir değeri ayarlayın (örneğin, batch=0.70), belirtilen GPU bellek kullanımının yüzdesine göre toplu iş boyutunu ayarlamak için.

Artırma Ayarları ve Hiperparametreler

Artırma teknikleri, eğitim verilerine değişkenlik katarak YOLO modellerinin sağlamlığını ve performansını artırmak için gereklidir ve modelin görülmemiş verilere daha iyi genellemesine yardımcı olur. Aşağıdaki tablo, her bir artırma argümanının amacını ve etkisini özetlemektedir:

ArgümanTürVarsayılanDesteklenen GörevlerAralıkAçıklama
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Görüntünün renk tonunu, renk tekerleğinin bir bölümü kadar ayarlar ve renk değişkenliği sağlar. Modelin farklı aydınlatma koşullarında genelleme yapmasına yardımcı olur.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Görüntünün doygunluğunu bir kesir oranında değiştirerek renklerin yoğunluğunu etkiler. Farklı çevre koşullarını simüle etmek için kullanışlıdır.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Modelin çeşitli aydınlatma koşullarında iyi performans göstermesine yardımcı olarak, görüntünün değerini (parlaklığını) bir kesir oranında değiştirir.
degreesfloat0.0detect, segment, pose, obb0.0 - 180Görüntüyü belirtilen derece aralığında rastgele döndürerek, modelin nesneleri çeşitli yönlerde tanıma yeteneğini geliştirir.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Görüntüyü yatay ve dikey olarak görüntü boyutunun bir kısmı kadar kaydırır, bu da kısmen görünen nesneleri algılamayı öğrenmeye yardımcı olur.
scalefloat0.5detect, segment, pose, obb, classify>=0.0Görüntüyü bir kazanç faktörüyle ölçeklendirerek, nesneleri kameradan farklı mesafelerdeymiş gibi simüle eder.
shearfloat0.0detect, segment, pose, obb-180 - +180Görüntüyü belirtilen bir dereceye kadar kaydırır ve nesnelerin farklı açılardan görüntülenmesi etkisini taklit eder.
perspectivefloat0.0detect, segment, pose, obb0.0 - 0.001Modelin nesneleri 3B uzayda anlama yeteneğini geliştirmek için görüntüye rastgele bir perspektif dönüşümü uygular.
flipudfloat0.0detect, segment, pose, obb, classify0.0 - 1.0Nesnenin özelliklerini etkilemeden veri değişkenliğini artırarak görüntüyü belirtilen olasılıkla baş aşağı çevirir.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Simetrik nesneleri öğrenmek ve veri kümesi çeşitliliğini artırmak için görüntüyü belirtilen olasılıkla soldan sağa çevirir.
bgrfloat0.0detect, segment, pose, obb0.0 - 1.0Yanlış kanal sıralamasına karşı sağlamlığı artırmak için belirtilen olasılıkla görüntü kanallarını RGB'den BGR'ye çevirir.
mosaicfloat1.0detect, segment, pose, obb0.0 - 1.0Dört eğitim görüntüsünü bir araya getirerek farklı sahne kompozisyonlarını ve nesne etkileşimlerini simüle eder. Karmaşık sahne anlayışı için oldukça etkilidir.
mixupfloat0.0detect, segment, pose, obb0.0 - 1.0İki görüntüyü ve etiketlerini harmanlayarak kompozit bir görüntü oluşturur. Etiket gürültüsü ve görsel değişkenlik sağlayarak modelin genelleme yeteneğini geliştirir.
cutmixfloat0.0detect, segment, pose, obb0.0 - 1.0İki görüntünün bölümlerini birleştirerek, belirgin bölgeleri korurken kısmi bir karışım oluşturur. Oklüzyon senaryoları oluşturarak modelin sağlamlığını artırır.
copy_pastefloat0.0segment0.0 - 1.0Nesne örneklerini artırmak için nesneleri görüntüler arasında kopyalar ve yapıştırır.
copy_paste_modestrflipsegment-Şunları belirtir copy-paste kullanılacak strateji. Seçenekler şunları içerir: 'flip' ve 'mixup'.
auto_augmentstrrandaugmentclassify-Önceden tanımlanmış bir büyütme politikası uygular ('randaugment', 'autoaugment', veya 'augmix') görsel çeşitliliği artırarak model performansını iyileştirmek için.
erasingfloat0.4classify0.0 - 0.9Modeli daha az belirgin özelliklere odaklanmaya teşvik etmek için eğitim sırasında görüntünün bölgelerini rastgele siler.
augmentationslist{{ augmentations }}detect, segment, pose, obb-Gelişmiş veri artırımı için özel Albumentations dönüşümleriPython yalnızcaPython API). Özel büyütme ihtiyaçları için dönüştürme nesnelerinin bir listesini kabul eder.

Bu ayarlar, veri kümesinin ve görevin özel gereksinimlerini karşılamak için ayarlanabilir. Farklı değerlerle denemeler yapmak, en iyi model performansına yol açan optimum artırma stratejisini bulmaya yardımcı olabilir.

Bilgi

Eğitim artırma işlemleri hakkında daha fazla bilgi için referans bölümüne bakın.

Günlüğe Kaydetme

Bir YOLO11 modelini eğitirken, modelin zaman içindeki performansını takip etmek değerli olabilir. İşte bu noktada günlük kaydı devreye giriyor. Ultralytics YOLO, üç tür günlük kaydedici için destek sağlar: Comet, ClearML ve TensorBoard.

Bir logger kullanmak için, yukarıdaki kod parçacığında açılır menüden seçin ve çalıştırın. Seçilen logger kurulacak ve başlatılacaktır.

Comet

Comet, veri bilimcilerinin ve geliştiricilerin deneyleri ve modelleri izlemesine, karşılaştırmasına, açıklamasına ve optimize etmesine olanak tanıyan bir platformdur. Gerçek zamanlı metrikler, kod farklılıkları ve hiperparametre takibi gibi işlevler sağlar.

Comet'i kullanmak için:

Örnek

# pip install comet_ml
import comet_ml

comet_ml.init()

Comet hesabınıza web sitelerinde giriş yapmayı ve API anahtarınızı almayı unutmayın. Deneylerinizi kaydetmek için bunu ortam değişkenlerinize veya komut dosyanıza eklemeniz gerekecektir.

ClearML

ClearML, deneylerin takibini otomatikleştiren ve kaynakların verimli bir şekilde paylaşılmasına yardımcı olan açık kaynaklı bir platformdur. Ekiplerin ML çalışmalarını daha verimli bir şekilde yönetmelerine, yürütmelerine ve yeniden üretmelerine yardımcı olmak için tasarlanmıştır.

ClearML'yi kullanmak için:

Örnek

# pip install clearml
import clearml

clearml.browser_login()

Bu komut dosyasını çalıştırdıktan sonra, tarayıcıda ClearML hesabınızda oturum açmanız ve oturumunuzu doğrulamanız gerekecektir.

TensorBoard

TensorBoard, TensorFlow için bir görselleştirme araç setidir. TensorFlow grafiğinizi görselleştirmenize, grafiğinizin yürütülmesiyle ilgili nicel metrikleri çizmenize ve içinden geçen resimler gibi ek verileri göstermenize olanak tanır.

Google Colab'de TensorBoard'u kullanmak için:

Örnek

load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

TensorBoard'u yerel olarak kullanmak için aşağıdaki komutu çalıştırın ve sonuçları şu adreste görüntüleyin: http://localhost:6006/.

Örnek

tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Bu, TensorBoard'u yükleyecek ve eğitim günlüklerinizin kaydedildiği dizine yönlendirecektir.

Günlüğünüzü kurduktan sonra, model eğitimine devam edebilirsiniz. Tüm eğitim ölçümleri, seçtiğiniz platformda otomatik olarak günlüğe kaydedilecek ve modelinizin zaman içindeki performansını izlemek, farklı modelleri karşılaştırmak ve iyileştirme alanlarını belirlemek için bu günlüklere erişebilirsiniz.

SSS

Ultralytics YOLO11 kullanarak bir nesne algılama modeli nasıl eğitirim?

Ultralytics YOLO11 kullanarak bir nesne algılama modelini eğitmek için Python API'sini veya CLI'yı kullanabilirsiniz. Aşağıda her ikisi için de bir örnek bulunmaktadır:

Tek GPU ve CPU Eğitim Örneği

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Daha fazla ayrıntı için Eğitim Ayarları bölümüne bakın.

Ultralytics YOLO11'in Eğitim modunun temel özellikleri nelerdir?

Ultralytics YOLO11'in Eğitim modunun temel özellikleri şunlardır:

  • Otomatik Veri Kümesi İndirme: COCO, VOC ve ImageNet gibi standart veri kümelerini otomatik olarak indirir.
  • Çoklu GPU Desteği: Daha hızlı işleme için eğitimi birden çok GPU'ya ölçeklendirin.
  • Hiperparametre Yapılandırması: YAML dosyaları veya CLI argümanları aracılığıyla hiperparametreleri özelleştirin.
  • Görselleştirme ve İzleme: Daha iyi içgörüler için eğitim metriklerinin gerçek zamanlı takibi.

Bu özellikler, eğitimi ihtiyaçlarınıza göre verimli ve özelleştirilebilir hale getirir. Daha fazla ayrıntı için Eğitim Modunun Temel Özellikleri bölümüne bakın.

Ultralytics YOLO11'de kesintiye uğramış bir oturumdan eğitime nasıl devam ederim?

Kesintiye uğramış bir oturumdan eğitime devam etmek için şunu ayarlayın: resume argümanını True ve son kaydedilen kontrol noktasının yolunu belirtin.

Eğitime Devam Etme Örneği

from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)
yolo train resume model=path/to/last.pt

Daha fazla bilgi için Kesintiye Uğramış Eğitimlere Devam Etme bölümüne bakın.

YOLO11 modellerini Apple silikon çiplerinde eğitebilir miyim?

Evet, Ultralytics YOLO11, Metal Performance Shaders (MPS) çerçevesini kullanarak Apple silikon çiplerinde eğitimi destekler. Eğitim cihazınız olarak 'mps'yi belirtin.

MPS Eğitim Örneği

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

Daha fazla ayrıntı için Apple Silicon MPS Eğitimi bölümüne bakın.

Yaygın eğitim ayarları nelerdir ve bunları nasıl yapılandırırım?

Ultralytics YOLO11, yığın boyutu, öğrenme oranı, epok sayısı ve daha fazlası gibi çeşitli eğitim ayarlarını argümanlar aracılığıyla yapılandırmanıza olanak tanır. İşte kısa bir genel bakış:

ArgümanVarsayılanAçıklama
modelNoneEğitim için model dosyasının yolu.
dataNoneVeri kümesi yapılandırma dosyasının yolu (örn. coco8.yaml).
epochs100Toplam eğitim dönemi sayısı.
batch16Yığın boyutu, tamsayı veya otomatik mod olarak ayarlanabilir.
imgsz640Eğitim için hedef görüntü boyutu.
deviceNoneEğitim için kullanılan hesaplama cihaz(lar)ı, örneğin cpu, 0, 0,1, veya mps.
saveTrueEğitim kontrol noktalarının ve nihai model ağırlıklarının kaydedilmesini sağlar.

Eğitim ayarları hakkında derinlemesine bir kılavuz için Eğitim Ayarları bölümüne bakın.



📅 2 yıl önce oluşturuldu ✏️ 5 gün önce güncellendi
glenn-jocherLaughing-qUltralyticsAssistantMatthewNoyceY-T-GJairajJanglejk4eRizwanMunawardependabotfcakyonBurhan-Q

Yorumlar