İçeriğe geç

Gelişmiş Özelleştirme

Hem Ultralytics YOLO komut satırı hem de python arayüzleri, temel motor yürütücüler üzerine inşa edilmiş yüksek seviyeli soyutlamalardır. Bu kılavuz şuna odaklanmaktadır: Trainer motoru, özel ihtiyaçlarınız için nasıl özelleştireceğinizi açıklıyor.



İzle: Ultralytics YOLO'da Uzmanlaşmak: Gelişmiş Özelleştirme

BaseTrainer

BaseTrainer sınıfı, çeşitli görevlere uyarlanabilen genel bir eğitim rutini sağlar. Gerekli formatlara uyarak belirli fonksiyonları veya işlemleri geçersiz kılarak özelleştirin. Örneğin, şu fonksiyonları geçersiz kılarak kendi özel modelinizi ve veri yükleyicinizi entegre edin:

  • get_model(cfg, weights): Eğitilecek modeli oluşturur.
  • get_dataloader(): Veri yükleyiciyi oluşturur.

Daha fazla ayrıntı ve kaynak kodu için bkz. BaseTrainer Referans.

DetectionTrainer

İşte Ultralytics YOLO'yu kullanma ve özelleştirme yöntemi DetectionTrainer:

from ultralytics.models.yolo.detect import DetectionTrainer

trainer = DetectionTrainer(overrides={...})
trainer.train()
trained_model = trainer.best  # Get the best model

DetectionTrainer'ı Özelleştirme

Doğrudan desteklenmeyen özel bir algılama modelini eğitmek için, mevcut olanı aşırı yükleyin get_model işlevselliği:

from ultralytics.models.yolo.detect import DetectionTrainer


class CustomTrainer(DetectionTrainer):
    def get_model(self, cfg, weights):
        """Loads a custom detection model given configuration and weight files."""
        ...


trainer = CustomTrainer(overrides={...})
trainer.train()

Kayıp fonksiyonunu değiştirerek veya modele her 10 epoch'ta bir Google Drive'a yüklemek için bir geri çağırma ekleyerek eğiticiyi daha da özelleştirin. İşte bir örnek:

from ultralytics.models.yolo.detect import DetectionTrainer
from ultralytics.nn.tasks import DetectionModel


class MyCustomModel(DetectionModel):
    def init_criterion(self):
        """Initializes the loss function and adds a callback for uploading the model to Google Drive every 10 epochs."""
        ...


class CustomTrainer(DetectionTrainer):
    def get_model(self, cfg, weights):
        """Returns a customized detection model instance configured with specified config and weights."""
        return MyCustomModel(...)


# Callback to upload model weights
def log_model(trainer):
    """Logs the path of the last model weight used by the trainer."""
    last_weight_path = trainer.last
    print(last_weight_path)


trainer = CustomTrainer(overrides={...})
trainer.add_callback("on_train_epoch_end", log_model)  # Adds to existing callbacks
trainer.train()

Geri çağırma tetikleme olayları ve giriş noktaları hakkında daha fazla bilgi için Geri Çağırma Kılavuzu'na bakın.

Diğer Motor Bileşenleri

Diğer bileşenleri de özelleştirin: Validators ve Predictors benzer şekilde. Daha fazla bilgi için şu belgelere bakın: Doğrulayıcılar ve Tahminleyiciler.

Özel Eğitmenlerle YOLO Kullanımı

YOLO model sınıfı, Trainer sınıfları için üst düzey bir sarmalayıcı sağlar. Bu mimariyi, makine öğrenimi iş akışlarınızda daha fazla esneklik için kullanabilirsiniz:

from ultralytics import YOLO
from ultralytics.models.yolo.detect import DetectionTrainer


# Create a custom trainer
class MyCustomTrainer(DetectionTrainer):
    def get_model(self, cfg, weights):
        """Custom code implementation."""
        ...


# Initialize YOLO model
model = YOLO("yolo11n.pt")

# Train with custom trainer
results = model.train(trainer=MyCustomTrainer, data="coco8.yaml", epochs=3)

Bu yaklaşım, özel gereksinimlerinize uyacak şekilde temel eğitim sürecini özelleştirirken YOLO arayüzünün basitliğini korumanızı sağlar.

SSS

Ultralytics YOLO DetectionTrainer'ı belirli görevler için nasıl özelleştirebilirim?

