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

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

عقدة المصدر: 1988879

المُقدّمة

تقدم الفائدة في تعلم عميق في السنوات الأخيرة وانتشار أدوات التعلم الآلي مثل TensorFlow و PyTorch وما إلى ذلك ، سيتم الاستشهاد بها أيضًا ، مما سيوفر سهولة الاستخدام وتصحيح الأخطاء بسهولة.

ستكتسب العديد من الأطر الشائعة مثل MxNet و Tensorflow و Jax و PaddlePaddle و Caffe 2 و Mindspore و Theano شهرة لأنها ستنشئ رسمًا بيانيًا ثابتًا لتدفق البيانات يمثل الحساب ويمكن تطبيقه على مجموعات من البيانات. على الرغم من أنها ستوفر رؤية في الحساب بالكامل ومن الناحية النظرية ، إلا أنها يتم تعزيزها من خلال تحسين الأداء وقابلية التوسع. سيأتي ذلك على حساب المرونة وسهولة التصحيح والاستخدام.

تقدم هذه المقالة رؤى حول Pytorch ، وهو إطار عمل للتعلم الآلي مكتوب بلغة Python. نظرًا لأن معظم أطر التعلم العميق تركز إما على قابلية الاستخدام أو السرعة ، لكن Pytorch تُظهر أن هذين الهدفين متوافقان: فهو مصمم لدعم أسلوب البرمجة الحتمية والبايثونية التي ستدعم الأكواد كنماذج ، مما يجعل تصحيح الأخطاء أمرًا سهلاً ، وسيظل فعالاً ويدعمه. أدوات مسرعات الأجهزة مثل GPU (وحدة معالجة الرسوم) و TPU (وحدات معالجة Tensor).

تم بناء العديد من مكتبات Python على قمة PyTorch ، مثل torch-vision و Timm لرؤية الكمبيوتر ونص الشعلة ووجه العناق للنص وصوت الشعلة للكلام ، والتي تمنح PyTorch قوتها.

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

جدول المحتويات

لماذا Pytorch؟

  • إنه إطار التعلم العميق البحثي الأكثر شيوعًا.
  • قادرة على الوصول إلى العديد من نماذج التعلم العميق المبنية مسبقًا (Torch Hub / torch-vision.models).
  • المكدس الكامل: بيانات المعالجة المسبقة ، بيانات النموذج ، نشر النموذج في التطبيق / السحابة الخاصة بك.
  • تم تصميمه واستخدامه داخليًا من قِبل Facebook / Meta (الآن مفتوح المصدر وتستخدمه شركات مثل Tesla و Microsoft و Open AI).
  • يقلل PyTorch من الحمل المعرفي مع التركيز على المرونة والسرعة.
  • منذ إصدار PyTorch في أوائل عام 2017 ، ستكتسب شعبية.

زيادة اتجاهات Pytorch منذ إطلاقها.

بيتورتش

موتر

Tensor هو لبنة أساسية في Pytorch ، وهو في الأساس مثل a صفيف Numpy. يتم استخدامه في الغالب لتحويل الصور والصوت إلى شكل رياضي يستخدم للمعالجة ، لأن أجهزة الكمبيوتر لا تفهم الصور ولكن الأرقام القياسية. وبالتالي ، من المهم تحويل الصور إلى أشكال رقمية.

واحدة من الميزات الهامة التي تقدمها الموترات هي أنها يمكن أن تخزن تتبع جميع العمليات التي يتم إجراؤها عليها ، مما يساعد على حساب المخرجات المحسّنة ؛ يمكن القيام بذلك باستخدام وظيفة Autograd للموتر.

بعبارات مبسطة ، قشارة - متجه - مصفوفات - موتر كتدفق

1. Scaler هو متجه 0-البعد.

2. المتجه هو متجه أحادي البعد.

3. المصفوفات هي متجهات ثنائية الأبعاد.

4. الموترات هي موتر معمم ذات أبعاد N.

موتر Pytorch

حالات استخدام الموتر

Pytorch هو أحد برامج Google Collab المضمنة ، والآن ننظر في كيفية استخدام أكواده الأساسية للعمل على Pytorch Tensors.

1. استيراد Pytorch والحصول على نسخته.

 import torch print(torch.__version__) # Output 1.13.1+cu116

2. إنشاء قشارة في Pytorch.

scaler = torch.tensor(7)
scaler
# Output
tensor(7)

3. إنشاء موتر في Pytorch.

vector = torch.tensor([7,7])
vector
# output
tensor([7, 7])

4. للحصول على الأبعاد في Torch ، يمكننا استخدام:

vector.ndim
# output
1

5. للحصول على شكل ناقل في الشعلة.

vector.shape
# Output
torch.Size([2])

6. للحصول على المصفوفة في Pytorch.

Matrix = torch.tensor([[1,7], [2,7]])
# output
tensor([[1, 7], [2, 7]])

7. لإنشاء أرقام عشوائية في Pytorch.

random = torch.rand(7)
# output
tensor([0.0324, 0.9962, 0.0709, 0.7007, 0.6523, 0.0256, 0.4912])

8. تنفيذ الوظائف المضمنة مثل الضرب والجمع والطرح في الموتر.

9. إنشاء موتر عائم.

torch.FloatTensor([1.1, 1.2, 1.3])
# Output
tensor([1.1000, 1.2000, 1.3000])

10. إنشاء مجموعة من الأرقام باستخدام Pytorch.

torch.arange(0,10) # Output
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

لماذا تعتبر موترات PyTorch مهمة بالنسبة لـ ML و DL؟

