Sleeping-post-detection-fir.../docs/hi/modes/train.md

38 KiB

comments description keywords
true Ultralytics YOLO के साथ YOLOv8 मॉडल ट्रेन करने के लिए चरणबद्ध मार्गदर्शिका, एकल-GPU और बहु-GPU ट्रेनिंग के उदाहरणों के साथ। Ultralytics, YOLOv8, YOLO, ऑब्जेक्ट डिटेक्शन, ट्रेन मोड, कस्टम डेटासेट, GPU ट्रेनिंग, बहु-GPU, हाइपरपैरामीटर, CLI उदाहरण, Python उदाहरण

Ultralytics YOLO के साथ मॉडल ट्रेनिंग

Ultralytics YOLO इकोसिस्टम और इंटीग्रेशन

परिचय

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



देखें: Google Colab में अपने कस्टम डेटासेट पर एक YOLOv8 मॉडल को ट्रेन करने का तरीका।

प्रशिक्षण के लिए Ultralytics YOLO का चयन क्यों करें?

यहां YOLOv8 के ट्रेन मोड को चुनने के कुछ प्रमुख कारण हैं:

  • दक्षता: अपने हार्डवेयर से सबसे अधिक लाभ उठाएं, चाहे आप सिंगल-GPU सेटअप पर हों या कई GPU पर स्केल कर रहें हों।
  • प्राक्तिशिल्ता: COCO, VOC और ImageNet जैसे तत्परता उपलब्ध डेटासेटों के अलावा कस्टम डेटासेट पर ट्रेन करें।
  • उपयोगकर्ता मित्रपूर्णता: सीधे और शक्तिशाली CLI और Python इंटरफ़ेस का उपयोग एक सीधी ट्रेनिंग अनुभव के लिए।
  • हाइपरपैरामीटर लचीलापन: मॉडल प्रदर्शन को सुधारने के लिए वैश्विक स्तर पर अनुकूलन योग्य हाइपरपैरामीटरों की एक व्यापक श्रृंखला।

ट्रेन मोड की प्रमुख सुविधाएं

निम्नलिखित YOLOv8 के ट्रेन मोड की कुछ महत्वपूर्ण सुविधाएं हैं:

  • स्वत: डेटासेट डाउनलोड: COCO, VOC और ImageNet जैसे मानक डेटासेट्स को पहली बार के उपयोग पर स्वत: डाउनलोड किया जाता है।
  • बहु-GPU समर्थन: प्रक्रिया की गति को तेज करने के लिए अनुप्रयोग में कई जीपीयू का उपयोग करें।
  • हाइपरपैरामीटर कॉन्फ़िगरेशन: हाइपरपैरामीटर को यामल कॉन्फ़िगरेशन फ़ाइल या CLI तर्कों के माध्यम से संशोधित करने का विकल्प।
  • दृश्यीकरण और मॉनिटरिंग: प्रशिक्षण मैट्रिक्स के वास्तविक समय ट्रैकिंग और सीखने की प्रक्रिया के दृश्यीकरण के लिए बेहतर अवधारणा के लिए।

!!! Tip "टिप"

* COCO, VOC, ImageNet और कई अन्य जैसे YOLOv8 डेटासेट पहले से आपूर्ति हो जाते हैं, उपयोग पर स्वत: डाउनलोड होते हैं, जैसे `yolo train data=coco.yaml`

उपयोग उदाहरण

सौंधांग्रही कोड को नजरअंदाज किए बिना कोई उत्तर देने के लिए, कोको128 डेटासेट के लिए YOLOv8n पर ट्रेनिंग करें। ट्रेनिंग उपकरण device तर्क का उपयोग करके निर्दिष्ट किया जा सकता है। आगर कोई तर्क निर्दिष्ट नहीं किया जाता है, तो प्रशिक्षण device=0 लगाने के लिए उपयुक्त GPU device=0 का उपयोग करेगा, अन्यथा device=cpu का उपयोग किया जाएगा। पूरी प्रशिक्षण तर्कों की पूरी सूची के लिए नीचे देखें।

