Deep Learning Academy · पाठ

Forward Caches, Backward Reuses

समझें कि forward pass के दौरान activations क्यों संग्रहीत किए जाते हैं

पाठ 2, कुल 4 में से13 चरण

Forward Caches, Backward Reuses, CoddyKit पर Deep Learning Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Deep Learning Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Deep Learning Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

दो चरण, एक लक्ष्य

हर बैच का प्रशिक्षण दो चरणों में चलता है: पूर्वानुमान और हानि की गणना के लिए फॉरवर्ड चरण, फिर ग्रेडिएंट की गणना के लिए बैकवर्ड चरण। दोनों एक जोड़ी की तरह काम करते हैं।

फॉरवर्ड चरण मानों की गणना करता है

आगे बढ़ते हुए, हर परत अपने इनपुट को आउटपुट में बदलकर उसे आगे भेजती है। अंत तक आपके पास एक पूर्वानुमान और हानि की एकल संख्या होती है।

बैकवर्ड को फॉरवर्ड के मान चाहिए

किसी परत का ग्रेडिएंट निकालने के लिए श्रृंखला नियम को ठीक उन्हीं सक्रियणों की आवश्यकता होती है, जिन्हें उस परत ने फॉरवर्ड चरण में बनाया था। ये मान वैकल्पिक नहीं हैं।

इसलिए हम उन्हें कैश करते हैं

फॉरवर्ड चरण के दौरान नेटवर्क हर परत के इनपुट और आउटपुट को स्मृति में चुपचाप कैश कर लेता है, ताकि बैकवर्ड चरण उन्हें प्राप्त कर सके। 💾

एक ठोस उदाहरण

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

sigmoid_grad = saved_output * (1 - saved_output)

बैकवर्ड कैश का फिर उपयोग करता है

बैकवर्ड चरण परतों पर उलटे क्रम में चलता है और हर परत पर ग्रेडिएंट में गुणा करने के लिए संबंधित कैश किए गए मान प्राप्त करता है। कुछ भी दोबारा नहीं गिना जाता।

कैश में स्मृति लगती है

हर सक्रियण को संग्रहीत करने के कारण किसी गहरे नेटवर्क को प्रशिक्षित करने में केवल पूर्वानुमान चलाने की तुलना में बहुत अधिक स्मृति लगती है। बड़े नेटवर्क के लिए बड़े कैश चाहिए।

इन्फरेंस कैश छोड़ देता है

जब आपको केवल पूर्वानुमान चाहिए, तब बैकवर्ड चरण नहीं होता, इसलिए PyTorch कैश को पूरी तरह छोड़ देता है। इसी कारण इन्फरेंस में कम स्मृति लगती है।

with torch.no_grad():
    preds = model(x)

PyTorch यह आपके लिए करता है

requires_grad वाले tensor पर किया गया हर ऑपरेशन अपनी आवश्यकताओं को गणना ग्राफ में दर्ज करता है और काम करते-करते कैश अपने-आप बनाता जाता है।

एक बार backward करने पर यह मुक्त हो जाता है

डिफ़ॉल्ट रूप से backward() कॉल करने पर कैश किया हुआ ग्राफ उपयोग होकर मुक्त हो जाता है। इसी कारण उसी ग्राफ पर दूसरी backward() कॉल error उत्पन्न करती है।

loss.backward()

यह डिज़ाइन बेहतर क्यों है

फॉरवर्ड मानों को कैश करने से हर ग्रेडिएंट नई गणना के बजाय एक सस्ती खोज और गुणा बन जाता है, जिससे बैकप्रोप तेज़ और सटीक होता है।

त्वरित जाँच

आइए, कैश की अवधारणा की जाँच करें।

पुनरावृत्ति

फॉरवर्ड चरण सक्रियणों को कैश करता है और बैकवर्ड चरण ग्रेडिएंट बनाने के लिए उनका फिर उपयोग करता है। गति के बदले स्मृति का यह समझौता ही बैकप्रोप को व्यावहारिक बनाता है। 💾

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “Forward Caches, Backward Reuses” पाठ निःशुल्क है?

हाँ—“Forward Caches, Backward Reuses” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Deep Learning Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Deep Learning Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Forward Caches, Backward Reuses” में मैं क्या सीखूँगा?

समझें कि forward pass के दौरान activations क्यों संग्रहीत किए जाते हैं आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Deep Learning Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Deep Learning Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Deep Learning Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Forward Caches, Backward Reuses” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Deep Learning Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Deep Learning Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Chain Rule, Layer दर Layer
  2. Forward Caches, Backward Reuses
  3. एक छोटे Net पर Backprop हाथ से करें
  4. Vanishing और Exploding Gradients
← Deep Learning Academy पर वापस जाएँ