Keras مقابل PyTorch: الفرق بين Keras و PyTorch
نشرت: 2020-12-28إذا كنت تقرأ هذا المقال ، فمن المحتمل أنك دخلت في مجال التعلم العميق وربما في طريقك لبناء مشروعك الأول للتعلم العميق. ربما تكون مرتبكًا بشأن العدد الكبير من الأطر والمكتبات المتاحة لـ Deep Learning - Keras و PyTorch و Tensorflow و FastAPI ، من بين أكثرها شيوعًا.
أطر مختلفة للتعلم العميق
في هذه المقالة ، سننظر في المقارنة بين Keras و PyTorch - وهما أكثر واجهات برمجة التطبيقات / أطر عمل للتعلم العميق. سوف نتعلم أيضًا أيهما أفضل لبناء مشروع التعلم العميق التالي.
تعتمد المقارنة على العوامل التالية:
- ظهور
- سهولة الاستعمال
- تصحيح
- أداء
- شعبية
- الخلاصة: متى تستخدم ماذا ولماذا؟
جدول المحتويات
ظهور
Keras هي واجهة برمجة تطبيقات التعلم العميق عالية المستوى. إنها مكتبة مفتوحة المصدر مبنية على Tensorflow (إطار عمل تعليمي عميق آخر من Google) ، مما يجعل كود Tensorflow أسهل في الكتابة والتنفيذ. تم تطوير Keras بواسطة Francois Chollet في عام 2015 مع مهمة أن المطور يجب أن يكون قادرًا على بناء نماذج التعلم العميق دون الكثير من التعقيد. لقد أصبح شائعًا بشكل كبير لسهولة استخدامه وبساطته النحوية.
PyTorch هو إطار عمل Python Deep Learning منخفض المستوى (مثل Tensorflow). إنها مكتبة مفتوحة المصدر تعتمد على مكتبة Torch. تم تطوير PyTorch بواسطة فريق أبحاث الذكاء الاصطناعي في Facebook في عام 2016. قد لا تكون PyTorch ، على عكس Keras ، سهلة جدًا للمبتدئين. ولكن ما تقدمه PyTorch هو مرونة رائعة وتنفيذ سريع للغاية لمجموعات البيانات الكبيرة في العالم الحقيقي.

الفائز: ارسم
اقرأ أيضًا: Tensorflow vs PyTorch
سهولة الاستعمال
بكل سهولة ، كان Keras هو إطار العمل المفضل لتعلم التعلم العميق مقارنةً بـ PyTorch. كما قيل سابقًا ، تم تطوير Keras ، مع الأخذ في الاعتبار أنه يجب أن يكون سهلًا نحويًا. لذلك ، أثناء إعداد نموذج التعلم العميق ، فإن الخطوات الأساسية التي تقوم بها هي: تحميل البيانات ، وتحديد النموذج ، وتجميع النموذج ، وتدريب النموذج ، وأخيراً التقييم. يمكن تنفيذ جميع الخطوات المذكورة أعلاه في عدد قليل جدًا من أسطر التعليمات البرمجية. على سبيل المثال ، لتحديد نموذج بسيط للشبكة العصبية ، ما يمكنك فعله باستخدام Keras هو:
تعريف النموذج
كما ترى ، فقط باستخدام model.add (...) مع عدد قليل من المعلمات المفرطة ، يمكنك إدراج طبقات في نموذج الشبكة العصبية الخاص بك. نموذج آخر. add (…) و Boom! طبقة أخرى! انه من السهل.
الآن ، بعد تعريف النموذج والتجميع ، تحتاج إلى تدريب النموذج الخاص بك على بعض مجموعة البيانات.
حسنًا ، مع Keras ، إنها قطعة من الكعكة. ما عليك سوى استخدام النموذج model.fit (...) مع ذكر بيانات الإدخال والإخراج ، وبعض المعلمات الفائقة ، وفويلا! سيبدأ نموذجك بنجاح عملية التدريب (سطر واحد فقط من التعليمات البرمجية).
تجعل هذه البنية البسيطة والموجزة والقابلة للقراءة من Keras لغة شائعة جدًا بين مبتدئين التعلم العميق وكذلك المطورين.
من ناحية أخرى ، فإن PyTorch أقل إيجازًا قليلاً ، مما يجعلها أكثر تعقيدًا. باستخدام PyTorch ، يتعين على المرء أن يمر صراحة من خلال جميع الخطوات الأساسية لتنفيذ نموذج التعلم العميق. لتدريب نموذجك فقط ، تحتاج إلى: تهيئة الأوزان في بداية كل دفعة من التدريب ، وتشغيل التمريرات الأمامية والخلفية ، وحساب الخسارة ، وتحديث الأوزان وفقًا لذلك.