!!! Example "सिंगल-जीपीयू और सीपीयू प्रशिक्षण उदाहरण"

उपकरण स्वत: निर्धारित किया जाता है। यदि साझा-GPU उपलब्ध हो तो उसका उपयोग किया जाएगा, अन्यथा प्रशिक्षण सीपीयू पर शुरू होगा।

=== "Python"

    ```python
    from ultralytics import YOLO

    # एक मॉडल लोड करें
    model = YOLO('yolov8n.yaml')  # YAML से एक नया मॉडल बनाएं
    model = YOLO('yolov8n.pt')  # प्रशिक्षण के लिए सिफारिश की जाती है, एक पूर्व-प्रशिक्षित मॉडल लोड करें
    model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # YAML से बनाएं और वजन मारे ट्रांसफर करें

    # मॉडल प्रशिक्षण
    results = model.train(data='coco128.yaml', epochs=100, imgsz=640)
    ```

=== "CLI"

    ```bash बैश
    # YAML से एक नया मॉडल बनाएं और शुरू से प्रशिक्षण शुरू करें
    yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640

    # पूर्व-प्रशिक्षित *.pt मॉडल से प्रशिक्षण शुरू करें
    yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

    # YAML से एक नया मॉडल बनाएं, पूर्व-प्रशिक्षित वजनों को इसमें स्थानांतरित करें और प्रशिक्षण शुरू करें
    yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640
    ```

बहु-जीपीयू प्रशिक्षण

बहु-जीपीयू प्रशिक्षण एकाधिक जीपीयू के उपयोग से उपलब्ध होता है और उपकरण माध्यम से भी Python API के माध्यम से उपलब्ध है। बहु-जीपीयू प्रशिक्षण को सक्षम करने के लिए, आप उपयोग करना चाहते हैं उन जीपीयू उपकरण आईडीजी को निर्दिष्ट करें।

!!! Example "बहु-जीपीयू प्रशिक्षण का उदाहरण"

2 जीपीयू के साथ प्रशिक्षित करें, CUDA उपकरण 0 और 1 का उपयोग करें। अतिरिक्त जीपीयू के लिए विस्तार करें जितना आवश्यक हो।

=== "Python"

    ```python
    from ultralytics import YOLO

    # एक मॉडल लोड करें
    model = YOLO('yolov8n.pt')  # प्रशिक्षण के लिए सिफारिश की जाती है, एक पूर्व-प्रशिक्षित मॉडल लोड करें

    # दो जीपीयू के साथ मॉडल प्रशिक्षण
    results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device=[0, 1])
    ```

=== "CLI"

    ```bash
    # पूर्व-प्रशिक्षित *.pt मॉडल से जीपीयू 0 और 1 का उपयोग करके प्रशिक्षण शुरू करें
    yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0,1
    ```

ऐपल M1 और M2 MPS प्रशिक्षण

ऐपल M1 और M2 चिप्स के समर्थन के साथ Ultralytics YOLO मॉडल पर ट्रेनिंग करना अब ऐसे उपकरणों पर संभव होता है जहां शक्तिशाली मेटल परफार्मेंस शेडर (MPS) फ़्रेमवर्क का उपयोग किया जाता है। MPS कंप्यूटेशन और छवि प्रसंस्करण कार्यों को आईयूपी स्लिकॉन पर निष्पादित करने का एक उच्च कार्यक्षमता तरीका प्रदान करता है।

ऐपल M1 और M2 चिप्स पर प्रशिक्षण को सक्षम करने के लिए, आपको प्रशिक्षण प्रक्रिया शुरू करते समय "mps" को अपने उपकरण के रूप में निर्दिष्ट करना चाहिए। नीचे Python और कमांड लाइन में इसे कैसे कर सकते हैं उसका एक उदाहरण दिया गया है:

!!! Example "MPS प्रशिक्षण का उदाहरण"

