Pytorch مقدمة في

في هذه المقالة حشرح أساسيات تعلم PyTorch. لكن في البداية حشرح بشكل مبسط ما هو PyTorch. وما هو سبب اختياري ل PyTorch. ملاحظة: في نهاية المقالة ستجد الاكواد الخاصة بهذه المقالة كملف jupyter notebook. واذاكنت ما تعرف ما هو jupyter notebook، تقدر تقرأ هذه المقالة من هنا وترجع وتكمل حتى تطبق الاكواد مباشرة.

– مقدمة:

PyTroch من Facebook او Tensorflow من google كلها مكتبات تدعم python وتوفر لك بيئة عمل مناسبة لتبدا برمجة الشبكات العصبية من CNN وغيره. كلا النظامين يمتلكان مكتبات متقدمة تسهل عليك بناء أي شبكة عصبية. من تجربتي الشخصية، بدات بتعلم Tensorflow ومن ثم انتقلت الى PyTorch. سبب اختياري ل PyTorch في سلسلة المقالات هذه التي ساشرح فيها مشاريع عملية هو بسبب مرونة PyTorch. ماذا تقصد؟ أقصد أن التحكم بالاوزان weghits أسهل. مثلا احتجت تعرف قيمة وزن معين في طبقة معين، نقدر نتحكم بالوزن وقيمته بكل سهولة باستخدام PyTorch. أيضا أحد الفروقات أن Tensorflow تنشئ الشبكة العصبية ك static لكن في المقابل PyTorch تدعم dynamic graph. حتى أوضح أكثر، مثلا في Tensorflow انت لازم تنشى الgraph حتى تبدا تشتغل على المودل الخاص فيك. وعلى العكس، PyTorch ينشئ لك ال graph بشكل ديناميكي وأنت تبني المودل.

– استخدام ال Tensor

ممكن الاسم “Tensor” يدل على أن هناك شي معقد لكن على العكس هو مجرد اسم لا اكثر. وفعليا ال tensor هو مجرد مصفوفة.
جديد عليك موضوع المصفوفات؟ matrix؟
أنصحك بشدة تتابع هذا الفديو من هنا . والصورة أدناه توضح لك الفروقات بين ال matrix، vector, و scalar. لان هالمصطلحات ستتكر بكثرة
تعال نبدا وتطبق بشكل عملي. الصورة ادناه هيا نفس الصورة اعلاه لكن بعد تطبيقها باستخدام PyTorch Tensors.
تعال نطبقها على Jupiter notebook. نشاهد الصورة التالية، وبعدها حنتكلم عنها. ملاحظة: مكتبة torch. في العادة تكون مثبتة في Google colab وما يحتاج نثبتها لكن سنستدعيها فقط كما في الصورة التالية:
في أول سطر استدعينا مكتبة torch حتى نقدر نستخدمها. وفي السطر رقم ٣ استخدمنا ال tensor وأنشائنا رقم ٤. ومن ثم في السطر الرابع، كتبت أمر الطباعة. ونلاحظ ان الاربعة انطبعت لنا. ملاحظة: لاي سبب من الاسباب، في حال ظهر لك ان مكتبة torch غير موجودة. تقدر تثبتها بكل سهولة عن طريق الامر التالي:
هذا الامر تقدر تستخدمه حتى تثبت اي مكتبة تبغاها وكل ما عليك فعله هو تغير اسم المكتبة من torch الى اسم المكتبة التي تريد ان تشتغل عليها.
كيف أُنشى Tensor حجمه ٥ ومحتوياته كلها رقم ١؟
تعال نشاهد الصورة التالية:
نلاحظ في السطر رقم ٢، قمنا بانشاء tensor حجمه ٥ ويحتوي ١. وفي السطر رقم ٣، انشائنا tensor حجمه ٤ ويحتوي على اصفار. ومن ثم قمنا بطباعتهم.
ماذا لو أردنا إنشاء مصفوفة حجمها ٢ على ٣؟ اي تتكون المصفوفة من عامودين وثلاثة صفوف وتحتوي على اصفار.
الصورة أدناه هيا صورة المصفوفة المطلوبة والتي نريد كتابة الكود لها.
تعال نشاهد التطبيق العملي لها في الصورة التالية:
نلاحظ: قمنا بإنشاء مصفوفة عدد أعمدتها ٢ وصفوفها ٣ وتحتوي أصفار ومن ثم قمنا بعملية الطباعة. وكما نرى في الناتج، انشئ لنا المصفوفة.
كيف نعرف حجم المصفوفة؟
تعال نشاهد الصورة التالية:
باستخدام shape، نستطيع طباعة حجم المصفوفة كما نشاهد بعد طباعة النتائج. نلاحظ ان حجم المصفوفة طُبع لنا.
كيف أنشئ مصفوفة من نوع 2D؟ وتحتوي على أرقام معينة؟
الصورة التالية تمثل المصفوفة التي نريد كتابة الكود لها:
الشي الجديد فقط هو ان المصفوفة الان تحتوي على ارقام. تعال نشاهد الكود لكيفية إنشاء المصفوفة أعلاه.
لاحظ انه أنشائنا المصفوفة بنجاح ومن ثم طبعنا المصفوفة.
كيف أنشئ مصفوفة من نوع 3D؟ وتحتوي أرقام معينة.
نقدر ننشى هذه المصفوفة بنفس الفكرة. حاول تجرب بنفسك، واذا لم تعرف او حصل خطا، شاهد الفديو الخاص بالمفالة هذه في قناة اليوتوب. شرحت فيه الموضوع بتفاصيل أكثر. ايضا شرحت فيه بعض الاخطاء الشائعة التي قد تواجهك وأنت تطبق بنفسك.
انتقل الى الدرس التالي
انتقل الى الدرس السابق

ان اصبت فمن الله وان اخطات فمن نفسي .. لا تنسى مشاركة المقالة اذا أعجبتك .. اخوكم رائد الحربي
ولاي ملاحضات او استفسارات يرجى مراسلتي على تويتر @raedalharbi14 أو كتابة التعليق هنا

Leave a Reply

Your email address will not be published.