Sözlük

Geri arama

Makine öğreniminde geri aramaların temel rolünü keşfedin - gelişmiş doğruluk, esneklik ve verimlilik için model eğitimini izleyen, kontrol eden ve otomatikleştiren araçlar.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

Geri aramalar, bir makine öğrenimi modelinin eğitimi gibi daha büyük bir sürecin yürütülmesi sırasında belirli aşamalarda çalıştırılan işlevler veya işlev kümeleridir. Yapay zeka ve makine öğrenimi bağlamında geri aramalar, dahili durumları izlemek, eğitim döngüsünün davranışını etkilemek ve eğitim çerçevesinin temel kodunu değiştirmeden eylemleri otomatikleştirmek için güçlü bir mekanizma sağlar. Eğitim hattına kanca görevi görerek, geliştiricilerin bir epok, parti veya tüm eğitim sürecinin başlangıcı veya sonu gibi önceden tanımlanmış noktalara özel mantık eklemesine olanak tanır.

Makine Öğreniminde Geri Çağırmaları Anlama

Model eğitimi sırasında çeşitli olaylar sırayla gerçekleşir: eğitim başlar, bir çağ başlar, bir yığın işlenir, doğrulama gerçekleşir, bir dönem sona erer ve son olarak eğitim sona erer. Geri aramalar, bu olaylara bağlı belirli eylemleri tetiklemenizi sağlar. Örneğin, doğrulama doğruluğu arttığında modelin ağırlıklarını kaydetmek, metrikleri aşağıdaki gibi bir görselleştirme aracına günlüğe kaydetmek isteyebilirsiniz TensorBoardveya model gelişmeyi durdurursa eğitimi erken durdurun. Gibi çerçeveler Keras ve kütüphaneler gibi ultralytics Python paketi, esneklik ve genişletilebilirlik sunmak için geri aramaları yoğun bir şekilde kullanır.

Ultralytics'te Geri Çağırmalar

Ultralytics eğitim motoru, eğitim sırasında çeşitli noktalarda tetiklenen bir geri arama sistemi sağlar. EĞİTİM, doğrulama, Tahminve ihracat süreçleri. Bu olaylar şunları içerir on_train_start, on_epoch_end, on_fit_epoch_end (doğrulamayı da içerir), on_batch_end, on_train_endve diğerleri. Kullanıcılar, ayrıntılı günlük kaydı, bildirim gönderme veya aşağıdaki gibi platformlarla etkileşim kurma gibi eylemleri gerçekleştirmek için özel geri aramalar tanımlayabilir Ultralytics HUB.

from ultralytics import YOLO
from ultralytics.engine.callbacks import BaseCallback

# Define a simple custom callback

class MyCallback(BaseCallback):
def on_epoch_end(self, trainer): # This code will run at the end of each epoch
print(f"Epoch {trainer.epoch + 1} finished.") # Example: Access metrics like validation loss
if trainer.metrics:
val_loss = trainer.metrics.get('val/loss', None) # Example metric key, adjust as needed
if val_loss is not None:
print(f"Validation loss: {val_loss:.4f}")

# Load a model

model = YOLO('yolov8n.yaml').load('yolov8n.pt') # build from YAML and transfer weights

# Initialize your callback

my_callback = MyCallback()

# Add the callback to the training process

# Note: Direct addition via API might vary; often done via configuration or extending Trainer

# For demonstration, assume a mechanism exists like adding to a list or overriding methods.

# In Ultralytics, callbacks are often managed internally or via specific integrations.

# A conceptual example of how one might use it if Trainer exposed callbacks directly:

# trainer.add_callback(my_callback) # Hypothetical method

# Train the model (the callback methods are triggered automatically by the Trainer)

# The actual mechanism involves the Trainer checking for registered callbacks for specific events.

try: # This is a simplified representation. Callbacks are typically integrated deeper. # We can simulate adding callback logic by overriding trainer methods or using signals if available. # The Ultralytics framework automatically handles registered internal and integration callbacks. # To add custom behaviour like this, you might need to modify the source or use provided extension points.
print("Training started (callback logic would be triggered internally)...") # Example: Manually trigger for demonstration if needed for testing callback logic # my_callback.on_epoch_end(trainer_mock_object)
results = model.train(data='coco128.yaml', epochs=3, imgsz=640) # Training triggers internal events
print("Training finished.")

except Exception as e:
print(f"An error occurred: {e}")

# Example of using an existing integration callback (e.g., TensorBoard)

# This is usually enabled via arguments or configuration:

# results = model.train(data='coco128.yaml', epochs=3, imgsz=640, tensorboard=True)


Gerçek Dünya Uygulamaları

Geri aramalar, makine öğrenimi modeli geliştirme sırasında çok sayıda yararlı işlevsellik sağlar:

  • Model Kontrol Noktası: Modeli (veya sadece ağırlıklarını) periyodik olarak veya bir doğrulama veri setindeki performans iyileştiğinde otomatik olarak kaydetme. Bu, ilerlemeyi kaybetmemenizi ve modelinizin en iyi sürümünü alabilmenizi sağlar. Çerçeveler genellikle bunun için yerleşik geri aramalar sağlar.
  • Erken Durdurma: Belirli bir metriğin (örneğin, doğrulama kaybı veya doğruluk) izlenmesi ve metrik önceden tanımlanmış sayıda epok (sabır) için iyileşmeyi durdurursa eğitim sürecinin durdurulması. Bu, aşırı uyumu önler ve hesaplama kaynaklarından tasarruf sağlar.
  • Öğrenme Oranı Çizelgeleme: Eğitim sırasında öğrenme oranının dinamik olarak ayarlanması. Örneğin, modelin gelişimi durağanlaştığında öğrenme oranını azaltmak modelin daha etkili bir şekilde yakınsamasına yardımcı olabilir.
  • Günlükleme ve Görselleştirme: Günlükleri ve metrikleri (kayıp ve doğruluk gibi) TensorBoard gibi izleme araçlarına veya aşağıdaki gibi bulut platformlarına gönderme Weights & Biases gerçek zamanlı görselleştirme ve deney takibi için. Ultralytics , W&B ve Comet ML için sorunsuz entegrasyonlar sunar.
  • Kaynak İzleme: Darboğazları belirlemek veya kaynak tahsisini optimize etmek için eğitim sırasında donanım kullanımınınGPUCPU kullanımı, bellek) izlenmesi, özellikle bulut bilişim ortamlarında önemlidir.

Geri aramalar esnek, otomatik ve gözlemlenebilir makine öğrenimi iş akışları oluşturmak için temeldir ve geliştiricilerin eğitim süreçlerini verimli bir şekilde genişletmesine ve özelleştirmesine olanak tanır. Makine öğrenimi eğitimi ve değerlendirmesinin belirli yaşam döngüsü aşamalarına sıkıca entegre edilmeleriyle genel yazılım olay dinleyicilerinden biraz farklıdırlar.

Tümünü okuyun