Keras: واجهة برمجة التطبيقات عالية المستوى لـ TensorFlow

Keras هي واجهة برمجة التطبيقات عالية المستوى لمنصة TensorFlow. فهو يوفر واجهة سهلة الاستخدام وعالية الإنتاجية لحل مشكلات التعلم الآلي (ML)، مع التركيز على التعلم العميق الحديث. يغطي Keras كل خطوة من خطوات سير عمل التعلم الآلي، بدءًا من معالجة البيانات وحتى ضبط المعلمات الفائقة وحتى النشر. تم تطويره مع التركيز على تمكين التجريب السريع.

مع Keras، لديك حق الوصول الكامل إلى قابلية التوسع وإمكانيات TensorFlow عبر الأنظمة الأساسية. يمكنك تشغيل Keras على TPU Pod أو مجموعات كبيرة من وحدات معالجة الرسومات، ويمكنك تصدير نماذج Keras لتشغيلها في المتصفح أو على الأجهزة المحمولة. يمكنك أيضًا تقديم نماذج Keras عبر واجهة برمجة تطبيقات الويب.

تم تصميم Keras لتقليل العبء المعرفي من خلال تحقيق الأهداف التالية:

  • تقديم واجهات بسيطة ومتسقة.
  • تقليل عدد الإجراءات المطلوبة لحالات الاستخدام الشائعة.
  • توفير رسائل خطأ واضحة وقابلة للتنفيذ.
  • اتبع مبدأ الكشف التدريجي عن التعقيد: من السهل البدء، ويمكنك إكمال سير العمل المتقدم من خلال التعلم أثناء التقدم.
  • تساعدك على كتابة تعليمات برمجية موجزة وقابلة للقراءة.

من يجب عليه استخدام Keras

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

هناك عدد قليل من حالات الاستخدام (على سبيل المثال، إنشاء أدوات أعلى TensorFlow أو تطوير النظام الأساسي الخاص بك عالي الأداء) التي تتطلب واجهات برمجة التطبيقات الأساسية TensorFlow ذات المستوى المنخفض. ولكن إذا كانت حالة الاستخدام الخاصة بك لا تندرج ضمن أحد تطبيقات Core API ، فيجب أن تفضل Keras.

مكونات واجهة برمجة تطبيقات Keras

هياكل البيانات الأساسية لـ Keras هي الطبقات والنماذج . الطبقة عبارة عن تحويل بسيط للمدخلات والمخرجات، والنموذج عبارة عن رسم بياني غير دوري موجه (DAG) للطبقات.

طبقات

فئة tf.keras.layers.Layer هي التجريد الأساسي في Keras. تحتوي Layer على الحالة (الأوزان) وبعض العمليات الحسابية (المحددة في طريقة tf.keras.layers.Layer.call ).

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

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

عارضات ازياء

النموذج هو كائن يجمع الطبقات معًا ويمكن تدريبه على البيانات.

أبسط نوع من النماذج هو النموذج Sequential ، وهو عبارة عن مجموعة خطية من الطبقات. بالنسبة للبنيات الأكثر تعقيدًا، يمكنك إما استخدام واجهة برمجة تطبيقات Keras الوظيفية ، والتي تتيح لك إنشاء رسوم بيانية عشوائية للطبقات، أو استخدام الفئات الفرعية لكتابة النماذج من البداية .

تتميز فئة tf.keras.Model بأساليب تدريب وتقييم مدمجة:

  • tf.keras.Model.fit : يدرب النموذج لعدد محدد من العصور.
  • tf.keras.Model.predict : يولد تنبؤات الإخراج لعينات الإدخال.
  • tf.keras.Model.evaluate : إرجاع قيم الخسارة والمقاييس الخاصة بالنموذج؛ تم تكوينه عبر طريقة tf.keras.Model.compile .

تتيح لك هذه الطرق الوصول إلى ميزات التدريب المضمنة التالية:

  • عمليات الاسترجاعات . يمكنك الاستفادة من عمليات الاسترجاعات المضمنة للإيقاف المبكر وفحص النماذج ومراقبة TensorBoard . يمكنك أيضًا تنفيذ عمليات الاسترجاعات المخصصة .
  • التدريب الموزع . يمكنك بسهولة توسيع نطاق تدريبك ليشمل وحدات معالجة الرسومات، أو وحدات TPU، أو الأجهزة المتعددة.
  • خطوة الانصهار. باستخدام الوسيطة steps_per_execution في tf.keras.Model.compile ، يمكنك معالجة دفعات متعددة في استدعاء tf.function واحد، مما يحسن بشكل كبير استخدام الجهاز على وحدات TPU.

للحصول على نظرة عامة تفصيلية حول كيفية استخدام fit ، راجع دليل التدريب والتقييم . لمعرفة كيفية تخصيص حلقات التدريب والتقييم المضمنة، راجع تخصيص ما يحدث في fit() .

واجهات برمجة التطبيقات والأدوات الأخرى

توفر Keras العديد من واجهات برمجة التطبيقات والأدوات الأخرى للتعلم العميق، بما في ذلك:

للحصول على قائمة كاملة بواجهات برمجة التطبيقات المتاحة، راجع مرجع Keras API . لمعرفة المزيد حول مشاريع ومبادرات Keras الأخرى، راجع نظام Keras البيئي .

الخطوات التالية

للبدء في استخدام Keras مع TensorFlow، راجع المواضيع التالية:

لمعرفة المزيد عن Keras، راجع المواضيع التالية على keras.io :