شرح تفصيلي – Pytorch في dimnsions كيفية التعامل مع الابعاد

في هذه المقالة حشرح موضوع مهم جدا وهو كيفية التعامل مع الابعاد عند الجمع. الموضوع اذا نظرت له على مستوى vector واحد، حيكون سهل جدا لكن مجرد ما تتعامل معاه مع مصفوفات matrix من 2D وأكثر يكون الموضوع محير ويحتاج تركيز وتعتبر من الاخطاء الشائعة. تعال نرى صورة ال vector التالية:
تعال نشوف الكود كيف نجمع كل الارقام في هذا vector.
نلاحظ في اول سطر عرفنا ال tensor وبعدين في السطر الثاني جمعنا جميع الارقام في tensor وفي السطر الثالث طبعنا الناتج وهو ١٠ اي ناتج جمع جميع الارقام في vector. نشوف الان مثال اخر لكن لمصفوفة اخرى. افرض عندنا المصفوفة matrix التالية:
نبغى نجمع عناصرها. تعال نرى الكود كيف نجمع
نفس طريقة جمع ال vector. لكن انت في كثير من الاحيان ما تحتاج تجمع كل العناصر تحتاج مثلا العناصر من كل عامود او من كل صف. على حسب المشكلة التي انت تتعامل معاها او المودل الذي تحاول ان تبنيه. لكن تأكد وحنشوف هذا كثير في الامثلة العملية. انت تحتاج تجمع بالنسبة لصف معين او عامود معين. طيب تعال نشوف تعريف الدالة torch.sum من الموقع الرسمي.
نلاحظ عندي paramter اسمه dim نسبة الى dimnsion. هذا نفس الكلام ينطبق على axeis في numpy لان الفكرة وحدة.

حتشوف تعريفات كثيرة جدا جدا في الانترنت ممكن تلخبطك وتضيع الفكرة. وممكن بعضها الى الان راسخ في بالك مثلا يقولك اذا كان dim = 0 معناه اجمع الصفوف واذا كان dim = 1 معناه اجمع الاعمدة. وفيه تعاريف اخرى يقولك لا هذا يقصد جميع row-elemnt wise وما الى اخره.

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

نشوف الصورة التالية:
نشوف الان الكود:
نلاحظ النتائج نفس ما شرحت في الصورة السابقة. لمتابعة الفديو الخاص بالمقالة، الرجاء الضغط هنا

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

Leave a Reply

Your email address will not be published.