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

के साथ मॉडल प्रशिक्षण Ultralytics YOLO

Ultralytics YOLO पारिस्थितिकी तंत्र और एकीकरण

परिचय

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



सतर्कता: कैसे एक प्रशिक्षित करने के लिए YOLOv8 Google Colab में आपके कस्टम डेटासेट पर मॉडल।

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

चुनने के लिए यहां कुछ सम्मोहक कारण दिए गए हैं YOLOv8ट्रेन मोड:

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

ट्रेन मोड की मुख्य विशेषताएं

निम्नलिखित की कुछ उल्लेखनीय विशेषताएं हैं YOLOv8ट्रेन मोड:

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

नोक

  • YOLOv8 कोको, वीओसी, इमेजनेट और कई अन्य जैसे डेटासेट स्वचालित रूप से पहले उपयोग पर डाउनलोड होते हैं, अर्थात। yolo train data=coco.yaml

उपयोग के उदाहरण

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

एकल-GPU और CPU प्रशिक्षण उदाहरण

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

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.yaml')  # build a new model from YAML
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # build from YAML and transfer weights

# Train the model
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

मल्टी-जीपीयू प्रशिक्षण

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

मल्टी-जीपीयू प्रशिक्षण उदाहरण

2 GPU के साथ प्रशिक्षित करने के लिए, CUDA डिवाइस 0 और 1 निम्न कमांड का उपयोग करते हैं। आवश्यकतानुसार अतिरिक्त GPU तक विस्तृत करें।

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device=[0, 1])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0,1

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

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

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

एमपीएस प्रशिक्षण उदाहरण

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device='mps')
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps

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

बाधित प्रशिक्षण फिर से शुरू करना

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

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

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

नीचे एक उदाहरण दिया गया है कि कैसे एक बाधित प्रशिक्षण का उपयोग करके फिर से शुरू किया जाए Python और कमांड लाइन के माध्यम से:

प्रशिक्षण फिर से शुरू करें उदाहरण

from ultralytics import YOLO

# Load a model
model = YOLO('path/to/last.pt')  # load a partially trained model

# Resume training
results = model.train(resume=True)
# Resume an interrupted training
yolo train resume model=path/to/last.pt

सेट करके resume=Trueवही train फ़ंक्शन 'path/to/last.pt' फ़ाइल में संग्रहीत स्थिति का उपयोग करके जहां से छोड़ा गया था, वहीं से प्रशिक्षण जारी रखेगा। यदि resume तर्क छोड़ा गया है या Falseवही train समारोह एक नया प्रशिक्षण सत्र शुरू करेगा।

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

ट्रेन सेटिंग्स

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