Şunu özelleştir: DetectionTrainer özel modelinize ve veri yükleyicinize uyum sağlamak için yöntemlerini geçersiz kılarak belirli görevler için. Şuradan miras alarak başlayın: DetectionTrainer ve gibi metotları yeniden tanımlayın get_model özel işlevler uygulamak için. İşte bir örnek:

from ultralytics.models.yolo.detect import DetectionTrainer


class CustomTrainer(DetectionTrainer):
    def get_model(self, cfg, weights):
        """Loads a custom detection model given configuration and weight files."""
        ...


trainer = CustomTrainer(overrides={...})
trainer.train()
trained_model = trainer.best  # Get the best model

Kayıp fonksiyonunu değiştirmek veya bir geri çağırma (callback) eklemek gibi daha fazla özelleştirme için Geri Çağırma Kılavuzu'na bakın.

Ultralytics YOLO'daki BaseTrainer'ın temel bileşenleri nelerdir?

BaseTrainer eğitim rutinlerinin temelini oluşturur ve genel yöntemleri geçersiz kılarak çeşitli görevler için özelleştirilebilir. Temel bileşenler şunları içerir:

  • get_model(cfg, weights): Eğitilecek modeli oluşturur.
  • get_dataloader(): Veri yükleyiciyi oluşturur.
  • preprocess_batch(): Model ileri geçişinden önce toplu ön işlemeyi yönetir.
  • set_model_attributes(): Veri kümesi bilgilerine göre model özelliklerini ayarlar.
  • get_validator(): Model değerlendirmesi için bir doğrulayıcı döndürür.

Özelleştirme ve kaynak kodu hakkında daha fazla ayrıntı için bkz. BaseTrainer Referans.

Ultralytics YOLO DetectionTrainer'a nasıl bir geri arama ekleyebilirim?

içindeki eğitim sürecini izlemek ve değiştirmek için geri aramalar ekleyin DetectionTrainer. İşte her eğitimden sonra model ağırlıklarını kaydetmek için bir geri çağırma ekleme adımları: epok:

from ultralytics.models.yolo.detect import DetectionTrainer


# Callback to upload model weights
def log_model(trainer):
    """Logs the path of the last model weight used by the trainer."""
    last_weight_path = trainer.last
    print(last_weight_path)


trainer = DetectionTrainer(overrides={...})
trainer.add_callback("on_train_epoch_end", log_model)  # Adds to existing callbacks
trainer.train()

Geri arama olayları ve giriş noktaları hakkında daha fazla ayrıntı için Geri Aramalar Kılavuzu'na bakın.

Model eğitimi için neden Ultralytics YOLO'yu kullanmalıyım?

Ultralytics YOLO, güçlü motor yürütücüleri üzerinde üst düzey bir soyutlama sağlayarak hızlı geliştirme ve özelleştirme için idealdir. Temel faydaları şunlardır:

  • Kullanım Kolaylığı: Hem komut satırı hem de Python arayüzleri karmaşık görevleri basitleştirir.
  • Performans: Gerçek zamanlı nesne algılama ve çeşitli vizyon yapay zeka uygulamaları için optimize edilmiştir.
  • Özelleştirme: Özel modeller, kayıp fonksiyonları ve veri yükleyiciler için kolayca genişletilebilir.
  • Modülerlik: Bileşenler, tüm hattı etkilemeden bağımsız olarak değiştirilebilir.
  • Entegrasyon: ML ekosistemindeki popüler çerçeveler ve araçlarla sorunsuz çalışır.

Ana Ultralytics YOLO sayfasını inceleyerek YOLO'nun yetenekleri hakkında daha fazla bilgi edinin.

Ultralytics YOLO DetectionTrainer'ı standart olmayan modeller için kullanabilir miyim?

Evet, DetectionTrainer standart olmayan modeller için son derece esnek ve özelleştirilebilir. Şuradan miras alın: DetectionTrainer ve modelinizin özel ihtiyaçlarını desteklemek için metotları aşırı yükleyin. İşte basit bir örnek:

from ultralytics.models.yolo.detect import DetectionTrainer


class CustomDetectionTrainer(DetectionTrainer):
    def get_model(self, cfg, weights):
        """Loads a custom detection model."""
        ...


trainer = CustomDetectionTrainer(overrides={...})
trainer.train()

Kapsamlı talimatlar ve örnekler için şunu inceleyin: DetectionTrainer Referans.



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

Yorumlar