فقط قسم تدريب PyTorch
نظرًا لأنك مع PyTorch تحتاج إلى التعود على جميع التفاصيل الدقيقة ، يمكنك أن تدرك أنها قد تكون مهمة شاقة للمبتدئين الذين دخلوا للتو في مجال التعلم العميق ، والمضي قدمًا في PyTorch.
الفائز: كراس
تصحيح
التصحيح هو المكان الذي تصبح فيه الأشياء مثيرة للاهتمام.
كما تعلمون جميعًا الآن ، لدى Keras العديد من الوظائف البسيطة مثل .fit (...) و .compile (...) التي تساعدنا في كتابة الرموز بسهولة. ومن ثم فإن فرص ارتكاب الأخطاء ضئيلة في كيراس. ولكن عندما ترتكب أخطاء في شفرتك (وهو أمر طبيعي تمامًا) ، فمن الصعب جدًا عادةً تصحيح الأخطاء. السبب هو أن الكثير من التفاصيل مغلفة في وظائف مختلفة تحتاج إلى تصور كل تلك التفاصيل لتجد أين تخطئ في الواقع.
مع رمز PyTorch الموضح بوضوح ، أصبح تصحيح الأخطاء أسهل بكثير. تم توضيح كل تفاصيل شبكتك العصبية في التعليمات البرمجية الخاصة بك ، وبالتالي فإن اكتشاف الخطأ يعد مهمة بسيطة نسبيًا. يمكنك تغيير الأوزان والتحيزات وطبقات الشبكة كما يحلو لك ثم محاولة تشغيل النموذج مرة أخرى.
الفائز: PyTorch
أداء
حسنًا ، من حيث الأداء ، فإن Keras متخلفة عن الركب مقارنةً بـ PyTorch.
قد تحظى Keras بشعبية كبيرة لأسبابها النحوية ولكنها لا تُفضل بشكل عام عند التعامل مع مجموعات البيانات الضخمة. Keras بطيئة في الحساب وتستخدم بشكل عام لمجموعات البيانات الأصغر حيث يحتاج المرء إلى فكرة أولية عن نموذج مثل النماذج الأولية. يتم استخدامه من قبل عدد كبير من المبتدئين كأول نموذج DL لأن هذه النماذج لا تحتوي عادةً على مجموعات بيانات ضخمة أو عبر الإنترنت.
تتألق PyTorch حقًا في هذا العامل. يتم استخدام PyTorch و TensorFlow كإطارات عمل عندما يتعامل المستخدم مع مجموعات بيانات ضخمة. PyTorch أسرع بشكل ملحوظ ولديها ذاكرة وتحسين أفضل من Keras. كما ذكرنا سابقًا ، تعد PyTorch ممتازة في تزويدنا بالمرونة لتعريف نموذج التعلم العميق الخاص بنا أو تغييره. ومن ثم يتم استخدام PyTorch في بناء حلول قابلة للتطوير. لا تمثل مجموعات البيانات على مستوى الصناعة مشكلة لـ PyTorch ، ويمكنها تجميع النماذج وتدريبها بسهولة وسرعة كبيرين.
الفائز: PyTorch
يجب أن تقرأ: مكتبات التعلم العميق مفتوحة المصدر
شعبية
المصدر: Google Trends 2020
أولاً ، يجب القول أنه عندما يكون أحد الإطارات أكثر شيوعًا من الآخر ، فهذا لا يعني دائمًا أن الباحثين يستخدمون دائمًا إطار العمل الأكثر شيوعًا على الآخر. إنهم يميلون إلى التبديل بين الأطر حسب المشاكل.
ومع ذلك ، كما ترون من التصور أعلاه لـ Google Trends 2020 ، من الواضح أن TensorFlow هو المفضل في جميع أنحاء العالم ، يليه PyTorch و Keras. يتم ملاحظة أنواع مماثلة من النتائج في جميع المرئيات تقريبًا. Tensorflow هو الفائز بلا شك من حيث الشعبية. لكن لا يمكن مقارنة Tensorflow الأصلي أو Keras الأصلي بـ PyTorch. النتائج التي نراها بشكل عام هي Keras كواجهة برمجة تطبيقات لـ TensorFlow v / s PyTorch.
الفائز: Tensorflow مع Keras

خاتمة
لذلك ، السؤال الأخير الذي يطرح نفسه. أيهما أفضل: Keras أم PyTorch؟
حسنًا ، الجواب يعتمد على المستخدم. إذا كنت ، كمستخدم ، قد دخلت للتو في مجال التعلم العميق وكنت حريصًا جدًا على بناء نموذج التعلم العميق الأول الخاص بك ، فمن الواضح أنه يجب عليك تنفيذ Keras كواجهة لـ TensorFlow في نموذجك. إنه صديق للغاية للمبتدئين ولديه أيضًا مجتمع مفيد كبير عبر الإنترنت. شكرا جزيلا لكيراس. لم يكن تدريس التعلم العميق أسهل من أي وقت مضى.
ولكن ، إذا كنت من ذوي الخبرة نسبيًا في التعلم العميق (من المحتمل أنك تعرف هذا بالفعل) ، فإن PyTorch هي ، بالطبع ، إطار العمل الأفضل بين الاثنين. أصبحت PyTorch شائعة بمعدل سريع.
تحول الرواد في مجال التعلم العميق ، وهم Ian Goodfellow و Andrej Karpathy ، وكبار الجامعات مثل Stanford إلى PyTorch لتفوقها في الأداء والسرعة والمرونة. لم يكن حل مشاكل رؤية الكمبيوتر أسهل من أي وقت مضى مع PyTorch.
لمعرفة المزيد حول التعلم العميق والأطر المختلفة المرتبطة به ، تحقق من شهادة upGrad's PG في دورة التعلم الآلي والتعلم العميق .