युक्ति चूक विवरण: __________
model None प्रशिक्षण के लिए मॉडल फ़ाइल निर्दिष्ट करता है। या तो एक पथ स्वीकार करता है .pt पूर्व-प्रशिक्षित मॉडल या एक .yaml कॉन्फ़िगरेशन फ़ाइल। मॉडल संरचना को परिभाषित करने या वजन शुरू करने के लिए आवश्यक।
data None डेटासेट कॉन्फ़िगरेशन फ़ाइल का पथ (उदा। coco128.yaml). इस फ़ाइल में डेटासेट-विशिष्ट पैरामीटर हैं, जिसमें प्रशिक्षण और सत्यापन डेटा के पथ, कक्षा के नाम और कक्षाओं की संख्या शामिल है।
epochs 100 प्रशिक्षण युगों की कुल संख्या। प्रत्येक युग पूरे डेटासेट पर एक पूर्ण पास का प्रतिनिधित्व करता है। इस मान को समायोजित करने से प्रशिक्षण अवधि और मॉडल प्रदर्शन प्रभावित हो सकता है।
time None घंटों में अधिकतम प्रशिक्षण समय। यदि सेट किया गया है, तो यह epochs तर्क, निर्दिष्ट अवधि के बाद प्रशिक्षण को स्वचालित रूप से बंद करने की अनुमति देता है। समय-विवश प्रशिक्षण परिदृश्यों के लिए उपयोगी।
patience 100 प्रशिक्षण को जल्दी रोकने से पहले सत्यापन मेट्रिक्स में सुधार के बिना प्रतीक्षा करने के लिए युगों की संख्या। प्रदर्शन पठारों पर प्रशिक्षण रोककर ओवरफिटिंग को रोकने में मदद करता है।
batch 16 प्रशिक्षण के लिए बैच आकार, यह दर्शाता है कि मॉडल के आंतरिक मापदंडों को अपडेट करने से पहले कितनी छवियों को संसाधित किया जाता है। ऑटोबैच (batch=-1) गतिशील रूप से GPU मेमोरी उपलब्धता के आधार पर बैच आकार को समायोजित करता है।
imgsz 640 प्रशिक्षण के लिए छवि आकार लक्षित करें। मॉडल में खिलाए जाने से पहले सभी छवियों को इस आयाम में आकार दिया जाता है। मॉडल सटीकता और कम्प्यूटेशनल जटिलता को प्रभावित करता है।
save True प्रशिक्षण चौकियों और अंतिम मॉडल वजन की बचत को सक्षम बनाता है। प्रशिक्षण या मॉडल परिनियोजन को फिर से शुरू करने के लिए उपयोगी।
save_period -1 युगों में निर्दिष्ट मॉडल चौकियों को बचाने की आवृत्ति। -1 का मान इस सुविधा को अक्षम कर देता है। लंबे प्रशिक्षण सत्रों के दौरान अंतरिम मॉडल को बचाने के लिए उपयोगी।
cache False स्मृति में डेटासेट छवियों की कैशिंग सक्षम करता है (True/ram), डिस्क पर (disk), या इसे अक्षम करता है (False). बढ़ी हुई मेमोरी उपयोग की कीमत पर डिस्क I/O को कम करके प्रशिक्षण की गति में सुधार करता है।
device None प्रशिक्षण के लिए कम्प्यूटेशनल डिवाइस (ओं) को निर्दिष्ट करता है: एक एकल GPU (device=0), एकाधिक GPU (device=0,1), सीपीयू (device=cpu), या Apple सिलिकॉन के लिए MPS (device=mps).
workers 8 डेटा लोडिंग के लिए कार्यकर्ता थ्रेड्स की संख्या (प्रति RANK यदि मल्टी-जीपीयू प्रशिक्षण)। डेटा प्रीप्रोसेसिंग और मॉडल में फीडिंग की गति को प्रभावित करता है, विशेष रूप से मल्टी-जीपीयू सेटअप में उपयोगी है।
project None परियोजना निर्देशिका का नाम जहाँ प्रशिक्षण आउटपुट सहेजे जाते हैं. विभिन्न प्रयोगों के संगठित भंडारण के लिए अनुमति देता है।
name None चलाए गए प्रशिक्षण का नाम। प्रोजेक्ट फ़ोल्डर के भीतर एक उपनिर्देशिका बनाने के लिए उपयोग किया जाता है, जहां प्रशिक्षण लॉग और आउटपुट संग्रहीत होते हैं।
exist_ok False यदि सही है, तो मौजूदा प्रोजेक्ट/नाम निर्देशिका के ओवरराइटिंग की अनुमति देता है। पिछले आउटपुट को मैन्युअल रूप से साफ़ करने की आवश्यकता के बिना पुनरावृत्त प्रयोग के लिए उपयोगी।
pretrained True निर्धारित करता है कि पूर्व-प्रशिक्षित मॉडल से प्रशिक्षण शुरू करना है या नहीं। एक बूलियन मान या एक विशिष्ट मॉडल के लिए एक स्ट्रिंग पथ हो सकता है जिससे वजन लोड करना है। प्रशिक्षण दक्षता और मॉडल प्रदर्शन को बढ़ाता है।
optimizer 'auto' प्रशिक्षण के लिए अनुकूलक का विकल्प। विकल्पों में शामिल हैं SGD, Adam, 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 स्वचालित मिश्रित परिशुद्धता (एएमपी) प्रशिक्षण को सक्षम करता है, स्मृति उपयोग को कम करता है और संभवतः सटीकता पर न्यूनतम प्रभाव के साथ प्रशिक्षण को तेज करता है।
fraction 1.0 प्रशिक्षण के लिए उपयोग करने के लिए डेटासेट के अंश को निर्दिष्ट करता है। पूर्ण डेटासेट के सबसेट पर प्रशिक्षण की अनुमति देता है, प्रयोगों के लिए उपयोगी है या जब संसाधन सीमित होते हैं।
profile False की रूपरेखा सक्षम करता है ONNX और TensorRT प्रशिक्षण के दौरान गति, मॉडल परिनियोजन के अनुकूलन के लिए उपयोगी।
freeze None मॉडल की पहली एन परतों या सूचकांक द्वारा निर्दिष्ट परतों को जमा देता है, जिससे प्रशिक्षण योग्य मापदंडों की संख्या कम हो जाती है। फाइन-ट्यूनिंग या ट्रांसफर लर्निंग के लिए उपयोगी।
lr0 0.01 प्रारंभिक सीखने की दर (यानी) SGD=1E-2, Adam=1E-3) . इस मान को समायोजित करना अनुकूलन प्रक्रिया के लिए महत्वपूर्ण है, जिससे प्रभावित होता है कि मॉडल भार कितनी तेज़ी से अपडेट किए जाते हैं।
lrf 0.01 प्रारंभिक दर के अंश के रूप में अंतिम अधिगम दर = (lr0 * lrf), समय के साथ सीखने की दर को समायोजित करने के लिए शेड्यूलर के साथ संयोजन में उपयोग किया जाता है।
momentum 0.937 एडम ऑप्टिमाइज़र के लिए SGD या beta1 के लिए मोमेंटम फैक्टर, वर्तमान अपडेट में पिछले ग्रेडिएंट को शामिल करने को प्रभावित करता है।
weight_decay 0.0005 L2 नियमितीकरण अवधि, ओवरफिटिंग को रोकने के लिए बड़े वजन को दंडित करना।
warmup_epochs 3.0 सीखने की दर वार्मअप के लिए युगों की संख्या, धीरे-धीरे प्रशिक्षण को जल्दी स्थिर करने के लिए सीखने की दर को कम मूल्य से प्रारंभिक सीखने की दर तक बढ़ाना।
warmup_momentum 0.8 वार्मअप चरण के लिए प्रारंभिक गति, धीरे-धीरे वार्मअप अवधि में निर्धारित गति को समायोजित करना।
warmup_bias_lr 0.1 वार्मअप चरण के दौरान पूर्वाग्रह मापदंडों के लिए सीखने की दर, प्रारंभिक युगों में मॉडल प्रशिक्षण को स्थिर करने में मदद करती है।
box 7.5 हानि समारोह में बॉक्स हानि घटक का वजन, यह प्रभावित करता है कि बाउंडिंग बॉक्स निर्देशांक की सटीक भविष्यवाणी करने पर कितना जोर दिया जाता है।
cls 0.5 कुल हानि समारोह में वर्गीकरण हानि का वजन, अन्य घटकों के सापेक्ष सही वर्ग भविष्यवाणी के महत्व को प्रभावित करता है।
dfl 1.5 वितरण फोकल लॉस का वजन, कुछ में उपयोग किया जाता है YOLO बारीक वर्गीकरण के लिए संस्करण।
pose 12.0 मुद्रा अनुमान के लिए प्रशिक्षित मॉडल में मुद्रा हानि का वजन, मुद्रा कीपॉइंट्स की सटीक भविष्यवाणी करने पर जोर को प्रभावित करता है।
kobj 2.0 मुद्रा अनुमान मॉडल में कीपॉइंट ऑब्जेक्टनेस लॉस का वजन, मुद्रा सटीकता के साथ पहचान आत्मविश्वास को संतुलित करना।
label_smoothing 0.0 लेबल चौरसाई लागू करता है, लक्ष्य लेबल के मिश्रण के लिए हार्ड लेबल को नरम करता है और लेबल पर एक समान वितरण, सामान्यीकरण में सुधार कर सकता है।
nbs 64 नुकसान के सामान्यीकरण के लिए नाममात्र बैच आकार।
overlap_mask True निर्धारित करता है कि क्या विभाजन मास्क प्रशिक्षण के दौरान ओवरलैप चाहिए, उदाहरण विभाजन कार्यों में लागू.
mask_ratio 4 विभाजन मास्क के लिए डाउनसैम्पल अनुपात, प्रशिक्षण के दौरान उपयोग किए जाने वाले मास्क के संकल्प को प्रभावित करता है।
dropout 0.0 वर्गीकरण कार्यों में नियमितीकरण के लिए ड्रॉपआउट दर, प्रशिक्षण के दौरान इकाइयों को बेतरतीब ढंग से छोड़कर ओवरफिटिंग को रोकना।
val True प्रशिक्षण के दौरान सत्यापन को सक्षम करता है, एक अलग डेटासेट पर मॉडल प्रदर्शन के आवधिक मूल्यांकन की अनुमति देता है।
plots False प्रशिक्षण और सत्यापन मेट्रिक्स के भूखंडों को उत्पन्न करता है और बचाता है, साथ ही भविष्यवाणी के उदाहरण, मॉडल प्रदर्शन और सीखने की प्रगति में दृश्य अंतर्दृष्टि प्रदान करता है।

