Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Batch Size

Yığın boyutu, bir modelin her ağırlık güncellemesinde işlediği eğitim örneği sayısıdır. GPU bellek kullanımını, eğitim hızını ve gradyan gürültüsünü belirler.

Yığın boyutu, bir modelin model ağırlıklarını güncellemeden önce birlikte işlediği eğitim örneği sayısıdır. Eğitim veri kümesinin tamamını bir kerede sinir ağına vermek yerine eğitim, verileri yığınlara böler. Her yığında model tahminler üretir, kayıp işlevi bu tahminleri puanlar, geri yayılım gradyanları hesaplar ve optimizasyon algoritması bir adım atar. Yığın boyutu, aynı anda üç şeyi belirleyen bir hiperparametredir: eğitimin ne kadar GPU belleğine ihtiyaç duyduğunu, her epoch süresini ve her gradyan tahmininin ne kadar gürültülü olduğunu.

Yığın Boyutu Eğitimi Nasıl Etkiler#

Her yığın, optimizasyon algoritmasına tüm veri kümesi üzerindeki gradyan için bir tahmin sunar; yığın büyüdükçe bu tahmin daha kesin hâle gelir. Aşağıdaki PyTorch kod parçacığı, farklı boyutlardaki çok sayıda rastgele yığının örnek başına gradyanlarının ortalamasını alarak bu kesinliği doğrudan ölçer:

import torch

torch.manual_seed(0)

# Per-sample gradients of a squared-error loss for 10,000 samples
x = torch.randn(10_000)
y = 2 * x + torch.randn(10_000)
w = torch.tensor(0.0)
per_sample_grads = 2 * (w * x - y) * x

# Estimate the gradient from 1,000 random batches at each batch size
for batch_size in (8, 64, 512):
    idx = torch.randint(0, len(x), (1000, batch_size))
    batch_grads = per_sample_grads[idx].mean(dim=1)
    print(f"batch {batch_size:3d}: gradient std {batch_grads.std():.3f}")

Gradyan tahmininin yayılımı, yığın boyutu 8 iken 2.248'den, 64'te 0.771'e ve 512'de 0.267'ye düşer. Yığın boyutundaki her 8 katlık artış gürültüyü yaklaşık 2,9 kat azaltır; bu, bağımsız örneklerin ortalamasının nasıl davrandığını gösteren √8 değerine yakındır.

Bu gürültü, küçük ve büyük yığınlar arasındaki ödünleşimi belirler:

  • Küçük yığınlar (örneğin 8-32): Gürültülü güncellemeler ve epoch başına çok sayıda adım. Gürültü, stokastik gradyan inişinin (SGD) genelleme yapmasına çoğu zaman yardımcı olan hafif bir düzenlileştirici görevi görür ve küçük yığınlar mütevazı donanımlara sığar; ancak GPU kısmen boşta kaldığından her epoch daha uzun sürer.
  • Büyük yığınlar (örneğin 256 ve üzeri): Daha düzgün gradyanlar, epoch başına daha az adım ve yüksek donanım kullanımı. Keskar ve arkadaşlarının bulduğu gibi, çok büyük yığınlar genelleme performansı daha kötü olan keskin minimumlarda yakınsama eğilimindedir. Ayrıca epoch başına daha az adım attıkları için ısınma süresiyle birlikte orantılı olarak daha yüksek bir öğrenme oranına ihtiyaç duyarlar. Goyal ve arkadaşları, bu doğrusal ölçekleme kuralını kullanarak ResNet-50'yi ImageNet üzerinde 256 GPU'ya dağıtılmış 8.192 yığın boyutuyla bir saatte eğitti ve küçük yığınlı eğitimin doğruluğuna ulaştı.

Bellek Sınırları ve Gradyan Biriktirme#

GPU belleği, modelin ağırlıklarını, optimizasyon durumu değerlerini ve geri yayılımın ihtiyaç duyduğu ara aktivasyonları tutmalıdır; aktivasyon belleği yığın boyutu ve görüntü çözünürlüğüyle doğrusal olarak artar. Sığmayan bir yığın, eğitimi bellek yetersizliği (OOM) hatasıyla durdurur. Karma hassasiyetli eğitim aktivasyon belleğini yaklaşık yarıya indirir; gradyan biriktirme ise her ağırlık güncellemesinden önce birkaç küçük yığının gradyanlarını toplayarak daha büyük bir etkin yığın boyutuna ulaşır.

Ultralytics YOLO eğitimi bu özelliği yerleşik olarak sunar: yaklaşık 64 görüntü, yani nominal yığın boyutu nbs görülene kadar gradyanları biriktirir. Böylece ısınma sonrasında varsayılan batch=16 her dört yığında bir ağırlık güncellemesi yapar. batch=-1 ayarı, kullanılabilir CUDA belleğinin yaklaşık %60'ına sığan en büyük yığın boyutunu seçen AutoBatch özelliğini çalıştırır ve CPU ile Apple MPS aygıtlarında yığın boyutunu 16'ya düşürür.

from ultralytics import YOLO

# Önceden eğitilmiş bir YOLO26n modeli yükle
model = YOLO("yolo26n.pt")

# batch=-1, AutoBatch'in yığın boyutunu kullanılabilir GPU belleğine göre seçmesini sağlar
# Sabit bir boyut için bir tamsayı (batch=16), bellek oranı içinse bir ondalık sayı (batch=0.70) kullan
results = model.train(data="coco8.yaml", epochs=5, batch=-1)

Eğitim başlamadan önce AutoBatch, YOLO26 modelini 1'den 16'ya kadar yığın boyutlarında (16 GB veya daha fazla belleğe sahip GPU'larda 64'e kadar) çalıştırır, ölçülen bellek kullanımı için doğrusal bir doğru uydurur ve hedef orana ulaşan yığın boyutunu bu doğruyu çözerek bulur.

  • Epoch ve iterasyon: Epoch, tüm veri kümesi üzerinde yapılan tek bir geçiştir; iterasyon ise tek bir ağırlık güncellemesidir. Epoch başına iterasyon sayısı, veri kümesi boyutunun yığın boyutuna bölünüp yukarı yuvarlanmasına eşittir; dolayısıyla 1.000 görüntü, yığın boyutu 100 iken 10 iterasyon sürer.
  • Mini yığın: Derin öğrenme kaynaklarının çoğunda yığınla eş anlamlı kullanılır. Kesin tanımıyla yığın gradyan inişi her güncellemede tüm veri kümesini, stokastik gradyan inişi tek bir örneği kullanır; mini yığın gradyan inişi ise bu ikisinin arasında kalır ve neredeyse tüm modern ağlar bu şekilde eğitilir.
  • Yığın normalizasyonu: Aktivasyonları geçerli yığının ortalaması ve varyansıyla normalleştiren bir katmandır; bu nedenle çok küçük yığın boyutlarında istatistikleri güvenilmez hâle gelir. Grup Normalizasyonu bu bağımlılığı önler ve yığın boyutu 2 iken ResNet-50 için ImageNet üzerinde yığın normalizasyonuna kıyasla %10,6 daha düşük hata bildirmiştir.
  • Çıkarım yığın boyutu: Dağıtım sırasında yığınlama, verim karşılığında çıkarım gecikmesinden ödün verir. Birden fazla kameradan gelen kareleri gruplamak saniyede işlenen görüntü sayısını artırırken her kare, yığının dolmasını bekler.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla