التخصيص المتقدم
كل من 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 بعد كل 10epochs
إليك كيف يمكنك القيام بذلك:
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)