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، راجع المواضيع التالية:
- النموذج التسلسلي
- واجهة برمجة التطبيقات الوظيفية
- التدريب والتقييم باستخدام الأساليب المضمنة
- صنع طبقات ونماذج جديدة عبر التصنيف الفرعي
- التسلسل والحفظ
- العمل مع طبقات المعالجة المسبقة
- تخصيص ما يحدث في الملاءمة ()
- كتابة حلقة تدريبية من الصفر
- العمل مع RNNs
- فهم الإخفاء والحشو
- كتابة ردود الاتصال الخاصة بك
- نقل التعلم والضبط
- Multi-GPU والتدريب الموزع
لمعرفة المزيد عن Keras، راجع المواضيع التالية على keras.io :