PyTorchలో “torch.no_grad” ఎలా ఉపయోగించాలి?

Pytorchlo Torch No Grad Ela Upayogincali



న్యూరల్ నెట్‌వర్క్ పొరల కోసం గ్రేడియంట్ల గణన అనేది పైటార్చ్ ఫ్రేమ్‌వర్క్ యొక్క అంతర్నిర్మిత లక్షణం. బ్యాక్‌వర్డ్ పాస్‌లో గ్రేడియంట్లు లెక్కించబడినప్పుడు వినియోగదారులు ప్రక్కనే ఉన్న లేయర్‌ల మధ్య కనెక్షన్‌ని అంచనా వేయగలరు. అయినప్పటికీ, ఇది హార్డ్‌వేర్‌పై టోల్ పడుతుంది ఎందుకంటే పెద్ద మొత్తంలో డేటా ప్రాసెస్ చేయవలసి ఉంటుంది మరియు ఈ సందర్భంలో, ' torch.no_grad అవసరమైన చోట గ్రేడియంట్ గణనను నిలిపివేయడానికి ” పద్ధతిని ఉపయోగించవచ్చు.

ఈ బ్లాగులో, ''ని ఎలా ఉపయోగించాలో చర్చిస్తాము. torch.no_grad ”పైటోర్చ్‌లో పద్ధతి.

PyTorchలో “torch.no_grad” పద్ధతి అంటే ఏమిటి?

ది ' torch.no_grad ”పద్ధతి PyTorch డెవలప్‌మెంటల్ ఫ్రేమ్‌వర్క్‌లోని సందర్భ నిర్వహణ కోసం ఉపయోగించబడుతుంది. లోతైన అభ్యాస నమూనా యొక్క తదుపరి పొరల మధ్య కనెక్షన్ కోసం ప్రవణతల గణనను నిలిపివేయడం దీని ఉద్దేశ్యం. ఈ పద్ధతి యొక్క ప్రయోజనం ఏమిటంటే, ఒక నిర్దిష్ట మోడల్‌లో గ్రేడియంట్లు అవసరం లేనప్పుడు, మోడల్ యొక్క శిక్షణ లూప్ యొక్క ప్రాసెసింగ్ కోసం మరిన్ని హార్డ్‌వేర్ వనరులను కేటాయించడానికి వాటిని నిలిపివేయవచ్చు.







PyTorchలో “torch.no_grad” పద్ధతిని ఎలా ఉపయోగించాలి?

గ్రేడియంట్లు PyTorchలో బ్యాక్‌వర్డ్ పాస్‌లో లెక్కించబడతాయి. డిఫాల్ట్‌గా, PyTorch అన్ని మెషీన్ లెర్నింగ్ మోడల్‌లకు ఆటోమేటిక్ డిఫరెన్సియేషన్ యాక్టివేట్ చేయబడింది. తగినంత హార్డ్‌వేర్ ప్రాసెసింగ్ వనరులు లేని డెవలపర్‌లకు గ్రేడియంట్ కంప్యూటేషన్ నిష్క్రియం చేయడం చాలా అవసరం.



ఎలా ఉపయోగించాలో తెలుసుకోవడానికి దిగువ దశలను అనుసరించండి ' torch.no_grad ”పైటోర్చ్‌లో ప్రవణతల గణనను నిలిపివేయడానికి పద్ధతి:







దశ 1: Colab IDEని ప్రారంభించండి

Google Colaboratory దాని అంకితమైన GPUల కారణంగా PyTorch ఫ్రేమ్‌వర్క్‌ని ఉపయోగించి ప్రాజెక్ట్‌ల అభివృద్ధి కోసం ప్లాట్‌ఫారమ్ యొక్క అద్భుతమైన ఎంపిక. కోలాబ్‌కి వెళ్లండి వెబ్సైట్ మరియు తెరవండి' కొత్త నోట్‌బుక్ ' చూపించిన విధంగా:



దశ 2: టార్చ్ లైబ్రరీని ఇన్‌స్టాల్ చేయండి మరియు దిగుమతి చేయండి

PyTorch యొక్క అన్ని కార్యాచరణలు దీని ద్వారా సంగ్రహించబడ్డాయి మంట ' గ్రంధాలయం. పని ప్రారంభించే ముందు దాని సంస్థాపన మరియు దిగుమతి అవసరం. ది ' !పిప్ 'పైథాన్ యొక్క ఇన్‌స్టాలేషన్ ప్యాకేజీ లైబ్రరీలను ఇన్‌స్టాల్ చేయడానికి ఉపయోగించబడుతుంది మరియు ఇది 'ని ఉపయోగించి ప్రాజెక్ట్‌లోకి దిగుమతి చేయబడుతుంది. దిగుమతి ” ఆదేశం:

!పిప్ ఇన్‌స్టాల్ టార్చ్
టార్చ్ దిగుమతి

దశ 3: గ్రేడియంట్‌తో పైటార్చ్ టెన్సర్‌ను నిర్వచించండి

