─░├žeri─če ge├ž

Geli┼čmi┼č ├ľzelle┼čtirme

Hem Ultralytics YOLO komut sat─▒r─▒ hem de Python aray├╝zleri, temel motor ├žal─▒┼čt─▒r─▒c─▒lar─▒ ├╝zerinde basit├že ├╝st d├╝zey bir soyutlamad─▒r. ┼×imdi Trainer motoruna bir g├Âz atal─▒m.



─░zle: Mastering Ultralytics YOLOv8 : Geli┼čmi┼č ├ľzelle┼čtirme

BaseTrainer

BaseTrainer genel ┼čablon e─čitim rutinini i├žerir. Do─čru formatlar takip edildi─či s├╝rece gerekli fonksiyonlar─▒ veya i┼člemleri ge├žersiz k─▒lmaya dayal─▒ herhangi bir g├Ârev i├žin ├Âzelle┼čtirilebilir. ├ľrne─čin, sadece bu fonksiyonlar─▒ ge├žersiz k─▒larak kendi ├Âzel modelinizi ve veri y├╝kleyicinizi destekleyebilirsiniz:

  • get_model(cfg, weights) - E─čitilecek modeli olu┼čturan fonksiyon
  • get_dataloader() - Veri y├╝kleyiciyi olu┼čturan i┼člev Daha fazla ayr─▒nt─▒ ve kaynak kodu ┼čurada bulunabilir BaseTrainer Referans

DetectionTrainer

─░┼čte nas─▒l kullanabilece─činiz YOLOv8 DetectionTrainer ve ├Âzelle┼čtirin.

from ultralytics.models.yolo.detect import DetectionTrainer

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

DetectionTrainer'─▒ ├ľzelle┼čtirme

E─čitmeni ki┼čiselle┼čtirelim ├Âzel bir alg─▒lama modelini e─čitmek i├žin do─črudan desteklenmeyen. Bunu basit├že var olan 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()

Art─▒k e─čitim setini daha da ├Âzelle┼čtirmeniz gerekti─čini fark ettiniz:

  • ├ľzelle┼čtirin loss function.
  • Ekle callback Her 10 dakikada bir Google Drive'─▒n─▒za model y├╝kleyen epochs ─░┼čte bunu nas─▒l yapabilece─činiz:
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 callback
trainer.train()

Geri ├ça─č─▒rma tetikleme olaylar─▒ ve giri┼č noktas─▒ hakk─▒nda daha fazla bilgi edinmek i├žin Geri ├ça─č─▒rma K─▒lavuzumuza g├Âz at─▒n

Di─čer motor bile┼čenleri

Benzer ┼čekilde ├Âzelle┼čtirilebilen ba┼čka bile┼čenler de vard─▒r Validators ve Predictors. Bunlar hakk─▒nda daha fazla bilgi i├žin Referans b├Âl├╝m├╝ne bak─▒n.



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (6), RizwanMunawar (1), AyushExel (1), Laughing-q (1)

Yorumlar