PyTorch میں 'torch.no_grad' کا استعمال کیسے کریں؟

Pytorch My Torch No Grad Ka Ast Mal Kys Kry



نیورل نیٹ ورک کی تہوں کے لیے میلان کی گنتی PyTorch فریم ورک کی ایک بلٹ ان خصوصیت ہے۔ جب پسماندہ پاس میں گریڈیئنٹس کا حساب لگایا جاتا ہے تو صارف ملحقہ تہوں کے درمیان تعلق کا اندازہ لگا سکتے ہیں۔ تاہم، اس سے ہارڈ ویئر پر اثر پڑتا ہے کیونکہ ڈیٹا کی بڑی مقدار جس پر کارروائی کی جانی ہوتی ہے اور، اس صورت میں، ' torch.no_grad جہاں بھی ضرورت ہو، تدریجی حساب کو روکنے کے لیے طریقہ استعمال کیا جا سکتا ہے۔

اس بلاگ میں، ہم بات کریں گے کہ ' torch.no_grad PyTorch میں طریقہ۔

PyTorch میں 'torch.no_grad' طریقہ کیا ہے؟

' torch.no_grad ' طریقہ PyTorch ترقیاتی فریم ورک کے اندر سیاق و سباق کے انتظام کے لیے استعمال کیا جاتا ہے۔ اس کا مقصد ڈیپ لرننگ ماڈل کی بعد کی تہوں کے درمیان تعلق کے لیے میلان کے حساب کتاب کو روکنا ہے۔ اس طریقہ کار کی افادیت یہ ہے کہ جب کسی خاص ماڈل میں گریڈیئنٹس کی ضرورت نہ ہو، تو انہیں ماڈل کے ٹریننگ لوپ کی پروسیسنگ کے لیے مزید ہارڈویئر وسائل مختص کرنے کے لیے غیر فعال کیا جا سکتا ہے۔







PyTorch میں 'torch.no_grad' طریقہ استعمال کیسے کریں؟

گریڈیئنٹس کا حساب PyTorch میں پسماندہ پاس کے اندر کیا جاتا ہے۔ پہلے سے طے شدہ طور پر، PyTorch نے تمام مشین لرننگ ماڈلز کے لیے خودکار تفریق کو چالو کیا ہے۔ گریڈینٹ کمپیوٹیشن کو غیر فعال کرنا ان ڈویلپرز کے لیے ضروری ہے جن کے پاس ہارڈ ویئر پروسیسنگ کے کافی وسائل نہیں ہیں۔



استعمال کرنے کا طریقہ سیکھنے کے لیے نیچے دیے گئے مراحل پر عمل کریں torch.no_grad PyTorch میں میلان کے حساب کتاب کو غیر فعال کرنے کا طریقہ:







مرحلہ 1: Colab IDE لانچ کریں۔

Google Colaboratory اپنے مخصوص GPUs کی وجہ سے PyTorch فریم ورک کا استعمال کرتے ہوئے منصوبوں کی ترقی کے لیے پلیٹ فارم کا ایک بہترین انتخاب ہے۔ کولاب پر جائیں۔ ویب سائٹ اور کھولیں ' نئی نوٹ بک ' جیسے دکھایا گیا ہے:



مرحلہ 2: ٹارچ لائبریری کو انسٹال اور درآمد کریں۔

PyTorch کی تمام فعالیتیں ' ٹارچ ' کتب خانہ. کام شروع کرنے سے پہلے اس کی تنصیب اور درآمد ضروری ہے۔ ' !pip پائتھون کا انسٹالیشن پیکج لائبریریوں کو انسٹال کرنے کے لیے استعمال کیا جاتا ہے اور اسے پروجیکٹ میں درآمد کیا جاتا ہے۔ درآمد ' کمانڈ:

!پائپ انسٹال ٹارچ
ٹارچ درآمد کریں۔

