Ultralytics YOLO ile Model Eğitimi
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("yolov8n.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=yolov8n.pt epochs=100 imgsz=640 device=-1
# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=-1,-1
Otomatik seçim algoritması, aşağıdaki özelliklere sahip GPU'lara öncelik verir:
- Daha düşük akım kullanım yüzdeleri
- Daha yüksek kullanılabilir bellek (boş VRAM)
- 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üman | Tür | Varsayılan | Açıklama |
---|---|---|---|
model |
str |
None |
Eğ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. |
data |
str |
None |
Veri 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. |
epochs |
int |
100 |
Toplam 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. |
time |
float |
None |
Saat 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. |
patience |
int |
100 |
Eğ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. |
batch |
int veya float |
16 |
Batch 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 ). |
imgsz |
int veya list |
640 |
Eğitim için hedef resim boyutu. Tüm resimler, modele verilmeden önce bu boyuta yeniden boyutlandırılır. Model doğruluğunu ve hesaplama karmaşıklığını etkiler. |
save |
bool |
True |
Eğ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_period |
int |
-1 |
Model 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. |
cache |
bool |
False |
Veri 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. |
device |
int veya str veya list |
None |
Eğ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] ) |
workers |
int |
8 |
Veri 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. |
project |
str |
None |
Eğitim çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerin düzenli bir şekilde saklanmasını sağlar. |
name |
str |
None |
Eğ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_ok |
bool |
False |
Doğ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. |
pretrained |
bool veya str |
True |
Eğ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. |
optimizer |
str |
'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. |
seed |
int |
0 |
Eğitim için rastgele tohumu ayarlar, aynı yapılandırmalara sahip çalıştırmalarda sonuçların tekrarlanabilirliğini sağlar. |
deterministic |
bool |
True |
Deterministik algoritma kullanımını zorlar, tekrarlanabilirliği sağlar ancak deterministik olmayan algoritmalardaki kısıtlama nedeniyle performansı ve hızı etkileyebilir. |
single_cls |
bool |
False |
Ç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. |
classes |
list[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. |
rect |
bool |
False |
Dikdörtgen eğitimini etkinleştirir, minimum dolgu için toplu iş bileşimini optimize eder. Verimliliği ve hızı artırabilir ancak model doğruluğunu etkileyebilir. |
multi_scale |
bool |
False |
Artı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_lr |
bool |
False |
Dö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_mosaic |
int |
10 |
Tamamlanmadan ö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. |
resume |
bool |
False |
Son 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. |
amp |
bool |
True |
Otomatik 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. |
fraction |
float |
1.0 |
Eğ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. |
profile |
bool |
False |
Model 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. |
freeze |
int veya list |
None |
Modelin 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. |
lr0 |
float |
0.01 |
Baş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. |
lrf |
float |
0.01 |
Baş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. |
momentum |
float |
0.937 |
SGD için momentum faktörü veya Adam optimize ediciler için beta1, geçmiş gradyanların mevcut güncellemeye dahil edilmesini etkiler. |
weight_decay |
float |
0.0005 |
Aşırı öğrenmeyi önlemek için büyük ağırlıkları cezalandıran L2 düzenlileştirme terimi. |
warmup_epochs |
float |
3.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_momentum |
float |
0.8 |
Isınma aşaması için başlangıç momentumu, ısınma süresi boyunca ayarlanan momentuma kademeli olarak ayarlanır. |
warmup_bias_lr |
float |
0.1 |
Isınma aşamasında bias parametreleri için öğrenme oranı, ilk dönemlerde model eğitimini stabilize etmeye yardımcı olur. |
box |
float |
7.5 |
Kayı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. |
cls |
float |
0.5 |
Toplam 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. |
dfl |
float |
1.5 |
Dağıtım odaklı kaybın ağırlığı, ince taneli sınıflandırma için belirli YOLO sürümlerinde kullanılır. |
pose |
float |
12.0 |
Poz 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. |
kobj |
float |
2.0 |
Poz tahmini modellerinde anahtar nokta nesnelliği kaybının ağırlığı, algılama güvenini poz doğruluğu ile dengeler. |
nbs |
int |
64 |
Kayıp normalleştirme için nominal toplu iş boyutu. |
overlap_mask |
bool |
True |
Nesne 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_ratio |
int |
4 |
Eğitim sırasında kullanılan maskelerin çözünürlüğünü etkileyen segmentasyon maskeleri için alt örnekleme oranı. |
dropout |
float |
0.0 |
Sı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. |
val |
bool |
True |
Eğ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. |
plots |
bool |
False |
Model 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. |
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üman | Tür | Varsayılan | Aralık | Açıklama |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Gö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_s |
float |
0.7 |
0.0 - 1.0 |
Gö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_v |
float |
0.4 |
0.0 - 1.0 |
Modelin ç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. |
degrees |
float |
0.0 |
0.0 - 180 |
Görüntüyü belirtilen derece aralığında rastgele döndürerek, modelin nesneleri çeşitli yönlerde tanıma yeteneğini geliştirir. |
translate |
float |
0.1 |
0.0 - 1.0 |
Gö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. |
scale |
float |
0.5 |
>=0.0 |
Görüntüyü bir kazanç faktörüyle ölçeklendirerek, nesneleri kameradan farklı mesafelerdeymiş gibi simüle eder. |
shear |
float |
0.0 |
-180 - +180 |
Görüntüyü belirtilen bir dereceye kadar kaydırır ve nesnelerin farklı açılardan görüntülenmesi etkisini taklit eder. |
perspective |
float |
0.0 |
0.0 - 0.001 |
Modelin nesneleri 3B uzayda anlama yeteneğini geliştirmek için görüntüye rastgele bir perspektif dönüşümü uygular. |
flipud |
float |
0.0 |
0.0 - 1.0 |
Nesnenin özelliklerini etkilemeden veri değişkenliğini artırarak görüntüyü belirtilen olasılıkla baş aşağı çevirir. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Simetrik 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. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Yanlış 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. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Dö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. |
mixup |
float |
0.0 |
0.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. |
cutmix |
float |
0.0 |
0.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_paste |
float |
0.0 |
0.0 - 1.0 |
Yalnızca segmentasyon. Nesne örneklerini artırmak için nesneleri görüntüler arasında kopyalar ve yapıştırır. |
copy_paste_mode |
str |
flip |
- | Yalnızca Segmentasyon. Şunu belirtir: copy-paste kullanılacak strateji. Seçenekler şunları içerir: 'flip' ve 'mixup' . |
auto_augment |
str |
randaugment |
- | Yalnızca sınıflandırma. Önceden tanımlanmış bir artırma ilkesi uygular ('randaugment' , 'autoaugment' , veya 'augmix' ) görsel çeşitliliği artırarak model performansını iyileştirmek için. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Yalnızca sınıflandırma. Modelin daha az belirgin özelliklere odaklanmasını teşvik etmek için eğitim sırasında görüntünün bölgelerini rastgele siler. |
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üman | Varsayılan | Açıklama |
---|---|---|
model |
None |
Eğitim için model dosyasının yolu. |
data |
None |
Veri kümesi yapılandırma dosyasının yolu (örn. coco8.yaml ). |
epochs |
100 |
Toplam eğitim dönemi sayısı. |
batch |
16 |
Yığın boyutu, tamsayı veya otomatik mod olarak ayarlanabilir. |
imgsz |
640 |
Eğitim için hedef görüntü boyutu. |
device |
None |
Eğitim için kullanılan hesaplama cihaz(lar)ı, örneğin cpu , 0 , 0,1 , veya mps . |
save |
True |
Eğ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.