انتقل إلى المحتوى

التخصيص المتقدم

كل من Ultralytics YOLO سطر الأوامر و Python الواجهات هي ببساطة تجريد عالي المستوى على منفذي المحرك الأساسي. دعونا نلقي نظرة على محرك المدرب.



شاهد: اتقان Ultralytics YOLOv8التخصيص المتقدم:

بيس ترينر

يحتوي BaseTrainer على روتين التدريب المعياري العام. يمكن تخصيصه لأي مهمة بناء على تجاوز الوظائف أو العمليات المطلوبة طالما يتم اتباع التنسيقات الصحيحة. على سبيل المثال، يمكنك دعم النموذج المخصص الخاص بك وأداة تحميل البيانات بمجرد تجاوز هذه الوظائف:

  • get_model(cfg, weights) - الوظيفة التي تبني النموذج المراد تدريبه
  • get_dataloader() - الوظيفة التي تبني أداة تحميل البيانات يمكن العثور على مزيد من التفاصيل وشفرة المصدر في BaseTrainer مرجع

كشف المدرب

إليك كيفية استخدام YOLOv8 DetectionTrainer وتخصيصه.

from ultralytics.models.yolo.detect import DetectionTrainer

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

تخصيص مدرب الكشف

دعونا تخصيص المدرب لتدريب نموذج كشف مخصص هذا غير مدعوم مباشرة. يمكنك القيام بذلك ببساطة عن طريق التحميل الزائد على ملف get_model وظيفه:

from ultralytics.models.yolo.detect import DetectionTrainer


class CustomTrainer(DetectionTrainer):
    def get_model(self, cfg, weights):
        ...


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

أنت تدرك الآن أنك بحاجة إلى تخصيص المدرب بشكل أكبر من أجل:

  • تخصيص loss function.
  • جمع callback التي تقوم بتحميل النموذج إلى Google Drive بعد كل 10 epochs إليك كيف يمكنك القيام بذلك:
from ultralytics.models.yolo.detect import DetectionTrainer
from ultralytics.nn.tasks import DetectionModel


class MyCustomModel(DetectionModel):
    def init_criterion(self):
        ...


class CustomTrainer(DetectionTrainer):
    def get_model(self, cfg, weights):
        return MyCustomModel(...)


# callback to upload model weights
def log_model(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()

لمعرفة المزيد حول أحداث تشغيل معاودة الاتصال ونقطة الدخول ، تحقق من دليل عمليات رد الاتصال الخاص بنا

مكونات المحرك الأخرى

هناك مكونات أخرى يمكن تخصيصها بشكل مشابه مثل Validators و Predictors. راجع قسم المراجع لمزيد من المعلومات حول هذه.



تم النشر في 2023-11-12, اخر تحديث 2024-02-03
المؤلفون: جلين جوشر (4) ، رضوان منور (1) ، أيوشكسل (1) ، ضاحكا ( 1)

التعليقات