वृद्धि सेटिंग्स और हाइपरपैरामीटर

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

युक्ति प्रकार चूक श्रेणी विवरण: __________
hsv_h float 0.015 0.0 - 1.0 रंग पहिया के एक अंश द्वारा छवि के रंग को समायोजित करता है, रंग परिवर्तनशीलता का परिचय देता है। मॉडल को विभिन्न प्रकाश स्थितियों में सामान्यीकृत करने में मदद करता है।
hsv_s float 0.7 0.0 - 1.0 छवि की संतृप्ति को एक अंश से बदल देता है, जिससे रंगों की तीव्रता प्रभावित होती है। विभिन्न पर्यावरणीय परिस्थितियों का अनुकरण करने के लिए उपयोगी।
hsv_v float 0.4 0.0 - 1.0 छवि के मूल्य (चमक) को एक अंश से संशोधित करता है, जिससे मॉडल को विभिन्न प्रकाश स्थितियों के तहत अच्छा प्रदर्शन करने में मदद मिलती है।
degrees float 0.0 -180 - +180 निर्दिष्ट डिग्री सीमा के भीतर छवि को बेतरतीब ढंग से घुमाता है, विभिन्न झुकावों पर वस्तुओं को पहचानने की मॉडल की क्षमता में सुधार करता है।
translate float 0.1 0.0 - 1.0 छवि आकार के एक अंश से छवि को क्षैतिज और लंबवत रूप से अनुवाद करता है, आंशिक रूप से दिखाई देने वाली वस्तुओं का पता लगाने के लिए सीखने में सहायता करता है।
scale float 0.5 >=0.0 एक लाभ कारक द्वारा छवि को मापता है, कैमरे से अलग-अलग दूरी पर वस्तुओं का अनुकरण करता है।
shear float 0.0 -180 - +180 छवि को एक निर्दिष्ट डिग्री से हिलाता है, विभिन्न कोणों से देखी जा रही वस्तुओं के प्रभाव की नकल करता है।
perspective float 0.0 0.0 - 0.001 छवि में एक यादृच्छिक परिप्रेक्ष्य परिवर्तन लागू करता है, जिससे मॉडल की 3D स्थान में वस्तुओं को समझने की क्षमता बढ़ जाती है।
flipud float 0.0 0.0 - 1.0 निर्दिष्ट संभावना के साथ छवि को उल्टा फ़्लिप करता है, वस्तु की विशेषताओं को प्रभावित किए बिना डेटा परिवर्तनशीलता को बढ़ाता है।
fliplr float 0.5 0.0 - 1.0 निर्दिष्ट संभावना के साथ छवि को बाएं से दाएं फ़्लिप करता है, सममित वस्तुओं को सीखने और डेटासेट विविधता बढ़ाने के लिए उपयोगी है।
mosaic float 1.0 0.0 - 1.0 चार प्रशिक्षण छवियों को एक में जोड़ती है, विभिन्न दृश्य रचनाओं और ऑब्जेक्ट इंटरैक्शन का अनुकरण करती है। जटिल दृश्य समझ के लिए अत्यधिक प्रभावी।
mixup float 0.0 0.0 - 1.0 दो छवियों और उनके लेबल को मिश्रित करता है, एक समग्र छवि बनाता है। लेबल शोर और दृश्य परिवर्तनशीलता को पेश करके मॉडल की सामान्यीकरण करने की क्षमता को बढ़ाता है।
copy_paste float 0.0 0.0 - 1.0 एक छवि से वस्तुओं की प्रतिलिपि बनाता है और उन्हें दूसरे पर चिपकाता है, ऑब्जेक्ट उदाहरणों को बढ़ाने और ऑब्जेक्ट रोड़ा सीखने के लिए उपयोगी है।
auto_augment str randaugment - स्वचालित रूप से एक पूर्वनिर्धारित वृद्धि नीति लागू करता है (randaugment, autoaugment, augmix), दृश्य सुविधाओं में विविधता लाकर वर्गीकरण कार्यों के लिए अनुकूलन।
erasing float 0.4 0.0 - 1.0 वर्गीकरण प्रशिक्षण के दौरान छवि के एक हिस्से को बेतरतीब ढंग से मिटा देता है, जिससे मॉडल को मान्यता के लिए कम स्पष्ट विशेषताओं पर ध्यान केंद्रित करने के लिए प्रोत्साहित किया जाता है।

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

