İçeriğe geç

Konfigürasyon

YOLO ayarlar ve hiperparametreler modelin performansında, hızında ve doğruluğunda kritik bir rol oynar. Bu ayarlar ve hiperparametreler, eğitim, doğrulama ve tahmin dahil olmak üzere model geliştirme sürecinin çeşitli aşamalarında modelin davranışını etkileyebilir.



İzle: Mastering Ultralytics YOLO : Yapılandırma

Ultralytics komutları aşağıdaki sözdizimini kullanır:

Örnek

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO11 model from a pre-trained weights file
model = YOLO("yolo11n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

Nerede?

Varsayılan ARG değerleri bu sayfada cfg/defaults.yaml dosya.

Görevler

YOLO modelleri algılama, segmentasyon, sınıflandırma ve pozlama gibi çeşitli görevler için kullanılabilir. Bu görevler, ürettikleri çıktı türüne ve çözmek için tasarlandıkları özel soruna göre farklılık gösterir.

  • Tespit etmek: Bir görüntü veya videodaki nesneleri veya ilgilenilen bölgeleri tanımlamak ve konumlandırmak için.
  • Segment: Bir görüntüyü veya videoyu farklı nesnelere veya sınıflara karşılık gelen bölgelere veya piksellere bölmek için.
  • Sınıflandırmak: Bir giriş görüntüsünün sınıf etiketini tahmin etmek için.
  • Poz: Nesneleri tanımlamak ve bir görüntü veya videodaki kilit noktalarını tahmin etmek için.
  • OBB: Uydu veya tıbbi görüntüler için uygun yönlendirilmiş (yani döndürülmüş) sınırlayıcı kutular.
TartışmaVarsayılanAçıklama
task'detect'Yürütülecek YOLO görevini belirtir. Seçenekler şunları içerir detect için nesne algılama, segment segmentasyon için, classify sınıflandırma için, pose poz tahmini için ve obb yönlendirilmiş sınırlayıcı kutular için. Her görev, görüntü ve video analizindeki belirli çıktı türlerine ve sorunlara göre uyarlanmıştır.

Görevler Kılavuzu

Modlar

YOLO modeller, çözmeye çalıştığınız özel soruna bağlı olarak farklı modlarda kullanılabilir. Bu modlar şunları içerir:

  • Eğitmek: Bir YOLO11 modelini özel bir veri kümesi üzerinde eğitmek için.
  • Val: Eğitildikten sonra bir YOLO11 modelini doğrulamak için.
  • Tahmin Et: Yeni görüntüler veya videolar üzerinde eğitilmiş bir YOLO11 modeli kullanarak tahminler yapmak için.
  • Dışa aktarma: Bir YOLO11 modelini dağıtım için kullanılabilecek bir formata dışa aktarmak için.
  • İz: Bir YOLO11 modeli kullanarak nesneleri gerçek zamanlı olarak izlemek için.
  • Kıyaslama: YOLO11 ihracatlarının (ONNX, TensorRT, vb.) hızını ve doğruluğunu kıyaslamak için.
TartışmaVarsayılanAçıklama
mode'train'YOLO modelinin hangi modda çalışacağını belirtir. Seçenekler şunlardır train model eğitimi için, val doğrulama için, predict yeni veriler üzerinde çıkarım yapmak için, export dağıtım formatlarına model dönüşümü için, track nesne takibi için ve benchmark performans değerlendirmesi için. Her mod, geliştirmeden dağıtıma kadar model yaşam döngüsünün farklı aşamaları için tasarlanmıştır.

Modlar Kılavuzu

Tren Ayarları

YOLO modelleri için eğitim ayarları, eğitim süreci sırasında kullanılan çeşitli hiper parametreleri ve yapılandırmaları kapsar. Bu ayarlar modelin performansını, hızını ve doğruluğunu etkiler. Temel eğitim ayarları arasında yığın boyutu, öğrenme hızı, momentum ve ağırlık azalması yer alır. Ayrıca optimize edici, kayıp fonksiyonu ve eğitim veri kümesi bileşimi seçimi de eğitim sürecini etkileyebilir. Bu ayarların dikkatli bir şekilde ayarlanması ve denenmesi performansı optimize etmek için çok önemlidir.

TartışmaVarsayılanAçıklama
modelNoneEğitim için model dosyasını belirtir. Bir model dosyasına giden bir yol kabul eder. .pt ön eğitimli model veya bir .yaml yapılandırma dosyası. Model yapısını tanımlamak veya ağırlıkları başlatmak için gereklidir.
dataNoneVeri kümesi yapılandırma dosyasının yolu (örn, coco8.yaml). Bu dosya, eğitim yolları ve veri kümesine özgü parametreleri içerir. doğrulama veri̇leri̇, sınıf adları ve sınıf sayısı.
epochs100Toplam eğitim epok sayısı. Her epok, tüm veri kümesi üzerinde tam bir geçişi temsil eder. Bu değerin ayarlanması eğitim süresini ve model performansını etkileyebilir.
timeNoneSaat cinsinden maksimum eğitim süresi. Eğer ayarlanırsa, bu epochs argümanı, eğitimin belirtilen süreden sonra otomatik olarak durmasına izin verir. Zaman kısıtlı eğitim senaryoları için kullanışlıdır.
patience100Eğitimi erken durdurmadan önce doğrulama metriklerinde iyileşme olmadan beklenecek epok sayısı. Performans platoları olduğunda eğitimi durdurarak aşırı uyumu önlemeye yardımcı olur.
batch16Parti büyüklüğüüç 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 fraksiyonu (batch=0.70).
imgsz640Eğitim için hedef görüntü boyutu. Tüm görüntüler modele girilmeden önce bu boyuta yeniden boyutlandırılır. Model doğruluğunu ve hesaplama karmaşıklığını etkiler.
saveTrueEğitim kontrol noktalarının ve son model ağırlıklarının kaydedilmesini sağlar. Eğitime veya model dağıtımına devam etmek için kullanışlıdır.
save_period-1Model kontrol noktalarını kaydetme sıklığı, epok cinsinden 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.
cacheFalseVeri kümesi görüntülerinin bellekte önbelleğe alınmasını etkinleştirir (True/ram), disk üzerinde (disk) veya devre dışı bırakır (False). Artan bellek kullanımı pahasına disk I/O'sunu azaltarak eğitim hızını artırır.
deviceNoneEğitim için hesaplama cihaz(lar)ını belirtir: tek bir GPU (device=0), çoklu GPU'lar (device=0,1), CPU (device=cpu) veya Apple silikonu için MPS (device=mps).
workers8Veri yükleme için işçi iş parçacığı sayısı (her RANK eğer ÇokluGPU eğitim). Veri ön işleme ve modele besleme hızını etkiler, özellikle çokluGPU kurulumlarında kullanışlıdır.
projectNoneEğitim çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerin düzenli bir şekilde saklanmasını sağlar.
nameNoneEğitim çalışmasının adı. Proje klasörü içinde eğitim günlüklerinin ve çıktılarının saklandığı bir alt dizin oluşturmak için kullanılır.
exist_okFalseTrue ise, mevcut bir proje/isim dizininin üzerine yazılmasına izin verir. Önceki çıktıları manuel olarak temizlemeye gerek kalmadan yinelemeli denemeler için kullanışlıdır.
pretrainedTrueEğitime önceden eğitilmiş bir modelden başlanıp başlanmayacağını belirler. Boolean bir değer veya ağırlıkların yükleneceği belirli bir modele giden bir dize yolu olabilir. Eğitim verimliliğini ve model performansını artırır.
optimizer'auto'Eğitim için optimize edici seçimi. Seçenekler şunları içerir SGD, Adam, AdamW, NAdam, RAdam, RMSProp vb. veya auto model yapılandırmasına dayalı otomatik seçim için. Yakınsama hızını ve kararlılığı etkiler.
seed0Eğitim için rastgele tohumu ayarlar ve aynı konfigürasyonlara sahip çalıştırmalar arasında sonuçların tekrarlanabilirliğini sağlar.
deterministicTrueDeterministik algoritma kullanımını zorlayarak tekrarlanabilirliği sağlar, ancak deterministik olmayan algoritmalar üzerindeki kısıtlama nedeniyle performansı ve hızı etkileyebilir.
single_clsFalseEğitim sırasında çok sınıflı veri kümelerindeki tüm sınıfları 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.
rectFalseMinimum dolgu için yığın kompozisyonunu optimize ederek dikdörtgen eğitim sağlar. Verimliliği ve hızı artırabilir ancak model doğruluğunu etkileyebilir.
cos_lrFalseEpoklar boyunca bir kosinüs eğrisini takip ederek öğ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_mosaic10Tamamlanmadan önce eğitimi stabilize etmek için son N epokta mozaik veri artırımını devre dışı bırakır. 0 olarak ayarlanması bu özelliği devre dışı bırakır.
resumeFalseSon kaydedilen kontrol noktasından eğitime devam eder. Model ağırlıklarını, optimizer durumunu ve epok sayısını otomatik olarak yükleyerek eğitime sorunsuz bir şekilde devam eder.
ampTrueOtomatik Karma Hassasiyet (AMP) eğitimini etkinleştirerek bellek kullanımını azaltır ve muhtemelen doğruluk üzerinde minimum etkiyle eğitimi hızlandırır.
fraction1.0Veri kümesinin eğitim için kullanılacak kısmını belirtir. Tam veri kümesinin bir alt kümesi üzerinde eğitime izin verir, deneyler için veya kaynaklar sınırlı olduğunda kullanışlıdır.
profileFalseEğitim sırasında ONNX ve TensorRT hızlarının profilinin çıkarılmasını sağlar, model dağıtımını optimize etmek için kullanışlıdır.
freezeNoneModelin ilk N katmanını veya indekse göre belirtilen katmanları dondurarak eğitilebilir parametrelerin sayısını azaltır. İnce ayar veya aktarımlı öğrenme için kullanışlıdır.
lr00.01İlk öğrenme oranı (örn. SGD=1E-2, Adam=1E-3) . Bu değerin ayarlanması optimizasyon süreci için çok önemlidir ve model ağırlıklarının ne kadar hızlı güncelleneceğini etkiler.
lrf0.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.
momentum0.937SGD için momentum faktörü veya Adam optimize ediciler için beta1, geçmiş gradyanların mevcut güncellemeye dahil edilmesini etkiler.
weight_decay0.0005Aşırı uyumu önlemek için büyük ağırlıkları cezalandıran L2 düzenleme terimi.
warmup_epochs3.0Öğrenme hızı ısınması için epok sayısı, eğitimi erkenden stabilize etmek için öğrenme hızını düşük bir değerden başlangıç öğrenme hızına kademeli olarak artırır.
warmup_momentum0.8Isınma aşaması için başlangıç momentumu, ısınma süresi boyunca kademeli olarak ayarlanan momentuma ayarlanır.
warmup_bias_lr0.1Isınma aşamasında önyargı parametreleri için öğrenme oranı, ilk epoklarda model eğitiminin dengelenmesine yardımcı olur.
box7.5Kayıp fonksiyonundaki kutu kaybı bileşeninin ağırlığı, sınırlayıcı kutu koordinatlarının doğru tahmin edilmesine ne kadar önem verildiğini etkiler.
cls0.5Sınıflandırma kaybının toplam kayıp fonksiyonundaki ağırlığı, doğru sınıf tahmininin diğer bileşenlere göre önemini etkiler.
dfl1.5Belirli YOLO sürümlerinde ince taneli sınıflandırma için kullanılan dağıtım odak kaybının ağırlığı.
pose12.0Poz tahmini için eğitilen modellerde poz kaybının ağırlığı, poz anahtar noktalarını doğru bir şekilde tahmin etme vurgusunu etkiler.
kobj2.0Poz tahmin modellerinde anahtar nokta nesnellik kaybının ağırlığı, algılama güvenini poz doğruluğu ile dengeler.
label_smoothing0.0Etiket yumuşatma uygular, sert etiketleri hedef etiketin bir karışımına ve etiketler üzerinde tek tip bir dağılıma yumuşatır, genelleştirmeyi iyileştirebilir.
nbs64Kaybın normalleştirilmesi için nominal parti büyüklüğü.
overlap_maskTrueNesne maskelerinin eğitim için tek bir maskede birleştirilip birleştirilmeyeceğini veya her nesne için ayrı tutulup tutulmayacağını belirler. Üst üste binme durumunda, birleştirme sırasında küçük maske büyük maskenin üzerine bindirilir.
mask_ratio4Segmentasyon maskeleri için aşağı örnekleme oranı, eğitim sırasında kullanılan maskelerin çözünürlüğünü etkiler.
dropout0.0Sınıflandırma görevlerinde düzenli hale getirme için bırakma oranı, eğitim sırasında birimleri rastgele atlayarak aşırı uyumu önler.
valTrueEğitim sırasında doğrulamayı etkinleştirerek model performansının ayrı bir veri kümesi üzerinde periyodik olarak değerlendirilmesine olanak tanır.
plotsFalseEğitim ve doğrulama ölçümlerinin yanı sıra tahmin örneklerinin grafiklerini oluşturur ve kaydeder, model performansı ve öğrenme ilerlemesi hakkında görsel bilgiler sağlar.

Toplu İş Boyutu Ayarları Hakkında Not

Bu batch Bağımsız değişken üç şekilde yapılandırılabilir:

  • Sabit Parti Boyutu: Bir tamsayı değeri ayarlayın (örn. batch=16), doğrudan parti başına görüntü sayısını belirtir.
  • Otomatik Mod (%60 GPU Bellek):Kullanmak batch=-1 yaklaşık %60 CUDA bellek kullanımı için toplu iş boyutunu otomatik olarak ayarlar.
  • Kullanım Fraksiyonlu Otomatik Mod: Bir kesir değeri ayarlayın (örn. batch=0.70) toplu iş boyutunu GPU bellek kullanımının belirtilen kısmına göre ayarlamak için.

Tren Rehberi

Ayarları Tahmin Et

YOLO modelleri için tahmin ayarları, yeni veriler üzerinde çıkarım yaparken modelin performansını, hızını ve doğruluğunu etkileyen bir dizi hiper parametreyi ve yapılandırmayı kapsar. Bu ayarların dikkatli bir şekilde ayarlanması ve denenmesi, belirli bir görev için optimum performans elde etmek için gereklidir. Temel ayarlar arasında güven eşiği, Maksimum Olmayan Bastırma (NMS) eşiği ve dikkate alınan sınıf sayısı yer alır. Tahmin sürecini etkileyen diğer faktörler arasında girdi veri boyutu ve formatı, maskeler veya kutu başına birden fazla etiket gibi tamamlayıcı özelliklerin varlığı ve modelin kullanıldığı özel görev yer almaktadır.

Çıkarım argümanları:

TartışmaTipVarsayılanAçıklama
sourcestr'ultralytics/assets'Çıkarım için veri kaynağını belirtir. Bir görüntü yolu, video dosyası, dizin, URL veya canlı yayınlar için cihaz kimliği olabilir. Çok çeşitli formatları ve kaynakları destekleyerek farklı girdi türlerinde esnek uygulama sağlar.
conffloat0.25Tespitler için minimum güven eşiğini ayarlar. Bu eşiğin altında güvenle tespit edilen nesneler dikkate alınmayacaktır. Bu değerin ayarlanması yanlış pozitiflerin azaltılmasına yardımcı olabilir.
ioufloat0.7Maksimum Olmayan Bastırma (NMS) için Birlik Üzerinde Kesişme (IoU) eşiği. Daha düşük değerler, üst üste binen kutuları ortadan kaldırarak daha az tespitle sonuçlanır, bu da kopyaları azaltmak için kullanışlıdır.
imgszint or tuple640Çıkarım için görüntü boyutunu tanımlar. Tek bir tamsayı olabilir 640 kare yeniden boyutlandırma veya bir (yükseklik, genişlik) tuple için. Doğru boyutlandırma algılamayı iyileştirebilir doğruluk ve işlem hızı.
halfboolFalseDesteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilen yarı hassas (FP16) çıkarımı etkinleştirir.
devicestrNoneÇıkarım için cihazı belirtir (örn, cpu, cuda:0 veya 0). Kullanıcıların CPU, belirli bir GPU veya model yürütme için diğer hesaplama cihazları arasında seçim yapmasına olanak tanır.
max_detint300Görüntü başına izin verilen maksimum algılama sayısı. Modelin tek bir çıkarımda tespit edebileceği toplam nesne sayısını sınırlayarak yoğun sahnelerde aşırı çıktıları önler.
vid_strideint1Video girişleri için kare atlama. Zamansal çözünürlük pahasına işlemeyi hızlandırmak için videolardaki karelerin atlanmasına izin verir. 1 değeri her kareyi işler, daha yüksek değerler kareleri atlar.
stream_bufferboolFalseVideo akışları için gelen çerçevelerin sıraya alınıp alınmayacağını belirler. Eğer Falseyeni kareleri yerleştirmek için eski kareler bırakılır (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer `True' ise, yeni kareleri bir tamponda sıraya koyarak hiçbir karenin atlanmamasını sağlar, ancak çıkarım FPS'si akış FPS'sinden düşükse gecikmeye neden olur.
visualizeboolFalseÇıkarım sırasında model özelliklerinin görselleştirilmesini etkinleştirerek modelin "ne gördüğüne" dair içgörü sağlar. Hata ayıklama ve model yorumlama için kullanışlıdır.
augmentboolFalseTahminler için test zamanı artırımını (TTA) etkinleştirerek çıkarım hızı pahasına tespit sağlamlığını potansiyel olarak iyileştirir.
agnostic_nmsboolFalseFarklı sınıfların örtüşen kutularını birleştiren, sınıftan bağımsız Maksimum Olmayan Bastırma (NMS) özelliğini etkinleştirir. Sınıf çakışmasının yaygın olduğu çok sınıflı algılama senaryolarında kullanışlıdır.
classeslist[int]NoneTahminleri bir dizi sınıf kimliğine göre filtreler. Yalnızca belirtilen sınıflara ait tespitler döndürülür. Çok sınıflı algılama görevlerinde ilgili nesnelere odaklanmak için kullanışlıdır.
retina_masksboolFalseYüksek çözünürlüklü segmentasyon maskeleri döndürür. Döndürülen maskeler (masks.data) etkinleştirilmişse orijinal görüntü boyutuyla eşleşecektir. Devre dışı bırakılırsa, çıkarım sırasında kullanılan görüntü boyutuna sahip olurlar.
embedlist[int]NoneÖzellik vektörlerinin veya katıştırmaların çıkarılacağı katmanları belirtir. Kümeleme veya benzerlik arama gibi sonraki görevler için kullanışlıdır.
projectstrNoneTahmin çıktılarının kaydedildiği proje dizininin adı save etkinleştirilir.
namestrNoneTahmin çalışmasının adı. Proje klasörü içinde tahmin çıktılarının saklanacağı bir alt dizin oluşturmak için kullanılır. save etkinleştirilir.

Görselleştirme argümanları:

TartışmaTipVarsayılanAçıklama
showboolFalseEğer True, açıklamalı görüntüleri veya videoları bir pencerede görüntüler. Geliştirme veya test sırasında anında görsel geri bildirim için kullanışlıdır.
saveboolFalse veya TrueAçıklamalı görüntülerin veya videoların dosyaya kaydedilmesini sağlar. Dokümantasyon, ileri analiz veya sonuçları paylaşmak için kullanışlıdır. CLI kullanıldığında varsayılan değer True, Python kullanıldığında ise False'dir.
save_framesboolFalseVideoları işlerken, tek tek kareleri görüntü olarak kaydeder. Belirli kareleri ayıklamak veya ayrıntılı kare kare analiz için kullanışlıdır.
save_txtboolFalseAlgılama sonuçlarını formata uygun olarak bir metin dosyasına kaydeder [class] [x_center] [y_center] [width] [height] [confidence]. Diğer analiz araçlarıyla entegrasyon için kullanışlıdır.
save_confboolFalseKaydedilen metin dosyalarına güven puanları ekler. İşlem sonrası ve analiz için mevcut ayrıntıları geliştirir.
save_cropboolFalseTespitlerin kırpılmış görüntülerini kaydeder. Veri kümesini büyütmek, analiz etmek veya belirli nesneler için odaklanmış veri kümeleri oluşturmak için kullanışlıdır.
show_labelsboolTrueGörsel çıktıdaki her algılama için etiketleri görüntüler. Algılanan nesnelerin anında anlaşılmasını sağlar.
show_confboolTrueEtiketin yanında her bir tespit için güven puanını görüntüler. Her bir tespit için modelin kesinliği hakkında fikir verir.
show_boxesboolTrueAlgılanan nesnelerin etrafına sınırlayıcı kutular çizer. Görüntülerdeki veya video karelerindeki nesnelerin görsel olarak tanımlanması ve konumlandırılması için gereklidir.
line_widthNone veya intNoneSınırlayıcı kutuların çizgi genişliğini belirtir. Eğer Noneçizgi genişliği görüntü boyutuna göre otomatik olarak ayarlanır. Netlik için görsel özelleştirme sağlar.

Tahmin Kılavuzu

Doğrulama Ayarları

YOLO modelleri için val (doğrulama) ayarları, modelin performansını bir doğrulama veri kümesi üzerinde değerlendirmek için kullanılan çeşitli hiperparametreleri ve yapılandırmaları içerir. Bu ayarlar modelin performansını, hızını ve doğruluğunu etkiler. Yaygın YOLO doğrulama ayarları arasında yığın boyutu, eğitim sırasında doğrulama sıklığı ve performans değerlendirme metrikleri yer alır. Doğrulama sürecini etkileyen diğer faktörler arasında doğrulama veri kümesinin boyutu ve bileşiminin yanı sıra modelin kullanıldığı özel görev de yer alır.

TartışmaTipVarsayılanAçıklama
datastrNoneVeri kümesi yapılandırma dosyasının yolunu belirtir (örn, coco8.yaml). Bu dosya aşağıdakilere giden yolları içerir doğrulama veri̇leri̇, sınıf adları ve sınıf sayısı.
imgszint640Girdi görüntülerinin boyutunu tanımlar. Tüm görüntüler işlenmeden önce bu boyuta yeniden boyutlandırılır.
batchint16Toplu iş başına görüntü sayısını ayarlar. Kullanım -1 GPU bellek kullanılabilirliğine göre otomatik olarak ayarlanan AutoBatch için.
save_jsonboolFalseEğer Truedaha fazla analiz veya diğer araçlarla entegrasyon için sonuçları bir JSON dosyasına kaydeder.
save_hybridboolFalseEğer Trueorijinal açıklamaları ek model tahminleriyle birleştiren etiketlerin hibrit bir versiyonunu kaydeder.
conffloat0.001Tespitler için minimum güven eşiğini ayarlar. Bu eşiğin altında güvene sahip tespitler atılır.
ioufloat0.6Maksimum Olmayan Bastırma (NMS) için Birlik Üzerinde Kesişme (IoU) eşiğini ayarlar. Yinelenen algılamaların azaltılmasına yardımcı olur.
max_detint300Görüntü başına maksimum algılama sayısını sınırlar. Yoğun sahnelerde aşırı algılamaları önlemek için kullanışlıdır.
halfboolTrueYarım hassasiyetli (FP16) hesaplamaya olanak tanıyarak bellek kullanımını azaltır ve doğruluk üzerinde minimum etkiyle hızı potansiyel olarak artırır.
devicestrNoneDoğrulama için cihazı belirtir (cpu, cuda:0vb.). CPU veya GPU kaynaklarının kullanımında esneklik sağlar.
dnnboolFalseEğer True, kullanır OpenCV ONNX model çıkarımı için DNN modülü, aşağıdakilere bir alternatif sunar PyTorch çıkarım yöntemleri.
plotsboolFalseOlarak ayarlandığında Truemodelin performansının görsel olarak değerlendirilmesi için zemin gerçeğine karşı tahminlerin çizimlerini oluşturur ve kaydeder.
rectboolTrueEğer Truegruplama için dikdörtgen çıkarım kullanır, dolguyu azaltır ve potansiyel olarak hızı ve verimliliği artırır.
splitstrvalDoğrulama için kullanılacak veri kümesi bölünmesini belirler (val, testveya train). Performans değerlendirmesi için veri segmenti seçiminde esneklik sağlar.
projectstrNoneDoğrulama çıktılarının kaydedildiği proje dizininin adı.
namestrNoneDoğrulama çalışmasının adı. Proje klasörü içinde doğrulama günlüklerinin ve çıktılarının depolandığı bir alt dizin oluşturmak için kullanılır.

Doğrulama veri kümesinde optimum performans sağlamak ve aşırı uyumu tespit edip önlemek için bu ayarların dikkatli bir şekilde ayarlanması ve denenmesi çok önemlidir.

Val Rehberi

Dışa Aktarma Ayarları

YOLO modelleri için dışa aktarma ayarları, modelin farklı ortamlarda veya platformlarda kullanılmak üzere kaydedilmesi veya dışa aktarılmasıyla ilgili yapılandırmaları ve seçenekleri kapsar. Bu ayarlar modelin performansını, boyutunu ve çeşitli sistemlerle uyumluluğunu etkileyebilir. Temel dışa aktarma ayarları arasında dışa aktarılan model dosyası formatı (örneğin, ONNX, TensorFlow SavedModel ), hedef cihaz (örneğin, CPU, GPU) ve maskeler veya kutu başına birden fazla etiket gibi ek özellikler yer alır. Dışa aktarma süreci, modelin özel görevinden ve hedef ortamın veya platformun gereksinimlerinden veya kısıtlamalarından da etkilenebilir.

TartışmaTipVarsayılanAçıklama
formatstr'torchscript'Dışa aktarılan model için hedef format, örneğin 'onnx', 'torchscript', 'tensorflow'veya diğerleri, çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar.
imgszint veya tuple640Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya bir tuple olabilir (height, width) belirli boyutlar için.
kerasboolFalseiçin Keras formatına aktarmayı etkinleştirir TensorFlow SavedModel TensorFlow hizmet ve API'leri ile uyumluluk sağlar.
optimizeboolFalseTorchScript adresine aktarırken mobil cihazlar için optimizasyon uygular, potansiyel olarak model boyutunu azaltır ve performansı artırır.
halfboolFalseFP16 (yarım hassasiyetli) nicemlemeyi etkinleştirerek model boyutunu azaltır ve desteklenen donanımda çıkarımı potansiyel olarak hızlandırır.
int8boolFalseINT8 nicelemeyi etkinleştirerek modeli daha da sıkıştırır ve özellikle uç cihazlar için minimum doğruluk kaybıyla çıkarımı hızlandırır.
dynamicboolFalseONNX, TensorRT ve OpenVINO dışa aktarımları için dinamik giriş boyutlarına izin vererek değişen görüntü boyutlarının işlenmesinde esnekliği artırır.
simplifyboolTrueModel grafiğini basitleştirir. ONNX ile ihracat onnxslim, potansiyel olarak performansı ve uyumluluğu artırır.
opsetintNoneFarklı ONNX ayrıştırıcıları ve çalışma zamanları ile uyumluluk için ONNX opset sürümünü belirtir. Ayarlanmamışsa, desteklenen en son sürümü kullanır.
workspacefloat4.0Bellek kullanımı ve performansı dengeleyen TensorRT optimizasyonları için GiB cinsinden maksimum çalışma alanı boyutunu ayarlar.
nmsboolFalseCoreML dışa aktarımına, doğru ve verimli algılama sonrası işleme için gerekli olan Maksimum Olmayan Bastırma (NMS) ekler.
batchint1Dışarı aktarma modeli toplu çıkarım boyutunu veya dışarı aktarılan modelin eşzamanlı olarak işleyeceği maksimum görüntü sayısını belirtir predict Mod.
devicestrNoneDışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikonları için MPS (device=mps) veya NVIDIA Jetson için DLA (device=dla:0 veya device=dla:1).

Dışa aktarılan modelin amaçlanan kullanım durumu için optimize edildiğinden ve hedef ortamda etkili bir şekilde çalıştığından emin olmak için bu ayarları dikkatli bir şekilde yapılandırmak çok önemlidir.

İhracat Kılavuzu

Büyütme Ayarları

Güçlendirme 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ülmeyen verilere daha iyi genelleme yapmasına yardımcı olur. Aşağıdaki tabloda her bir güçlendirme argümanının amacı ve etkisi özetlenmektedir:

TartışmaTipVarsayılanMenzilAçıklama
hsv_hfloat0.0150.0 - 1.0Görüntünün tonunu renk tekerleğinin bir kısmına göre ayarlayarak renk değişkenliği sağlar. Modelin farklı aydınlatma koşullarında genelleştirilmesine yardımcı olur.
hsv_sfloat0.70.0 - 1.0Görüntünün doygunluğunu bir miktar değiştirerek renklerin yoğunluğunu etkiler. Farklı çevre koşullarını simüle etmek için kullanışlıdır.
hsv_vfloat0.40.0 - 1.0Görüntünün değerini (parlaklığını) belli bir oranda değiştirerek modelin çeşitli aydınlatma koşullarında iyi performans göstermesine yardımcı olur.
degreesfloat0.0-180 - +180Görüntüyü belirtilen derece aralığında rastgele döndürerek modelin çeşitli yönlerdeki nesneleri tanıma yeteneğini geliştirir.
translatefloat0.10.0 - 1.0Görüntüyü yatay ve dikey olarak görüntü boyutunun bir kısmı kadar çevirerek kısmen görülebilen nesneleri tespit etmeyi öğrenmeye yardımcı olur.
scalefloat0.5>=0.0Görüntüyü bir kazanç faktörü ile ölçeklendirerek kameradan farklı mesafelerdeki nesneleri simüle eder.
shearfloat0.0-180 - +180Görüntüyü belirli bir dereceye kadar keserek, farklı açılardan görüntülenen nesnelerin etkisini taklit eder.
perspectivefloat0.00.0 - 0.001Görüntüye rastgele bir perspektif dönüşümü uygulayarak modelin 3D uzaydaki nesneleri anlama yeteneğini geliştirir.
flipudfloat0.00.0 - 1.0Görüntüyü belirtilen olasılıkla ters çevirerek nesnenin özelliklerini etkilemeden veri değişkenliğini artırır.
fliplrfloat0.50.0 - 1.0Görüntüyü belirtilen olasılıkla soldan sağa çevirir, simetrik nesneleri öğrenmek ve veri kümesi çeşitliliğini artırmak için kullanışlıdır.
bgrfloat0.00.0 - 1.0Görüntü kanallarını belirtilen olasılıkla RGB'den BGR'ye çevirir, yanlış kanal sıralamasına karşı sağlamlığı artırmak için kullanışlıdır.
mosaicfloat1.00.0 - 1.0Dört eğitim görüntüsünü tek bir görüntüde birleştirerek farklı sahne kompozisyonlarını ve nesne etkileşimlerini simüle eder. Karmaşık sahneleri anlamak için son derece etkilidir.
mixupfloat0.00.0 - 1.0İki görüntüyü ve etiketlerini harmanlayarak bileşik bir görüntü oluşturur. Etiket gürültüsü ve görsel değişkenlik ekleyerek modelin genelleme yeteneğini geliştirir.
copy_pastefloat0.00.0 - 1.0Nesneleri bir görüntüden kopyalar ve başka bir görüntüye yapıştırır, nesne örneklerini artırmak ve nesne tıkanıklığını öğrenmek için kullanışlıdır.
copy_paste_modestrflip-seçenekleri arasından Kopyala-Yapıştır büyütme yöntemi seçimi ("flip", "mixup").
auto_augmentstrrandaugment-Önceden tanımlanmış bir büyütme politikasını otomatik olarak uygular (randaugment, autoaugment, augmix), görsel özellikleri çeşitlendirerek sınıflandırma görevleri için optimize eder.
erasingfloat0.40.0 - 0.9Sınıflandırma eğitimi sırasında görüntünün bir kısmını rastgele silerek modeli tanıma için daha az belirgin özelliklere odaklanmaya teşvik eder.
crop_fractionfloat1.00.1 - 1.0Merkezi özellikleri vurgulamak ve nesne ölçeklerine uyum sağlamak için sınıflandırma görüntüsünü boyutunun bir kısmına kırparak arka plandaki dikkat dağıtıcı unsurları azaltır.

Bu ayarlar, veri kümesinin ve eldeki görevin özel gereksinimlerini karşılayacak şekilde ayarlanabilir. Farklı değerlerle denemeler yapmak, en iyi model performansını sağlayan optimum büyütme stratejisini bulmaya yardımcı olabilir.

Günlük Kaydı, Kontrol Noktaları ve Çizim Ayarları

Bir YOLO modelini eğitirken günlük kaydı, kontrol noktaları, çizim ve dosya yönetimi önemli hususlardır.

  • Günlük kaydı: Modelin ilerlemesini izlemek ve ortaya çıkabilecek sorunları teşhis etmek için eğitim sırasında çeşitli ölçümleri ve istatistikleri günlüğe kaydetmek genellikle yararlıdır. Bu, TensorBoard gibi bir günlük kütüphanesi kullanılarak veya günlük mesajları bir dosyaya yazılarak yapılabilir.
  • Kontrol Noktaları: Eğitim sırasında modelin kontrol noktalarını düzenli aralıklarla kaydetmek iyi bir uygulamadır. Bu, eğitim süreci kesintiye uğradığında veya farklı eğitim konfigürasyonlarını denemek istediğinizde eğitime önceki bir noktadan devam etmenizi sağlar.
  • Çizim: Modelin performansını ve eğitim ilerlemesini görselleştirmek, modelin nasıl davrandığını anlamak ve olası sorunları belirlemek için yardımcı olabilir. Bu, matplotlib gibi bir çizim kütüphanesi kullanılarak veya TensorBoard gibi bir günlük kütüphanesi kullanılarak grafikler oluşturularak yapılabilir.
  • Dosya yönetimi: Model kontrol noktaları, günlük dosyaları ve grafikler gibi eğitim süreci sırasında oluşturulan çeşitli dosyaların yönetimi zor olabilir. Bu dosyaları takip etmek ve gerektiğinde bunlara erişimi ve analiz etmeyi kolaylaştırmak için açık ve düzenli bir dosya yapısına sahip olmak önemlidir.

Etkili günlük kaydı, kontrol noktası belirleme, çizim ve dosya yönetimi, modelin ilerlemesini takip etmenize yardımcı olabilir ve eğitim sürecinde hata ayıklama ve optimizasyonu kolaylaştırabilir.

TartışmaVarsayılanAçıklama
project'runs'Eğitim çalıştırmalarını kaydetmek için kök dizini belirtir. Her çalıştırma bu dizin içinde ayrı bir alt dizine kaydedilecektir.
name'exp'Deneyin adını tanımlar. Belirtilmezse, YOLO her çalıştırma için bu adı otomatik olarak artırır, örn, exp, exp2vb. önceki deneylerin üzerine yazılmasını önlemek için.
exist_okFalseAynı isimde bir deney dizini zaten mevcutsa, mevcut bir deney dizininin üzerine yazılıp yazılmayacağını belirler. Bunu şu şekilde ayarlayın True üzerine yazmaya izin verirken False engeller.
plotsFalseEğitim ve doğrulama grafiklerinin oluşturulmasını ve kaydedilmesini kontrol eder. Şuna ayarlayın True kayıp eğrileri gibi grafikler oluşturmak için, hassas-geri çağırma eğrileri ve örnek tahminler. Zaman içinde model performansını görsel olarak izlemek için kullanışlıdır.
saveFalseEğitim kontrol noktalarının ve nihai model ağırlıklarının kaydedilmesini sağlar. Şuna ayarlayın True Model durumlarını periyodik olarak kaydetmek için, eğitimin bu kontrol noktalarından devam ettirilmesine veya modellerin konuşlandırılmasına izin verir.

SSS

Eğitim sırasında YOLO modelimin performansını nasıl artırabilirim?

YOLO model performansının iyileştirilmesi, yığın boyutu, öğrenme oranı, momentum ve ağırlık azalması gibi hiperparametrelerin ayarlanmasını içerir. Büyütme ayarlarının yapılması, doğru optimize edicinin seçilmesi ve erken durdurma veya karma hassasiyet gibi tekniklerin kullanılması da yardımcı olabilir. Eğitim ayarları hakkında ayrıntılı rehberlik için Eğitim Kılavuzu'na bakın.

YOLO model doğruluğu için dikkate alınması gereken temel hiperparametreler nelerdir?

YOLO model doğruluğunu etkileyen temel hiperparametreler şunlardır:

  • Toplu İş Boyutu (batch): Daha büyük parti boyutları eğitimi stabilize edebilir ancak daha fazla bellek gerektirebilir.
  • Öğrenme Oranı (lr0): Ağırlık güncellemeleri için adım boyutunu kontrol eder; daha küçük oranlar ince ayarlamalar sunar ancak yakınsamayı yavaşlatır.
  • Momentum (momentum): Gradyan vektörlerini doğru yönlerde hızlandırmaya yardımcı olarak salınımları azaltır.
  • Görüntü Boyutu (imgsz): Daha büyük görüntü boyutları doğruluğu artırabilir ancak hesaplama yükünü artırır.

Bu değerleri veri setinize ve donanım kapasitenize göre ayarlayın. Tren Ayarları bölümünde daha fazlasını keşfedin.

Bir YOLO modelini eğitmek için öğrenme oranını nasıl ayarlayabilirim?

Öğrenme oranı (lr0) optimizasyon için çok önemlidir. Yaygın bir başlangıç noktası 0.01 SGD için veya 0.001 Adam için. Eğitim metriklerini izlemek ve gerekirse ayarlamak çok önemlidir. Kosinüs öğrenme oranı zamanlayıcılarını (cos_lr) veya ısınma teknikleri (warmup_epochs, warmup_momentum) eğitim sırasında hızı dinamik olarak değiştirmek için. Daha fazla ayrıntı için Tren Rehberi.

YOLO modelleri için varsayılan çıkarım ayarları nelerdir?

Varsayılan çıkarım ayarları şunları içerir:

  • Güven Eşiği (conf=0.25): Tespitler için minimum güven.
  • IoU Eşiği (iou=0.7): Maksimum Olmayan Bastırma (NMS) için.
  • Görüntü Boyutu (imgsz=640): Çıkarımdan önce giriş görüntülerini yeniden boyutlandırır.
  • Cihaz (device=None): Çıkarım için CPU veya GPU adreslerini seçer. Kapsamlı bir genel bakış için Ayarları Tahmin Et bölümü ve Tahmin Kılavuzu.

Neden YOLO modelleri ile karma hassas eğitim kullanmalıyım?

Karma hassas eğitim, aşağıdakilerle etkinleştirilmiştir amp=Truebellek kullanımını azaltmaya yardımcı olur ve hem FP16 hem de FP32'nin avantajlarından yararlanarak eğitimi hızlandırabilir. Bu, yerel olarak karışık hassasiyeti destekleyen modern GPU'lar için faydalıdır, daha fazla modelin belleğe sığmasına ve doğrulukta önemli bir kayıp olmadan daha hızlı hesaplamalara olanak tanır. Bu konuda daha fazla bilgi için Tren Rehberi.

📅 1 yıl önce oluşturuldu ✏️ 1 ay önce güncellendi

Yorumlar