सामग्री पर जाएं

उन्नत अनुकूलन

दोनों Ultralytics YOLO कमांड लाइन और Python इंटरफेस बेस इंजन निष्पादकों पर बस एक उच्च-स्तरीय अमूर्तता है। आइए ट्रेनर इंजन पर एक नज़र डालें।



सतर्कता: माहिर Ultralytics YOLOv8: उन्नत अनुकूलन

बेसट्रेनर

बेसट्रेनर में जेनेरिक बॉयलरप्लेट प्रशिक्षण दिनचर्या शामिल है। इसे आवश्यक कार्यों या संचालन को ओवरराइड करने के आधार पर किसी भी कार्य के लिए अनुकूलित किया जा सकता है, जब तक कि सही प्रारूपों का पालन किया जाता है। उदाहरण के लिए, आप इन कार्यों को ओवरराइड करके अपने स्वयं के कस्टम मॉडल और डेटालोडर का समर्थन कर सकते हैं:

  • 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 जो हर 10 के बाद आपके Google ड्राइव पर मॉडल अपलोड करता है 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), chr043416@gmail.com (1), आयुषएक्सल (1), लाफिंग-क्यू (1)

टिप्पणियाँ