=== "Python"

    ```python
    from ultralytics import YOLO

    # एक मॉडल लोड करें
    model = YOLO('yolov8n.pt')  # प्रशिक्षण के लिए सिफारिश की जाती है, एक पूर्व-प्रशिक्षित मॉडल लोड करें

    # दो जीपीयू के साथ मॉडल प्रशिक्षण
    results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device='mps')
    ```

=== "CLI"

    ```bash
    # पूर्व-प्रशिक्षित *.pt मॉडल से जीपीयू 0 और 1 का उपयोग करके प्रशिक्षण शुरू करें
    yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps
    ```

M1/M2 चिप्स के गणितात्मक शक्ति का लाभ लेते हुए, इससे प्रशिक्षण कार्यों की कार्यक्षमता को और बढ़ाया जाता है। अधिक विस्तृत मार्गदर्शन और उन्नत रूपरेखा विकल्पों के लिए, कृपया PyTorch MPS दस्तावेज़ीकरण का संदर्भ देखें।

बाधित प्रशिक्षण को बहाल करना

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

प्रशिक्षण बहाल करने पर, Ultralytics YOLO अंतिम सहेजे गए मॉडल से वजनों को लोड करता है और अद्यतनकर्ता की स्थिति, शिक्षा दर नियोजक और युग क्रमांक को भी पुनर्स्थापित करता है। इससे आप प्रशिक्षण प्रक्रिया को बिना किसी गड़बड़ के बाहर छोड़ देने के लिए कर सकते हैं।

आप आसानी से Ultralytics YOLO में प्रशिक्षण को बहाल कर सकते हैं जब आप train विधि को बुलाने पर resume तर्क को True निर्दिष्ट करके और आंशिक रूप से निर्दिष्ट pt फ़ाइल के पथ को निर्दिष्ट करके, और आपका ट्रेनिंग प्रक्रिया जहां से छोड़ गई थी से प्रशिक्षण जारी रखने के लिए train फ़ंक्शन को कम्युट कीजिए।

नीचे एक उदाहरण दिया गया है कि कैसे पायथन और कमांड लाइन में एक अविरल प्रशिक्षण को कैसे बहाल करें:

!!! Example "प्रशिक्षण बहाल करने का उदाहरण"

=== "Python"

    ```python
    from ultralytics import YOLO

    # एक मॉडल लोड करें
    model = YOLO('path/to/last.pt')  # एक आंशिक-प्रशिक्षित मॉडल लोड करें

    # प्रशिक्षण बहाल करें
    results = model.train(resume=True)
    ```

=== "CLI"
    ```bash शैल
    # एक अविरल प्रशिक्षण बहाल करें
    yolo train resume model=path/to/last.pt
    ```

resume=True सेट करके, train फ़ंक्शन पहले से बचे हुए मॉडल के स्थान में बचे हुए अवस्था में से प्रशिक्षण जारी रखेगा। यदि resume तर्क छोड़ दिया जाता है या False के रूप में निर्दिष्ट किया जाता है, तो train फ़ंक्शन एक नया प्रशिक्षण सत्र शुरू करेगा।

याद रखें कि डिफ़ॉल्ट रूप स्थिति पर दशा-अतीत प्रति के अंत में बचावात्मक संग्रहण होते हैं, या save_period तर्क का उपयोग करके निश्चित अंतराल पर, इसलिए आपको एक प्रशिक्षण दौड़ को बहाल करने के लिए कम से कम 1 इपॉक्स पूर्ण करना होगा।

तर्क

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