'ని ఉపయోగించి ప్రాజెక్ట్‌కి PyTorch టెన్సర్‌ను జోడించండి torch.tensor() ” పద్ధతి. ఆపై, 'ని ఉపయోగించి చెల్లుబాటు అయ్యే గ్రేడియంట్ ఇవ్వండి requires_grad=నిజం దిగువ కోడ్‌లో చూపిన విధంగా ” పద్ధతి:

A = torch.tensor([5.0], requires_grad=True)

దశ 4: గ్రేడియంట్‌ను తీసివేయడానికి “torch.no_grad” పద్ధతిని ఉపయోగించండి

తర్వాత, 'ని ఉపయోగించి గతంలో నిర్వచించిన టెన్సర్ నుండి గ్రేడియంట్‌ను తీసివేయండి torch.no_grad 'పద్ధతి:

torch.no_grad():
B = A**2 + 16

పై కోడ్ క్రింది విధంగా పనిచేస్తుంది:

  • ది ' no_grad() 'పద్ధతి' లోపల ఉపయోగించబడుతుంది తో ” లూప్.
  • లూప్‌లో ఉన్న ప్రతి టెన్సర్ దాని ప్రవణత తీసివేయబడుతుంది.
  • చివరగా, మునుపు నిర్వచించిన టెన్సర్‌ని ఉపయోగించి నమూనా అంకగణిత గణనను నిర్వచించండి మరియు దానిని ' బి పైన చూపిన విధంగా ” వేరియబుల్:

దశ 5: గ్రేడియంట్ తొలగింపును ధృవీకరించండి

ఇప్పుడు ఏమి జరిగిందో ధృవీకరించడం చివరి దశ. టెన్సర్ నుండి ప్రవణత ' ” తీసివేయబడింది మరియు అది తప్పనిసరిగా “ని ఉపయోగించి అవుట్‌పుట్‌లో తనిఖీ చేయాలి ముద్రణ() 'పద్ధతి:

ప్రింట్ ('టార్చ్.నో_గ్రాడ్‌తో గ్రేడియంట్ కంప్యూటేషన్: ', ఎ.గ్రాడ్)
ప్రింట్('\nఒరిజినల్ టెన్సర్: ', ఎ)
ప్రింట్('\nనమూనా అంకగణిత గణన: ', B)

పై కోడ్ క్రింది విధంగా పనిచేస్తుంది:

  • ది ' గ్రాడ్యుయేట్ 'పద్ధతి మనకు టెన్సర్ యొక్క ప్రవణతను ఇస్తుంది' ”. దిగువ అవుట్‌పుట్‌లో ఇది ఏదీ చూపదు ఎందుకంటే 'ని ఉపయోగించి గ్రేడియంట్ తీసివేయబడింది torch.no_grad ” పద్ధతి.
  • అసలు టెన్సర్ ఇప్పటికీ దాని ప్రవణతను కలిగి ఉన్నట్లు చూపిస్తుంది requires_grad=నిజం ” ప్రకటన అవుట్‌పుట్‌లో ఉంది.
  • చివరగా, నమూనా అంకగణిత గణన గతంలో నిర్వచించిన సమీకరణం యొక్క ఫలితాన్ని చూపుతుంది:

గమనిక : మీరు ఇక్కడ మా Colab నోట్‌బుక్‌ని యాక్సెస్ చేయవచ్చు లింక్ .

అనుకూల చిట్కా

ది ' torch.no_grad గ్రేడియంట్లు అవసరం లేని చోట లేదా హార్డ్‌వేర్‌పై ప్రాసెసింగ్ లోడ్‌ని తగ్గించాల్సిన అవసరం ఉన్నప్పుడు ” పద్ధతి అనువైనది. ఈ పద్ధతి యొక్క మరొక ఉపయోగం అనుమితి సమయంలో ఉంది ఎందుకంటే మోడల్ కొత్త డేటా ఆధారంగా అంచనాలను రూపొందించడానికి మాత్రమే ఉపయోగించబడుతుంది. శిక్షణ ప్రమేయం లేనందున, ప్రవణతల గణనను నిలిపివేయడం పూర్తిగా అర్ధమే.

విజయం! PyTorchలో గ్రేడియంట్‌లను నిలిపివేయడానికి “torch.no_grad” పద్ధతిని ఎలా ఉపయోగించాలో మేము మీకు చూపించాము.

ముగింపు

ఉపయోగించడానికి ' torch.no_grad 'పైటోర్చ్‌లోని పద్ధతిని ఒక' లోపల నిర్వచించడం ద్వారా తో ” లూప్ మరియు లోపల ఉన్న అన్ని టెన్సర్‌లు వాటి ప్రవణత తీసివేయబడతాయి. ఇది ప్రాసెసింగ్ వేగంలో మెరుగుదలలను తెస్తుంది మరియు శిక్షణ లూప్‌లో గ్రేడియంట్స్ చేరడాన్ని నిరోధిస్తుంది. ఈ బ్లాగులో, మేము దీన్ని ఎలా ప్రదర్శించాము ' torch.no_grad PyTorchలో ఎంచుకున్న టెన్సర్‌ల ప్రవణతలను నిలిపివేయడానికి ” పద్ధతిని ఉపయోగించవచ్చు.