مرحلہ 3: گریڈینٹ کے ساتھ ایک PyTorch ٹینسر کی وضاحت کریں۔

'کا استعمال کرتے ہوئے پروجیکٹ میں ایک PyTorch ٹینسر شامل کریں۔ torch.tensor() 'طریقہ. پھر، 'کا استعمال کرتے ہوئے اسے ایک درست میلان دیں۔ requires_grad=True ' طریقہ جیسا کہ ذیل کے کوڈ میں دکھایا گیا ہے:

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: گریڈینٹ ہٹانے کی تصدیق کریں۔

آخری مرحلہ اس بات کی تصدیق کرنا ہے کہ ابھی کیا ہوا ہے۔ ٹینسر سے میلان ' اے ' کو ہٹا دیا گیا تھا اور اسے ' کا استعمال کرتے ہوئے آؤٹ پٹ میں چیک کرنا ضروری ہے پرنٹ کریں() طریقہ:

پرنٹ ('گریڈینٹ کمپیوٹیشن مع torch.no_grad:', A.grad)
پرنٹ ('\nاصل ٹینسر: '، اے)
پرنٹ ('\nنمونہ ریاضی کا حساب: ', B)

مندرجہ بالا کوڈ اس طرح کام کرتا ہے:

  • ' گریڈ 'طریقہ ہمیں ٹینسر کا میلان دیتا ہے' اے ' یہ ذیل میں آؤٹ پٹ میں کوئی بھی نہیں دکھاتا ہے کیونکہ میلان کو 'کا استعمال کرتے ہوئے ہٹا دیا گیا ہے۔ torch.no_grad 'طریقہ.
  • اصل ٹینسر اب بھی ظاہر کرتا ہے کہ اس کا میلان ہے جیسا کہ 'سے دیکھا گیا ہے۔ requires_grad=True آؤٹ پٹ میں بیان۔
  • آخر میں، نمونہ ریاضی کا حساب کتاب پہلے بیان کردہ مساوات کا نتیجہ ظاہر کرتا ہے:

نوٹ : آپ اس پر ہماری Colab نوٹ بک تک رسائی حاصل کر سکتے ہیں۔ لنک .

پرو ٹِپ

' torch.no_grad ' طریقہ مثالی ہے جہاں گریڈینٹ کی ضرورت نہیں ہے یا جب ہارڈ ویئر پر پروسیسنگ بوجھ کو کم کرنے کی ضرورت ہے۔ اس طریقہ کا ایک اور استعمال تخمینہ کے دوران ہے کیونکہ ماڈل صرف نئے ڈیٹا کی بنیاد پر پیشین گوئیاں کرنے کے لیے استعمال ہوتا ہے۔ چونکہ اس میں کوئی تربیت شامل نہیں ہے، اس لیے محض میلان کے حساب کتاب کو غیر فعال کرنا مکمل سمجھ میں آتا ہے۔

کامیابی! ہم نے آپ کو دکھایا ہے کہ PyTorch میں گریڈینٹ کو غیر فعال کرنے کے لیے 'torch.no_grad' کا طریقہ کیسے استعمال کیا جائے۔

نتیجہ

کا استعمال کرتے ہیں ' torch.no_grad 'PyTorch میں طریقہ ایک کے اندر اس کی وضاحت کرکے' کے ساتھ لوپ اور اس کے اندر موجود تمام ٹینسر کا گریڈینٹ ہٹا دیا جائے گا۔ یہ پروسیسنگ کی رفتار میں بہتری لائے گا اور ٹریننگ لوپ کے اندر گراڈینٹ جمع ہونے سے روکے گا۔ اس بلاگ میں، ہم نے دکھایا ہے کہ یہ کیسے ' torch.no_grad ' طریقہ PyTorch میں منتخب ٹینسر کے گریڈینٹ کو غیر فعال کرنے کے لیے استعمال کیا جا سکتا ہے۔