0Pricing
Learn AI with Python · درس

موترات PyTorch وAutograd

‏torch.Tensor وrequires_grad وbackward() وحساب التدرجات وعمليات الموترات

موترات PyTorch وAutograd درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ما هو PyTorch؟

PyTorch هو إطار عمل للتعلّم العميق مبني حول الموترات، وهي مصفوفات متعددة الأبعاد مع تسريع باستخدام GPU والاشتقاق التلقائي. الركيزتان الأساسيتان اللتان يجب إتقانهما أولًا هما الموترات وautograd.

pip install torch

import torch

إنشاء الموترات

يشبه الموتر مصفوفة NumPy، لكنه يمكن أن يوجد على GPU ويتتبّع التدرجات. يمكنكم إنشاء موتر باستخدام torch.tensor. للموترات shape وdtype.

x = torch.tensor([1.0, 2.0, 3.0])
print(x.shape)   # torch.Size([3])
print(x.dtype)   # torch.float32

عمليات الموترات

تدعم الموترات العمليات الحسابية عنصرًا بعنصر، وضرب المصفوفات، وإعادة تشكيل البيانات. وتُنفَّذ العمليات بطريقة متجهة وبسرعة على العتاد. وهذا هو الأساس الحسابي لكل شبكة عصبية.

a = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
b = torch.tensor([[5.0, 6.0], [7.0, 8.0]])
print(a + b)
print(a @ b)  # matrix multiply

requires_grad: تتبّع التدرجات

لحساب التدرجات، أنشئوا موترًا باستخدام requires_grad=True. عندها يسجّل PyTorch كل عملية تُجرى عليه، ويبني رسمًا بيانيًا للحساب يمكنه اشتقاقه لاحقًا.

x = torch.tensor([2.0, 3.0], requires_grad=True)
print(x.requires_grad)  # True

بناء عملية حسابية

طبّقوا عمليات على موتر يتتبّع التدرجات لإنتاج مخرج عددي مفرد. هنا نربّع كل عنصر ثم نجمع العناصر، فنحصل على رقم واحد يمكننا اشتقاقه بالنسبة إلى x.

x = torch.tensor([2.0, 3.0], requires_grad=True)
y = x.pow(2).sum()   # y = x0^2 + x1^2
print(y)             # tensor(13., grad_fn=...)

استدعاء backward()

استدعوا .backward() على قيمة عددية مفردة لحساب التدرجات عبر الانتشار العكسي. يتنقّل PyTorch في الرسم البياني المسجّل بالترتيب العكسي، ويملأ المشتقات تلقائيًا.

y.backward()

قراءة .grad

بعد استدعاء backward()، يحتفظ كل موتر إدخال بتدرّجه في .grad. بالنسبة إلى y = sum(x^2)، تكون المشتقة هي 2x، ولذلك يكون التدرّج هو [4, 6].

print(x.grad)  # tensor([4., 6.])

تراكم التدرجات

هناك أمر دقيق يجب الانتباه إليه: تتراكم التدرجات، أي تُجمع، عبر استدعاءات backward() المتعددة. في حلقة التدريب، يجب تصفيرها في كل خطوة باستخدام x.grad.zero_() أو zero_grad() الخاص بالمحسّن.

x.grad.zero_()  # reset before the next backward()

torch.no_grad() للاستدلال

أثناء الاستدلال لا تحتاجون إلى التدرجات، وتتسبب متابعتها في هدر الذاكرة. غلّفوا رمز التنبؤ داخل with torch.no_grad(): لتعطيل بناء الرسم البياني وتسريع التنفيذ.

with torch.no_grad():
    preds = x.pow(2).sum()
    print(preds.requires_grad)  # False

detach() لإيقاف تدفق التدرجات

يعيد .detach() موترًا يشارك البيانات نفسها، لكنه يُفصل عن الرسم البياني للحساب. استخدموه للاستفادة من قيمة ما دون السماح للتدرجات بالتدفق عبرها إلى الخلف، مثلًا عند تسجيل البيانات أو تجميد جزء من الشبكة.

z = x.detach()
print(z.requires_grad)  # False

لماذا يُعد Autograd مهمًا؟

إن autograd هو ما يجعل التعلّم العميق عمليًا: تعرّفون العملية الحسابية الأمامية، ويشتق PyTorch التدرجات اللازمة للانتشار العكسي تلقائيًا. وتعتمد كل حلقة تدريب تكتبونها على requires_grad وbackward و.grad.

تحقق سريع

اختبروا مدى فهمكم لـ autograd.

خلاصة: الموترات وAutograd

أنشأتم الموترات باستخدام torch.tensor، ومكّنتم تتبّع التدرجات عبر requires_grad=True. حسبتم مخرجًا، وشغّلتم .backward()، وقرأتم المشتقات من .grad. وتعلّمتم أن التدرجات تتراكم، واستخدمتم torch.no_grad() للاستدلال، و.detach() لقطع تدفق التدرجات.

الأسئلة الشائعة

هل درس «موترات PyTorch وAutograd» مجاني؟

نعم — نص درس «موترات PyTorch وAutograd» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «موترات PyTorch وAutograd»؟

‏torch.Tensor وrequires_grad وbackward() وحساب التدرجات وعمليات الموترات تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «موترات PyTorch وAutograd»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. موترات PyTorch وAutograd
  2. مجموعات البيانات ومحملات البيانات المخصصة
  3. بناء شبكات CNN وتدريبها في PyTorch
  4. اكتشاف الأجسام باستخدام YOLOv8
← العودة إلى Learn AI with Python