सूचना-विषयक

प्रशिक्षण वृद्धि कार्रवाइयों के बारे में अधिक जानकारी के लिए, संदर्भ अनुभाग देखें.

लॉगिंग

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

लॉगर का उपयोग करने के लिए, इसे ऊपर दिए गए कोड स्निपेट में ड्रॉपडाउन मेनू से चुनें और इसे चलाएं। चुने गए लॉगर को स्थापित और प्रारंभ किया जाएगा।

Comet

Comet एक ऐसा मंच है जो डेटा वैज्ञानिकों और डेवलपर्स को प्रयोगों और मॉडलों को ट्रैक करने, तुलना करने, समझाने और अनुकूलित करने की अनुमति देता है। यह रीयल-टाइम मेट्रिक्स, कोड डिफ्स और हाइपरपैरामीटर ट्रैकिंग जैसी कार्यक्षमता प्रदान करता है।

का उपयोग करना Comet:

उदाहरण

# pip install comet_ml
import comet_ml

comet_ml.init()

अपने में साइन इन करना याद रखें Comet उनकी वेबसाइट पर खाता है और अपनी एपीआई कुंजी प्राप्त करें। अपने प्रयोगों को लॉग करने के लिए आपको इसे अपने परिवेश चर या अपनी स्क्रिप्ट में जोड़ना होगा.

ClearML

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

का उपयोग करना ClearML:

उदाहरण

# pip install clearml
import clearml

clearml.browser_login()

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

टेंसरबोर्ड

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

Google Colab में TensorBoard का उपयोग करने के लिए:

उदाहरण

load_ext tensorboard
tensorboard --logdir ultralytics/runs  # replace with 'runs' directory

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

उदाहरण

tensorboard --logdir ultralytics/runs  # replace with 'runs' directory

यह TensorBoard को लोड करेगा और इसे उस निर्देशिका में निर्देशित करेगा जहां आपके प्रशिक्षण लॉग सहेजे गए हैं।

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



2023-11-12 बनाया गया, अपडेट किया गया 2024-02-25
लेखक: बुरहान-क्यू (1), लाफिंग-क्यू (1), ग्लेन-जोचर (9)

टिप्पणियाँ