İçeriğe geç

Gelişmiş Özelleştirme

Hem Ultralytics YOLO komut satırı hem de Python arayüzleri, temel motor yürütücüleri üzerine inşa edilmiş üst düzey Ultralytics . Bu kılavuz aşağıdakilere odaklanmaktadır Trainer motorunu özel ihtiyaçlarınıza göre nasıl özelleştirebileceğinizi açıklıyor.



İzle: Mastering Ultralytics YOLO : Gelişmiş Özelleştirme

BaseTrainer

Bu BaseTrainer sınıfı, çeşitli görevler için uyarlanabilen genel bir eğitim rutini sağlar. Gerekli biçimlere bağlı kalarak belirli işlevleri veya işlemleri geçersiz kılarak özelleştirin. Örneğin, bu işlevleri 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

Ultralytics YOLO'nun nasıl kullanılacağı ve özelleştirileceği aşağıda açıklanmıştır 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 get_model işlevsellik:

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 modeli her 10 epokta bir Google Drive'a yüklemek için bir geri arama 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 arama tetikleme olayları ve giriş noktaları hakkında daha fazla bilgi için Geri Arama Kılavuzu'na bakın.

Diğer Motor Bileşenleri

Aşağıdaki gibi diğer bileşenleri özelleştirin Validators ve Predictors benzer şekilde. Daha fazla bilgi için aşağıdaki belgelere bakın Doğrulayıcılar ve Tahmin Ediciler.

YOLO 'yu Özel Eğitmenlerle Kullanma

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

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, temel eğitim sürecini özel gereksinimlerinize uyacak şekilde özelleştirirken YOLO arayüzünün sadeliğini korumanıza olanak tanır.

SSS

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

Özelleştirin DetectionTrainer Özel modelinize ve veri yükleyicinize uyarlamak için yöntemlerini geçersiz kılarak belirli görevler için. Şuradan miras alarak başlayın DetectionTrainer ve aşağıdaki gibi yöntemleri 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 işlevini değiştirmek veya bir geri arama eklemek gibi daha fazla özelleştirme için Geri Arama Kılavuzu'na bakın.

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

Bu BaseTrainer genel yöntemlerini geçersiz kılarak çeşitli görevler için özelleştirilebilen eğitim rutinleri için temel görevi görür. 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 dayalı olarak model özniteliklerini 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 geri arama ekleyebilirim?

Eğitim sürecini izlemek ve değiştirmek için geri aramalar ekleyin DetectionTrainer. Her eğitimden sonra model ağırlıklarını günlüğe kaydetmek için bir geri arama nasıl eklenir çağ:

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 bilgi için Geri Arama Kılavuzu'na bakın.

Model eğitimi için neden Ultralytics YOLO 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 görsel yapay zeka uygulamaları için optimize edilmiştir.
  • Özelleştirme: Özel modeller, kayıp fonksiyonları ve veri yükleyicileri için kolayca genişletilebilir.
  • Modülerlik: Bileşenler, tüm boru hattını etkilemeden bağımsız olarak değiştirilebilir.
  • Entegrasyon: Makine öğrenimi ekosistemindeki popüler çerçeveler ve araçlarla sorunsuz bir şekilde çalışır.

Ana sayfayı inceleyerek YOLO'nun yetenekleri hakkında daha fazla bilgi edinin Ultralytics YOLO Sayfa.

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

Evet. DetectionTrainer son derece esnektir ve standart olmayan modeller için özelleştirilebilir. Şuradan miras alın DetectionTrainer ve özel modelinizin ihtiyaçlarını desteklemek için aşırı yükleme yöntemleri. İş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 DetectionTrainer Referans.

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

Yorumlar