واجهات برمجة تطبيقات SavedModel الشائعة لـ TF Hub

مقدمة

يستضيف TensorFlow Hub نماذج لمجموعة متنوعة من المهام. يتم تشجيع النماذج الخاصة بالمهمة نفسها على تنفيذ واجهة برمجة تطبيقات مشتركة بحيث يمكن للمستهلكين النموذجيين استبدالها بسهولة دون تعديل الكود الذي يستخدمهم ، حتى لو كانوا من ناشرين مختلفين.

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

يجمع هذا الدليل مواصفات واجهات برمجة التطبيقات الشائعة للنماذج بتنسيق TF2 SavedModel . (يحل محل التوقيعات العامة لتنسيق TF1 Hub الذي تم إيقافه الآن.)

SavedModel القابل لإعادة الاستخدام: الأساس المشترك

تحدد واجهة برمجة التطبيقات SavedModel القابلة لإعادة الاستخدام الاصطلاحات العامة حول كيفية تحميل SavedModel مرة أخرى في برنامج Python وإعادة استخدامه كجزء من نموذج TensorFlow أكبر.

الاستخدام الأساسي:

obj = hub.load("path/to/model")  # That's tf.saved_model.load() after download.
outputs = obj(inputs, training=False)  # Invokes the tf.function obj.__call__.

بالنسبة لمستخدمي Keras ، تعتمد فئة hub.KerasLayer على واجهة برمجة التطبيقات هذه لتغليف نموذج SavedModel القابل لإعادة الاستخدام كطبقة Keras (حماية مستخدمي Keras من تفاصيلها) ، مع المدخلات والمخرجات وفقًا لواجهات برمجة التطبيقات الخاصة بالمهمة المدرجة أدناه.

واجهات برمجة التطبيقات الخاصة بالمهام

تعمل هذه على تحسين واجهة برمجة التطبيقات SavedModel القابلة لإعادة الاستخدام باستخدام اصطلاحات لمهام معينة وأنواع بيانات معينة.