[التعلم السريع] مقدمة إلى Pytorch (XNUMX): تنفيذ انحدار MLP وتعلم أساسيات PyTorch
في المرة الأخيرة ، قمت بمراجعة كيفية التعامل مع الشعلة ، وهي قاعدة PyTorch.
هذه المرة ، أود تنفيذ انحدار متعدد الطبقات (MLP) في PyTorch ومشاهدة حزم PyTorch الرئيسية.
التدفق العام
التدفق العام لتنفيذ النموذج على النحو التالي. الأرقام الموجودة بين قوسين هي حزم PyTorch المستخدمة في ذلك الوقت.
- إنشاء مجموعة بيانات الإدخال ، والمعالجة التكرارية (Dataset ، Dataloader)
- تعريف الشبكة العصبية (nn.Module)
- حساب الخسارة ، انتشار التدرج إلى معلمات الشبكة (nn.Module)
- تحديث أوزان الشبكة (Optimaizer)
حزم PyTorch الرئيسية
بغض النظر عن PyTorch ، تقدم العديد من أطر التعلم العميق حزمًا متنوعة لتبسيط التنفيذ. العناصر الرئيسية في PyTorch هي:
الشعلة | صفيف متعدد الأبعاد. هيكل البيانات المستخدم في PyTorch. |
الشعلة | تنفيذ إلى الأمام / backpropagation.يدعم عملية التمايز التلقائية لـ Tensor مثل الانتشار الخلفي (backward ()). |
torch.utils.data | يتضمن أدوات مساعدة مثل "Dataset" التي تجمع البيانات المراد إدخالها وتسميتها كمجموعة ، و "Dataloader" الذي يستخرج البيانات من مجموعة البيانات في دفعة صغيرة ويمررها إلى النموذج. |
torch.nn.Module | يستخدم لبناء الشبكات العصبية.مسؤول عن تغليف المعلمات مثل حفظ النماذج وتحميلها والانتقال إلى وحدة معالجة الرسومات. |
الشعلة | يسمح لك باستخدام خوارزميات تحسين المعلمات مثل SDG و Adam. |
تنفيذ النموذج
إنشاء مجموعة بيانات
هذه المرة ، سنجهز الخطيئة (5x) بالإضافة إلى الأرقام العشوائية كبيانات تمرين باستخدام عدد.from_numpy()
تحويل إلى torch.tensor مع.
تعريف النموذج
في pytorch ، يتم تعريف النموذج على أنه "فئة بيثون" التي ترث من فئة nn.Module.
فئة MLP (وحدة nn): فئة MLP المحددة ترث من الفئة الأصلية nn.Module
الحرف الأول def (): يتلقى الحجج وينشئ
سوبر (MLP ، ذاتي) .init (): ترث فئة الوالدين بوظيفة عظمى
def إلى الأمام (النفس ، x): يعمل عند استدعاء الوظيفة بعد إنشاء مثيل لها. عند تحديد وظيفة الأمام ، يتم أيضًا تحديد وظيفة الرجوع (حساب التدرج) تلقائيًا.
.parameters()
يمكنك الحصول على هيكل ومعلمات الشبكة باستخدام.
حساب الخسارة / الانتشار العكسي / تحديث الوزن
لفهم السلوك الفردي ، سنأخذ جزءًا من البيانات من x وندخلها في الشبكة العصبية لنرى كيف تتغير المعلمات بسبب حسابات الخطأ وتحديثات الوزن.
حاول قلب حلقة التعلم
قم بإجراء التدفق أعلاه لكل دفعة لتدريب الشبكة العصبية.Dataset
إرجاع مجموعة من البيانات والتسمية المقابلة ،DataLoader
هي فئة تقوم بإرجاع البيانات بحجم الدُفعة.
تصور الرسم البياني للحساب
يمكن تصور هيكل MLP المكون من 3 طبقات والذي تم إنشاؤه هذه المرة باستخدام حزمة python تسمى torchviz.parameters()
من فضلك عندما لا يكون ذلك كافيا.
حتى الآن ، حددنا PyTorch وحزم PyTorch الرئيسية من خلال تنفيذ انحدار MLP.
نقاش
قائمة التعليقات
لا توجد أي تعليقات حتى الآن