कुंजी मान विवरण
model None मॉडल फ़ाइल का पथ, चाहे yolov8n.pt, yolov8n.yaml
data None डेटा फ़ाइल का पथ, चाहे coco128.yaml
epochs 100 प्रशिक्षण के लिए बार की संख्या
patience 50 प्रशिक्षण के आरंभ में कोई देखने के योग्य सुधार के लिए इपॉक्स इंतजार करें
batch 16 प्रति बैच छवि की संख्या (-1 के लिए AutoBatch)
imgsz 640 प्रारंभिक छवियों का आकार मानदंड
save True प्रशिक्षण नियंत्रितक और पूर्वानुमान परिणाम सहेजें
save_period -1 प्रत्येक x ईपॉक्स पर निर्वाचित चेकप्वाइंट (1 से कम द्वारा अक्षम)
cache False सही/रैम या खोलने के लिए ब्राउज़र के लिए ब्राउज़र डेटा लोड करने के लिए उपयोग करें
device None चलाने के लिए उपकरण, उदाहरण के लिए cuda उपकरण का उपयोग करें device=0 या device=0,1 या device=cpu
workers 8 वर्कर सूत्रों की संख्या
project None प्रोजेक्ट का नाम
name None प्रयोग का नाम
exist_ok False मौजूदा प्रयोग को अधिलेखित करने के लिए या नहीं
pretrained True (बूल या स्ट्रिंग) आज्ञानुसार एक पूर्व-प्रशिक्षित मॉडल का उपयोग करें (बूल) या वजनों को लोड करने के लिए मॉडल से (स्ट्रिंग)
optimizer 'auto' चयन के लिए बराबरी=[SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, auto]
verbose False वर्बोज़ आउटपुट प्रिंट करें
seed 0 नियंत्रित (प्रशिक्षणीय) बीज के लिए
deterministic True नियंत्रित माध्यम को सक्षम करें
single_cls False हिल विशेषज्ञता डेटा सिंगल-कक्षा के रूप में
rect False न्यूनतम पैडिंग के लिए प्रति बैच रो टैब्री के साथ आयतात्मक प्रशिक्षण
cos_lr False साइन के साइन शिक्षण दर नियोजक का उपयोग करें
close_mosaic 10 अंतिम अवधि के लिए मॉज़ेक त断श्रावक में माध्यम वृक्षों की सक्षमता (0 को अक्षम करें)
resume False आखिरी निर्वाचित चेकप्वाइंट से प्रशिक्षण बहाल करें
amp True ऑटोमेटिक मिक्स्ड प्रेसिजन (AMP) प्रशिक्षण, चयन=[True, False]
fraction 1.0 प्रशिक्षित करने के लिए डेटासेट आंशिक (डिफ़ॉल्ट 1.0, प्रशिक्षण सेट में सभी छवियां)
profile False लॉगर्स के लिए प्रशिक्षण के दौरान ONNX और TensorRT की स्पीड प्रोफ़ाइल
freeze None श्रोणि की पहले n परतें, या श्रोणि सूची लेयर सूची को प्रशिक्षण के दौरान लॉक करें
lr0 0.01 प्रारंभिक सीखने दर (उदा. SGD=1E-2, Adam=1E-3)
lrf 0.01 परिणामकारी सीखने दर (lr0 * lrf)
momentum 0.937 SGD मोमेंटम/Adam बीटा1
weight_decay 0.0005 शव्य वजन दण्ड 5e-4
warmup_epochs 3.0 प्रारंभिक अवधि (अंशों में ठंडा)
warmup_momentum 0.8 प्रारंभिक अवधि मे प्रारम्भिक अवधि
warmup_bias_lr 0.1 प्रारंभिक जुकान एलआर
box 7.5 बॉक्स हानि प्राप्ति
cls 0.5 वर्ग हानि प्राप्ति (पिक्सेल के साथ स्थापना करें)
dfl 1.5 खींची हानि प्राप्ति
pose 12.0 माथाप्रविष्टि हानि प्राप्ति (केवल ठंडा)
kobj 2.0 कीपॉइंट obj हानि प्राप्ति (केवल ठंडा)
label_smoothing 0.0 लेबल स्मूदिंग (अंश)
nbs 64 नामोज़यल बैच का आकार
overlap_mask True प्रशिक्षण के दौरान मास्क ओवरलैप होने चाहिए (सेगमेंट ट्रेन केवल)
mask_ratio 4 स्थानकटू औरता (सेगमेंट ट्रेन केवल)
dropout 0.0 निर्द्यमता का उपयोग करें (वर्गीकरण केवल प्रशिक्षण)
val True प्रशिक्षण के दौरान जाँच/परीक्षण

लॉगिंग

