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

Callback

Geri çağırım, erken durdurma, kontrol noktaları veya günlük kaydı eklemek için eğitim döngüsünün her dönemin sonu gibi belirli olaylarda çağırdığı bir fonksiyondur.

Geri çağırım, belirli bir olay gerçekleştiğinde başka bir kod parçasının çağırması için o koda aktarılan işlevdir. Kullanıcı arayüzlerindeki olay işleyicileri, eşzamansız koddaki tamamlama işlevleri ve bir sıralama yordamına verilen karşılaştırma işlevi, geri çağırım örnekleridir. Derin öğrenme çatılarında olaylar; eğitimin başlaması, her dönemin veya yığının bitmesi ve doğrulamanın tamamlanması gibi eğitim döngüsündeki anlardır. Bir olaya kaydedilen geri çağırımlar, eğitici durumuna erişebilecekleri bu anlarda çalışır; böylece kullanıcılar döngünün kendisini düzenlemeden aşırı öğrenmeye karşı erken durdurma, kontrol noktası kaydetme, öğrenme hızı çizelgeleri veya günlük kaydı ekleyebilir.

Geri Çağırımlar Eğitime Nasıl Bağlanır#

Bir çatı, adlandırılmış her olay için bir geri çağırım listesi tutar ve döngü o olaya ulaştığında her birini çağırıp eğitici veya model nesnesini aktarır; böylece geri çağırım ölçümleri okuyabilir ve ayarları değiştirebilir. Keras, geri çağırımları keras.callbacks modülünde toplar; PyTorch Lightning, Callback alt sınıflarını kullanır; Hugging Face Transformers ise TrainerCallback kullanır. Yöntem adları kütüphanelere göre değişse de olaylar aynı döngüyü izler:

Geri çağırımlar döngünün içinde çalıştığı için döngüyü değiştirebilir de: durdurma bayrağını ayarlayan bir geri çağırım, geçerli dönemden sonra eğitimi bitirir; iyileştiriciyi düzenleyen bir geri çağırım ise sonraki tüm adımları değiştirir. Aynı olay için geri çağırımlar kaydedildikleri sırada çalışır ve yığın düzeyindeki geri çağırımlar dönem başına binlerce kez çalışır; bu nedenle dosya yükleme gibi yavaş işler dönem düzeyindeki olaylarda yapılmalıdır. Dağıtık eğitim sırasında her süreç döngünün ve geri çağırımlarının kendi kopyasını çalıştırır; bu yüzden günlük kaydı ve kontrol noktası geri çağırımları, birkaç GPU'nun aynı dosyayı yazmasını önlemek için genellikle yalnızca ana süreçte, yani 0. sırada çalışır.

Yaygın Eğitim Geri Çağırımları#

  • Erken durdurma: Sabır adı verilen belirli sayıda dönem boyunca bir doğrulama metriği iyileşmediğinde eğitimi durdurur; böylece aşırı öğrenmeyi sınırlar ve işlem gücünden tasarruf sağlar. Keras'ın EarlyStopping özelliği, durmadan önce gördüğü en iyi ağırlıkları da geri yükleyebilir.
  • Kontrol noktası kaydetme: En iyi ağırlıkları korumak ve çöken bir çalıştırmanın devam edebilmesini sağlamak için modeli her dönemde veya izlenen bir metrik iyileştiğinde kaydeder. Keras'ın BackupAndRestore geri çağırımı, kesintiye uğramış bir çalıştırmayı otomatik sürdürmek için kaydedilmiş durumu kullanır.
  • Öğrenme hızı çizelgelemesi: Keras'ın ReduceLROnPlateau özelliğinin yaptığı gibi, bir metrik durakladığında öğrenme hızını düşürür veya kosinüs azalışı gibi sabit bir çizelgeyi izler.
  • Deney takibi: Her dönemden sonra kayıpları, metrikleri ve örnek görüntüleri TensorBoard, MLflow veya Weights & Biases gibi araçlara gönderir.
  • Hiperparametre ayarı: Her dönemin puanını, verimsiz denemeleri erken durduran zamanlayıcılara sahip Ray Tune gibi bir ayarlayıcıya bildirir.

Özel Geri Çağırım Yazma#

Ultralytics YOLO, eğitim, doğrulama, tahmin ve dışa aktarma sırasında on_train_epoch_end ve on_fit_epoch_end gibi adlandırılmış olayları tetikler; MLflow, Comet, ClearML, TensorBoard ve Ultralytics Platform için kendi entegrasyonları da bu olaylara geri çağırım olarak kaydedilir. Bu geri çağırım, her dönemden sonra doğrulama mAP50-95 değerini okur ve hedefe ulaşır ulaşmaz YOLO26 çalıştırmasını durdurur:

from ultralytics import YOLO


def stop_at_target(trainer):
    """Stop training once validation mAP50-95 reaches 0.6."""
    score = trainer.metrics["metrics/mAP50-95(B)"]
    print(f"Epoch {trainer.epoch + 1}: mAP50-95 {score:.3f}")
    if score >= 0.6:
        trainer.stop = True  # the trainer ends the run after this epoch


model = YOLO("yolo26n.pt")
model.add_callback("on_fit_epoch_end", stop_at_target)  # runs after each epoch's validation
model.train(data="coco8.yaml", epochs=20)

on_fit_epoch_end olayı, dönemin eğitim ve doğrulama işlemlerinden sonra tetiklenir; bu nedenle trainer.metrics o dönemin puanlarını zaten içerir. trainer.stop değerini ayarlamak, eğiticinin dönem döngüsünden çıkmasını, en iyi ağırlıklar üzerinde olağan son doğrulamayı çalıştırmasını ve yerleşik patience sınırına ulaşıldığında yaptığı gibi sonuçları kaydetmesini sağlar.

Geri Çağırımlar ve Hook'lar#

Bu iki sözcük çoğu zaman aynı şeyi ifade eder: PyTorch Lightning, bir geri çağırımın uyguladığı yöntemleri kanca olarak adlandırır. PyTorch içinde register_forward_hook veya register_full_backward_hook ile kaydedilen modül kancaları, bir eğitim döngüsü olayına değil tek bir katmanın ileri veya geri geçişine bağlanır; bu kancalar, görselleştirme için özellik haritalarını okumak veya geri yayılım sırasında gradyanları inceleyip değiştirmek için kullanılır.

Çö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