في مشكلة التعلم الآلي الخاضعة للإشراف ، لدينا بيانات مرتبة في صفوف وأعمدة مع بعض القيم المستهدفة (يمكن أن يكون تصنيفًا ثنائيًا مثل True / False أو Yes / No أو يمكن أن يكون كيانًا رقميًا). كما نعلم لمعالجة خوارزميات التعلم الآلي ، يجب تغذية البيانات في أشكال رياضية. يشبه الجدول بشكل طبيعي المصفوفة ثنائية الأبعاد حيث يمكن تدريس كل صف (مثيل) أو عمود (ميزة) كمتجهات 2-D نظرًا لأن خوارزمية التعلم الآلي ستفهم فقط الأرقام الرقمية ، ويمكن التعامل مع الصور بالأبيض والأسود على أنها مصفوفة ثنائية الأبعاد تحتوي على أرقام 1 و 2 ويتم إدخالها في شبكة عصبية لتصنيف الصور أو تقسيمها.

بيانات التسلسل أو بيانات السلاسل الزمنية هي مثال آخر حيث يتم إصلاح بُعد واحد (الوقت) في البيانات ثنائية الأبعاد. على سبيل المثال:

1. بيانات تخطيط القلب في آلات المراقبة.

2. تدفق بيانات تتبع أسعار سوق الأسهم.

هذه أمثلة على استخدام الموترات ثنائية الأبعاد في التعلم الآلي الكلاسيكي (الانحدار الخطي ، وشجرة القرار ، وآلة ناقلات الدعم ، والغابة العشوائية ، والانحدار اللوجستي ، وما إلى ذلك) وخوارزميات التعلم العميق.

ستعتبر الصورة الملونة أو ذات التدرج الرمادي موترًا ثلاثي الأبعاد. الموتر ثلاثي الأبعاد (أو موتر الرتبة 3) هو مكعب أو مجموعة من المصفوفات مثل ذلك.

موتر Pytorch

في موتر ثلاثي الأبعاد ، يرتبط كل بكسل بـ "قنوات الألوان" - متجه من 3 أرقام تمثل شدة باللون الأحمر والأخضر والأزرق (مصفوفة RGB). عادةً ما يتم تلوين البيكسل بالكمية المطلوبة من الأحمر والأخضر والأزرق داخل حدود بايت واحد. ستبدو مصفوفات القيمة هذه من 3 إلى 0 بالشكل [255،255,255,255،32] للأعداد الصحيحة. عندما يكون الموتر الخاص بنا هو نوع بيانات int32 ، فهذه هي طريقة التفسير المستخدمة ، وعندما يكون الموتر الخاص بنا هو نوع بيانات float0 ، يُفترض أن تكون القيمة المرتبطة في نطاق 1-255,255,255. لذا ، فإن العدد الصحيح [1,1,1،XNUMX،XNUMX] سيمثل الأبيض النقي ، ولكن في الطفو ، سيتم تمثيله كـ [XNUMX،XNUMX،XNUMX] للأبيض النقي.

هذا يعني أن الموتر ثلاثي الأبعاد مطلوب لتخزين الصور. يجب حفظ كل بكسل ثلاثي القيم بالعرض والارتفاع المحددين. ستحتاج إلى تحديد التنسيق الأفضل للاستخدام ، تمامًا كما فعلت مع لغز tic-tac-toe. إنه إجراء قياسي في TensorFlow و TensorFlow.js لحفظ قيم RGB في البعد النهائي للموتر. علاوة على ذلك ، يعد تخزين قيم الطول والعرض وأبعاد اللون بهذا الترتيب أمرًا شائعًا. على الرغم من أن معالجة الصفوف ثم الأعمدة هي التسلسل المرجعي التنظيمي التقليدي للمصفوفات ، فقد يبدو هذا غريبًا بالنسبة للصور.

وبالمثل ، يمكن اعتبار الفيديو كسلسلة من الصور الملونة أو إطار في الوقت المناسب ، ويمكن تدريس الفيديو كموترات رباعية الأبعاد.

بمعنى آخر ، قد تمثل الموترات متعددة الأبعاد بسهولة أنواعًا مختلفة من البيانات من العالم المادي ، بما في ذلك بيانات المستشعر والأداة ، والبيانات التجارية والمالية ، وبيانات من التجارب العلمية أو الاجتماعية ، مما يجعلها مناسبة للمعالجة بواسطة خوارزميات ML / DL في الداخل كمبيوتر.

وفي الختام

Pytorch هو إطار عمل للتعلم الآلي مكتوب بلغة Python. تم إنشاء العديد من مكتبات Python ، مثل torch-vision و Timm for computer vision ، فوق PyTorch. إنه قادر على الوصول إلى العديد من نماذج التعلم العميق المبنية مسبقًا. يمكن لـ Pytorch معالجة البيانات وبيانات النموذج مسبقًا ونشر النماذج في التطبيق / السحابة الخاصة بك. Tensor هو لبنة أساسية في Pytorch ، وهو في الأساس نفس مصفوفة Numpy. يستخدم في الغالب لتحويل الصور والصوت إلى شكل رياضي يستخدم لمعالجة الكمبيوتر. ستعتبر الصورة الملونة أو ذات التدرج الرمادي موترًا ثلاثي الأبعاد ، وسيعتبر الفيديو موترًا رباعي الأبعاد.

الوسائط الموضحة في هذه المقالة ليست مملوكة لـ Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف. 

الطابع الزمني:

اكثر من تحليلات Vidhya