[क्विक लर्निंग] Pytorch का परिचय ②: MLP प्रतिगमन को लागू करके PyTorch की मूल बातें जानें

पिछली बार, हमने समीक्षा की थी कि मशाल को कैसे संभालना है, जो कि PyTorch का आधार है।

इस बार मैं PyTorch में मल्टीलेयर परसेप्ट्रॉन (MLP) प्रतिगमन को लागू करना चाहता हूं और प्रमुख PyTorch पैकेजों की समीक्षा करना चाहता हूं।

समग्र प्रवाह

मॉडल कार्यान्वयन का समग्र प्रवाह इस प्रकार है। () उस समय उपयोग किया जाने वाला PyTorch पैकेज है।

  • इनपुट डेटासेट बनाएं, पुनरावृति (डेटासेट, डेटालोडर)
  • तंत्रिका नेटवर्क परिभाषा (एनएन.मॉड्यूल)
  • नुकसान की गणना करें, नेटवर्क पैरामीटर के लिए ढाल का प्रचार करें (एनएन.मॉड्यूल)
  • नेटवर्क वेट अपडेट करें (ऑप्टिमाइज़र)

मुख्य PyTorch पैकेज

PyTorch के बावजूद, कई गहन शिक्षण ढाँचे कार्यान्वयन को सरल बनाने के लिए विभिन्न पैकेज प्रदान करते हैं। PyTorch में मुख्य रूप से निम्नलिखित हैं:

मशाल टेंसरबहुआयामी सरणी। PyTorch द्वारा उपयोग की जाने वाली डेटा संरचनाएँ।
मशाल.autogradआगे/पीछे प्रचार लागू करें।Tensors पर स्वचालित विभेदन संचालन का समर्थन करता है जैसे कि बैकप्रॉपैगैशन (बैकवर्ड ())।
मशाल.बर्तन.डेटाइसमें उपयोगिताओं जैसे "डेटासेट" शामिल है जो इनपुट डेटा और उसके लेबल को एक सेट के रूप में एकत्र करता है, और "डेटालोडर" जो डेटासेट से डेटा को मिनी बैचों में निकालता है और इसे मॉडल में भेजता है।
मशाल.एनएन.मॉड्यूलतंत्रिका नेटवर्क के निर्माण के लिए उपयोग किया जाता है।मॉडल को बचाने और लोड करने और उन्हें GPU पर ले जाने जैसे मापदंडों को एनकैप्सुलेट करने के लिए जिम्मेदार।
मशाल.ऑप्टिमएसडीजी और एडम जैसे पैरामीटर ऑप्टिमाइज़ेशन एल्गोरिदम के उपयोग को सक्षम करता है।
मुख्य PyTorch पैकेज

मॉडल कार्यान्वयन

एक डेटासेट बनाएँ

इस बार, हम अभ्यास डेटा के रूप में numpy के साथ sin(5x) प्लस एक यादृच्छिक संख्या तैयार करेंगे।from_numpy()टार्च.टेंसर में कनवर्ट करें

मॉडल परिभाषा

पाइटोरेक में, एक मॉडल को "पायथन क्लास" के रूप में परिभाषित किया जाता है जो nn.Module क्लास को इनहेरिट करता है।

वर्ग एमएलपी (एनएन। मॉड्यूल): परिभाषित MLP वर्ग मूल वर्ग nn.Module को इनहेरिट करता है
डीईएफ़ इनिट (): तर्क प्राप्त करें और तत्काल करें
सुपर (एमएलपी, स्व) .init (): सुपर फंक्शन के साथ पैरेंट क्लास इनहेरिट करें
डीईएफ़ आगे (स्वयं, एक्स): तत्काल करने के बाद, जब फ़ंक्शन को कॉल किया जाता है तो यह काम करता है। फॉरवर्ड फ़ंक्शन को परिभाषित करना स्वचालित रूप से बैकवर्ड फ़ंक्शन (ग्रेडिएंट कैलकुलेशन) को परिभाषित करता है

.parameters()आप नेटवर्क संरचना और पैरामीटर के साथ प्राप्त कर सकते हैं

नुकसान, बैकप्रोपैजेशन, अपडेट वेट की गणना करें

प्रत्येक के व्यवहार को समझने के लिए, x से डेटा का एक टुकड़ा लें, इसे तंत्रिका नेटवर्क में फीड करें, और देखें कि त्रुटि गणना और वज़न अपडेट के कारण पैरामीटर कैसे बदलते हैं।

लर्निंग लूप चलाएं

तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए प्रत्येक बैच के लिए उपरोक्त प्रवाह करें।
Datasetडेटा और संबंधित लेबल का एक सेट लौटाता है, औरDataLoaderएक वर्ग है जो डेटा को बैच आकार में लौटाता है।

कम्प्यूटेशनल रेखांकन का दृश्य

इस बार बनाई गई तीन-परत एमएलपी संरचना को टार्चविज़ नामक अजगर पैकेज का उपयोग करके देखा जा सकता है।parameters()कृपया इसका उपयोग तब करें जब वह अकेला पर्याप्त न हो।

हमने अपने MLP प्रतिगमन कार्यान्वयन के माध्यम से PyTorch और इसके मुख्य PyTorch पैकेज देखे हैं।