YOLO मॉडल के प्रशिक्षण में आपको समय-समय पर मॉडल के प्रदर्शन का पता रखना महत्वपूर्ण हो सकता है। यहां लॉगिंग की एक वैरांगणिकता, यानी कीमेट, क्लियरएमएल और टेंसरबोर्ड का समर्थन है।

लॉगर का उपयोग करने के लिए, ऊपरी कोड स्निपेट के ठोकवाला मेनू से इसे चयन करें और इसे चलाएं। चयनित लॉगर स्थापित किया जाएगा और इनिशलाइज़ किया जाएगा।

कीमेट

कीमेट एक प्लेटफ़ॉर्म है जो डेटा वैज्ञानिकों और डेवलपरों को प्रयोग और मॉडलों की प्रशिक्षण में तुलनात्मक, व्याख्यान करने और अग्रिम निर्धारण करने में मदद करता है। इसकी सुविधाएं वास्तविक समय मापक, कोड अंतर और हाइपरपैरामीटर ट्रैकिंग जैसी विभिन्नताएं प्रदान करती हैं।

कीमेट का उपयोग करने के लिए:

!!! Example "उदाहरण"

=== "Python"
    ```python
    # pip install comet_ml
    import comet_ml

    comet_ml.init()
    ```

कृपया कीमेट वेबसाइट पर अपने कीमेट खाते में साइन इन करें और अपनी एपीआई कुंजी प्राप्त करें। आपको अपने वातावरण प्रतिस्थापित करने या अपने स्क्रिप्ट में इसे जोड़ने की आवश्यकता होगी ताकि आप अपने प्रयोगों को लॉग कर सकें।

क्लियरएमएल

क्लियरएमएल एक ओपन-सोर्स प्लेटफ़ॉर्म है जो प्रयोगों के ट्रैकिंग को स्वतंत्र और प्रभावी संसाधित करने में मदद करता है। यह टीम को उनके एमएल का कार्य प्रबंधन, क्रियाकलापों को क्रियान्वयन करने और उनकी पुनःसृजन की संवेदनशीलता से सहायता करने के लिए डिज़ाइन दोबारा करने के लिए विकसित किया गया है।

क्लियरएमएल का उपयोग करने के लिए:

!!! Example "उदाहरण"

=== "Python"
    ```python
    # pip install clearml
    import clearml

    clearml.browser_login()
    ```

इस स्क्रिप्ट को चलाने के बाद, कृपया क्लियरएमएल वेबसाइट पर अपने क्लियरएमएल खाते में साइन इन करें और अपने ब्राउज़र सत्र की प्रमाणिकता स्वीकार करें।

टेंसरबोर्ड

टेंसरबोर्ड एक टेन्सरफ़्लो वीज़ुअलाइज़ेशन टूलकिट है। यह आपको अपने टेन्सरफ़्लो ग्राफ को दृष्टिगतिक टुकड़ों में वेटवेद्य करने, आपातकालीन अवकलनों के बारे में मितियों को प्लॉट करने और इसके मध्य से जाने की कल्पना से बदलने जैसे अतिरिक्त डेटा दिखाने की अनुमति देता है।

Google Colab में टेंसरबोर्ड का उपयोग करने के लिए:

!!! Example "उदाहरण"

=== "CLI"
    ```bash
    load_ext tensorboard
    tensorboard --logdir ultralytics/runs  # ध्यान दें कि 'धावक' निर्देशिका के साथ बदलें
    ```

स्थानीय टेंसरबोर्ड का उपयोग करने के लिए नीचे दिए गए कमांड को चलाएं और परिणामों को http://localhost:6006/ पर देखें।

!!! Example "उदाहरण"

=== "CLI"
    ```bash
    tensorboard --logdir ultralytics/runs  # ध्यान दें कि 'धावक' निर्देशिका के साथ बदलें
    ```

इससे टेंसरबोर्ड लोड होगा और यह आपके प्रशिक्षण लॉगों की सहेजी हुई निर्देशिका की ओर दिशानिर्देश करेगा।

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