نشكرك على متابعة Google I / O. عرض جميع الجلسات عند الطلب مشاهدة عند الطلب

توافق المشغلين TensorFlow Lite و TensorFlow

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

تم تصميم محول TensorFlow Lite لتحليل بنية النموذج وتطبيق التحسينات من أجل جعله متوافقًا مع المشغلين المدعومين مباشرة. على سبيل المثال ، اعتمادًا على مشغلي ML في نموذجك ، قد يلغي المحول هؤلاء المشغلين أو يدمجهم من أجل تعيينهم لنظرائهم في TensorFlow Lite.

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

المشغلين المدعومين

العوامل المدمجة في TensorFlow Lite هي مجموعة فرعية من المشغلين الذين يشكلون جزءًا من مكتبة TensorFlow الأساسية. قد يتضمن نموذج TensorFlow الخاص بك أيضًا عوامل تشغيل مخصصة في شكل عوامل تشغيل مركبة أو عوامل تشغيل جديدة تحددها أنت. يوضح الرسم البياني أدناه العلاقات بين هذه العوامل.

عوامل تشغيل TensorFlow

من هذا النطاق من مشغلي نماذج ML ، هناك 3 أنواع من النماذج التي تدعمها عملية التحويل:

  1. الموديلات التي تحتوي على مشغل مدمج TensorFlow Lite فقط. ( موصى به )
  2. النماذج ذات المشغلين المدمجين والمشغلين الأساسيين لـ TensorFlow.
  3. النماذج ذات المشغلين المدمجين و / أو المشغلين الأساسيين TensorFlow و / أو المشغلين المخصصين.

إذا كان نموذجك يحتوي فقط على عمليات مدعومة محليًا بواسطة TensorFlow Lite ، فلن تحتاج إلى أي علامات إضافية لتحويله. هذا هو المسار الموصى به لأن هذا النوع من النماذج سيتم تحويله بسلاسة وهو أبسط لتحسينه وتشغيله باستخدام وقت تشغيل TensorFlow Lite الافتراضي. لديك أيضًا المزيد من خيارات النشر للطراز الخاص بك مثل خدمات Google Play . يمكنك البدء باستخدام دليل محول TensorFlow Lite . راجع صفحة TensorFlow Lite Ops للحصول على قائمة بالعوامل المدمجة.

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

كلما كان ذلك ممكنًا ، تجنب الخيار الأخير لتضمين عوامل التشغيل المخصصة في النموذج المحول الخاص بك. المشغلون المخصصون هم إما مشغلين تم إنشاؤهم من خلال الجمع بين العديد من مشغلي TensorFlow الأساسيين أو تحديد مشغل جديد تمامًا. عندما يتم تحويل المشغلين المخصصين ، يمكنهم زيادة حجم النموذج الكلي عن طريق تكبد التبعيات خارج مكتبة TensorFlow Lite المدمجة. يمكن أن تؤدي العمليات المخصصة ، إذا لم يتم إنشاؤها خصيصًا لنشر الأجهزة المحمولة أو الأجهزة ، إلى أداء أسوأ عند نشرها على أجهزة محدودة الموارد مقارنة ببيئة الخادم. أخيرًا ، تمامًا مثل تضمين مشغلي TensorFlow الأساسيين المختارين ، يطلب منك المشغلون المخصصون تعديل بيئة وقت تشغيل النموذج التي تحدك من الاستفادة من خدمات وقت التشغيل القياسية مثل خدمات Google Play .

الأنواع المدعومة

تستهدف معظم عمليات TensorFlow Lite كلاً من الاستدلال بالنقطة العائمة ( float32 ) والكمي ( uint8 ، int8 ) ، لكن العديد من العمليات لم يتم استخدامها بعد للأنواع الأخرى مثل tf.float16 والسلاسل.

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

تحويلات مباشرة إلى الأمام ، طي ثابت ودمج

يمكن معالجة عدد من عمليات TensorFlow بواسطة TensorFlow Lite على الرغم من عدم وجود مكافئ مباشر لها. هذا هو الحال بالنسبة للعمليات التي يمكن إزالتها ببساطة من الرسم البياني ( tf.identity ) ، أو استبدالها بالموترات ( tf.placeholder ) ، أو دمجها في عمليات أكثر تعقيدًا ( tf.nn.bias_add ). حتى بعض العمليات المدعومة قد تتم إزالتها أحيانًا من خلال إحدى هذه العمليات.

فيما يلي قائمة غير شاملة لعمليات TensorFlow التي تتم إزالتها عادةً من الرسم البياني:

العمليات التجريبية

عمليات TensorFlow Lite التالية موجودة ولكنها ليست جاهزة للنماذج المخصصة:

  • CALL
  • CONCAT_EMBEDDINGS
  • CUSTOM
  • EMBEDDING_LOOKUP_SPARSE
  • HASHTABLE_LOOKUP
  • LSH_PROJECTION
  • SKIP_GRAM
  • SVDF