في المقالة هذه حشرح عن كيفية التعامل مع ال tensor في عملية الضرب، الطرح، الجمع والقسمة. نشوف أول شي الصورة التالية حتى نفهم كيف تتم عملية الجمع:
طيب نلاحظ من الصورة انه عندي ال matrix الاولى وسميتها tensor1. ايضا عندي ال matrix الثانية وسميتها tensor2. وبعد ذلك جمعتهم في المتغير الذي سميته result. تعال نشوف الكود حتى نفهم كيف يتطبق هذا الكلام.
في السطر الاول انشائنا ال matrix الاولى مع الارقام وسميناها tensor1. نفس الكلام بالنسبة للمصفوفة الثانية وسمينها tensor2. بعد ذلك جمعناهم باستخدام علامة الجمع وطبعنا. في السطر رقم ٧ طريقة اخرى لعملية الجمع. ومثل ما نلاحظ الناتج واحد.
تعال نشوف الصورة التالية لعملية الطرح بين مصفوفتين مع النتيجة.
نشوف الكود لعملية الطرح
نفس عملية الجمع بس الاختلاف في الاشارة. ايضا في سطر رقم ٧ استخدمت طريقة اخرى للطرح. وكما نرى نتيجة الطرح صحيحة.
في عملية الضرب هناك نوعين من الضرب وهما :
هالمصطلحين حتقابلك كثير جدا وفيه ناس تلخبط بينهم. فاليوم حنعرف كيف نحسبهم وفي مقالة لاحقة حشرح ما الفروقات بينهم وفين اماكن استخدامهم. طيب نشوف الصورة التالية :
في عملية الضرب هناك نوعين من الضرب وهما :
-
Element wise multiplication
-
Matrix multiplication (dot product)
هالمصطلحين حتقابلك كثير جدا وفيه ناس تلخبط بينهم. فاليوم حنعرف كيف نحسبهم وفي مقالة لاحقة حشرح ما الفروقات بينهم وفين اماكن استخدامهم. طيب نشوف الصورة التالية :
الصورة الاولى مثل ما كتبت وهي ال
element wise multiplication
وهي تعني باختصار ان اضرب كل عنصر من المصفوفة الاولى في العنصر المقابل في المصفوفة الثانية. مثلا ٢ ضرب ٢٠ والناتج كان ٤٠ وهو ما نشاهده في ناتج المصفوفة في الخانة المقابلة.
الصورة الثانية تمثل ال dot product وتعني ان نضرب الصف الاول من المصفوفة الاولة في العامود الاول من المصفوفة الثانية وهذا ما يعطينا نتيجة ٧٠ مثل ما شرحت لك فوق. لو حنحسب كيف جبنا ١٠٠؟ حنضرب الصف الاول من المصفوفة الاولى في العامود الثاني من المصفوفة الثانية. يعني حيسير الناتج عندنا (1*20)+(2*40) والناتج حيكون ١٠٠ مثل ما نرى. ايضا مثال اخر كيف نحسب ٢٢٠ وهو موضح في الصورة. طيب نشوف في الاكواد كيف نطبق هالشي ونتاكد هل تعطينا نفس النتائج التي نرى في الصورة.
الصورة الثانية تمثل ال dot product وتعني ان نضرب الصف الاول من المصفوفة الاولة في العامود الاول من المصفوفة الثانية وهذا ما يعطينا نتيجة ٧٠ مثل ما شرحت لك فوق. لو حنحسب كيف جبنا ١٠٠؟ حنضرب الصف الاول من المصفوفة الاولى في العامود الثاني من المصفوفة الثانية. يعني حيسير الناتج عندنا (1*20)+(2*40) والناتج حيكون ١٠٠ مثل ما نرى. ايضا مثال اخر كيف نحسب ٢٢٠ وهو موضح في الصورة. طيب نشوف في الاكواد كيف نطبق هالشي ونتاكد هل تعطينا نفس النتائج التي نرى في الصورة.
نلاحظ انه عندما نريد استخدام Element wise multiplication، كل ما علينا استخدام علامة الضرب * كما نرى في السطر رقم ٤. وعندما نريد استخدام النوع الثاني وهو Matrix multiplication (dot product)
، فكل ما علينا استخدام الامر torch.mm(ونضع هنا اسم المصفوفة الاولى والثانية) . وكما نرى عند طباعة النتائج. النتائج كانت مطابقة لما شرحته سابقا.
لمتابعة الفديو الخاص بالمقالة، الرجاء الضغط
هنا
ان اصبت فمن الله وان اخطات فمن نفسي .. لا تنسى مشاركة المقالة اذا أعجبتك .. اخوكم رائد الحربي
ولاي ملاحضات او استفسارات يرجى مراسلتي على تويتر @raedalharbi14 أو كتابة التعليق هنا
ان اصبت فمن الله وان اخطات فمن نفسي .. لا تنسى مشاركة المقالة اذا أعجبتك .. اخوكم رائد الحربي
ولاي ملاحضات او استفسارات يرجى مراسلتي على تويتر @raedalharbi14 أو كتابة التعليق هنا