PyTorch में 'torch.no_grad' का उपयोग कैसे करें?

Pytorch Mem Torch No Grad Ka Upayoga Kaise Karem



तंत्रिका नेटवर्क की परतों के लिए ग्रेडिएंट की गणना PyTorch ढांचे की एक अंतर्निहित विशेषता है। जब बैकवर्ड पास में ग्रेडिएंट की गणना की जाती है तो उपयोगकर्ता आसन्न परतों के बीच कनेक्शन का अनुमान लगा सकते हैं। हालाँकि, बड़ी मात्रा में डेटा को संसाधित करने के कारण हार्डवेयर पर इसका असर पड़ता है और इस मामले में, ' मशाल.no_grad जहां भी आवश्यकता हो, ग्रेडिएंट गणना को रोकने के लिए विधि का उपयोग किया जा सकता है।

इस ब्लॉग में, हम चर्चा करेंगे कि 'का उपयोग कैसे करें' मशाल.no_grad PyTorch में विधि।

PyTorch में 'torch.no_grad' विधि क्या है?

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







PyTorch में 'torch.no_grad' विधि का उपयोग कैसे करें?

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



'का उपयोग कैसे करें' जानने के लिए नीचे दिए गए चरणों का पालन करें मशाल.no_grad PyTorch में ग्रेडिएंट्स की गणना को अक्षम करने की विधि:







चरण 1: कोलाब आईडीई लॉन्च करें

Google Colaborator अपने समर्पित GPU के कारण PyTorch फ्रेमवर्क का उपयोग करके परियोजनाओं के विकास के लिए प्लेटफ़ॉर्म का एक उत्कृष्ट विकल्प है। कोलाब पर जाएँ वेबसाइट और एक खोलें ' नई नोटबुक ' के रूप में दिखाया:



चरण 2: टॉर्च लाइब्रेरी स्थापित करें और आयात करें

PyTorch की सभी कार्यक्षमताएँ 'द्वारा संपुटित हैं मशाल ' पुस्तकालय। काम शुरू करने से पहले इसकी स्थापना और आयात जरूरी है. “ !पिप 'पायथन के इंस्टॉलेशन पैकेज का उपयोग पुस्तकालयों को स्थापित करने के लिए किया जाता है और इसे' का उपयोग करके प्रोजेक्ट में आयात किया जाता है आयात ' आज्ञा:

!पिप टॉर्च स्थापित करें
मशाल आयात करें

चरण 3: ग्रेडिएंट के साथ PyTorch टेंसर को परिभाषित करें

'का उपयोग करके प्रोजेक्ट में एक PyTorch टेंसर जोड़ें टॉर्च.टेंसर() ' तरीका। फिर, इसे 'का उपयोग करके एक वैध ग्रेडिएंट दें आवश्यकता_ग्रेड = सत्य 'विधि जैसा कि नीचे दिए गए कोड में दिखाया गया है:

ए = टॉर्च.टेंसर([5.0], require_grad=True)

चरण 4: ग्रेडिएंट को हटाने के लिए 'torch.no_grad' विधि का उपयोग करें

इसके बाद, 'का उपयोग करके पहले से परिभाषित टेंसर से ग्रेडिएंट को हटा दें मशाल.no_grad ' तरीका:

Torch.no_grad() के साथ:
बी = ए**2 + 16

उपरोक्त कोड इस प्रकार काम करता है:

  • no_grad() ' विधि का उपयोग ' के अंदर किया जाता है साथ ' कुंडली।
  • लूप के भीतर मौजूद प्रत्येक टेंसर का ग्रेडिएंट हटा दिया जाता है।
  • अंत में, पहले से परिभाषित टेंसर का उपयोग करके एक नमूना अंकगणितीय गणना को परिभाषित करें और इसे ' बी 'वैरिएबल जैसा कि ऊपर दिखाया गया है:

चरण 5: ग्रेडिएंट रिमूवल को सत्यापित करें

अंतिम चरण यह सत्यापित करना है कि अभी क्या किया गया था। टेंसर से ढाल ' 'हटा दिया गया था और इसे' का उपयोग करके आउटपुट में जांचा जाना चाहिए प्रिंट() ' तरीका:

प्रिंट ('टॉर्च.नो_ग्रेड के साथ ग्रेडिएंट कंप्यूटेशन:', ए.ग्रेड)
प्रिंट ('\nमूल टेंसर:', ए)
प्रिंट('\nनमूना अंकगणितीय गणना:', बी)

उपरोक्त कोड इस प्रकार काम करता है:

  • ग्रैड 'विधि हमें टेंसर का ग्रेडिएंट देती है' ”। यह नीचे दिए गए आउटपुट में कुछ भी नहीं दिखाता है क्योंकि ग्रेडिएंट को 'का उपयोग करके हटा दिया गया है' मशाल.no_grad ' तरीका।
  • मूल टेंसर अभी भी दिखाता है कि इसकी अपनी ढाल है जैसा कि 'से देखा गया है आवश्यकता_ग्रेड = सत्य आउटपुट में कथन।
  • अंत में, नमूना अंकगणितीय गणना पहले परिभाषित समीकरण का परिणाम दिखाती है:

टिप्पणी : आप यहां हमारे कोलाब नोटबुक तक पहुंच सकते हैं जोड़ना .

प्रो टिप

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

सफलता! हमने आपको दिखाया है कि PyTorch में ग्रेडिएंट्स को अक्षम करने के लिए 'torch.no_grad' विधि का उपयोग कैसे करें।

निष्कर्ष

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