منصوبے کے بارے میں

Sonnet DeepMind کے محققین کی تیار کردہ ایک کھلا ذریعہ (اوپن سورس) نیورل نیٹ ورک لائبریری ہے، جو TensorFlow 2 کے اوپر کام کرنے کے لیے ڈیزائن کی گئی ہے۔ اس کا بنیادی مقصد سادہ اور مربوط تجرید فراہم کرنا ہے جو مشین لرننگ تحقیق کو مختلف شعبوں میں آسان بنائے، بشمول زیر نگرانی/غیر زیر نگرانی سیکھنے اور کمک سیکھنے۔ Sonnet میں مرکزی پروگرامنگ ماڈل `snt.Module` کلاس کے گرد گھومتا ہے۔ ماڈیول خود مختار اکائیاں ہیں جو پیرامیٹرز، دوسرے ماڈیولز اور طریقوں کے حوالے رکھ سکتی ہیں۔ یہ ڈیزائن اس بات کو یقینی بناتا ہے کہ ماڈیول ایک دوسرے سے منقطع ہوں، جس سے ان کے استعمال میں اعلیٰ لچک ملتی ہے۔ کچھ فریم ورکس کے برعکس، Sonnet کسی مخصوص تربیتی لوپ یا متعین ساخت کو نافذ نہیں کرتا؛ بلکہ صارفین کو اپنی تربیتی منطق بنانے یا موجودہ حل اپنانے کی ترغیب دیتا ہے۔ اہم خصوصیات میں شامل ہیں: - **پہلے سے طے شدہ ماڈیولز**: Sonnet میں عام تعمیراتی بلاکس جیسے `snt.Linear`، `snt.Conv2D` اور `snt.BatchNorm`، نیز پہلے سے بنے ہوئے نیٹ ورکس جیسے MLPs شامل ہیں۔ - **حسب ضرورت ماڈیولز**: صارفین کو حوصلہ دیا جاتا ہے کہ وہ حسب ضرورت پرتیں یا نیٹ ورکس بنانے کے لیے `snt.Module` کو ذیلی کلاس بنائیں۔ ذیلی کلاس بنانے سے خودکار فوائد ملتے ہیں جیسے پیرامیٹر مینجمنٹ (`variables` اور `trainable_variables` خصوصیات)، TensorBoard تصور کے لیے نام کی حدود، اور TensorFlow چیک پوائنٹنگ کی حمایت۔ - **سیریلائزیشن**: لائبریری Python کے `pickle` کے ذریعے ماڈل محفوظ کرنے اور لوڈ کرنے کی حمایت کرتی ہے (حالانکہ اس کی کمزوری کی وجہ سے حوصلہ شکنی کی جاتی ہے) اور TensorFlow کے مقامی چیک پوائنٹنگ اور محفوظ ماڈل فارمیٹس۔ اس سے مضبوط ماڈل استحکام اور تعیناتی ممکن ہوتی ہے۔ - **تقسیم شدہ تربیت**: Sonnet اعلیٰ TensorFlow تقسیم حکمت عملیوں کا استعمال کرتے ہوئے تقسیم شدہ تربیت کی حمایت کرتا ہے۔ یہ صارفین کو گریڈیئنٹ اوسط اور بیچ نارملائزیشن کے اعدادوشمار کی ہم آہنگی پر مکمل کنٹرول دیتا ہے، بجائے اس کے کہ یہ رویے لائبریری میں خودکار طور پر شامل ہوں۔ تنصیب کے لیے TensorFlow 2 اور TensorFlow Probability کی ضرورت ہوتی ہے، اس کے بعد `dm-sonnet` انسٹال کیا جاتا ہے۔ مثالیں Google Colab نوٹ بکس کے ذریعے دستیاب ہیں، جیسے MNIST درجہ بندی، GAN تربیت اور تقسیم شدہ CIFAR-10 تربیت۔