تتم المحافظة عليه بواسطة تحسين نموذج TensorFlow
هناك نوعان من التكميم: التكميم بعد التدريب والتدريب الواعي للتكميم. ابدأ بالتكميم بعد التدريب لأنه أسهل في الاستخدام، على الرغم من أن التدريب المدرك للتكميم غالبًا ما يكون أفضل لدقة النموذج.
توفر هذه الصفحة نظرة عامة على التدريب المدرك للتكميم لمساعدتك في تحديد مدى ملاءمته لحالة الاستخدام الخاصة بك.
- للتعمق في مثال شامل، راجع المثال التدريبي المدرك للتكميم .
- للعثور بسرعة على واجهات برمجة التطبيقات التي تحتاجها لحالة الاستخدام الخاصة بك، راجع الدليل الشامل للتدريب على القياس الكمي .
ملخص
يحاكي التدريب المدرك للتكميم تكميم وقت الاستدلال، مما يؤدي إلى إنشاء نموذج ستستخدمه الأدوات النهائية لإنتاج نماذج كمية بالفعل. تستخدم النماذج الكمية دقة أقل (على سبيل المثال، 8 بت بدلاً من تعويم 32 بت)، مما يؤدي إلى فوائد أثناء النشر.
نشر مع التكميم
يؤدي التكميم إلى تحسينات من خلال ضغط النموذج وتقليل زمن الوصول. باستخدام الإعدادات الافتراضية لواجهة برمجة التطبيقات (API)، يتقلص حجم النموذج بمقدار 4x، ونرى عادةً تحسينات تتراوح بين 1.5 إلى 4x في زمن استجابة وحدة المعالجة المركزية في الواجهات الخلفية التي تم اختبارها. في نهاية المطاف، يمكن رؤية تحسينات زمن الوصول على مسرعات التعلم الآلي المتوافقة، مثل EdgeTPU وNNAPI.
يتم استخدام هذه التقنية في الإنتاج في حالات استخدام الكلام والرؤية والنص والترجمة. يدعم الكود حاليًا مجموعة فرعية من هذه النماذج .
تجربة التكميم والأجهزة المرتبطة بها
يمكن للمستخدمين تكوين معلمات التكميم (على سبيل المثال، عدد البتات) وإلى حد ما، الخوارزميات الأساسية. لاحظ أنه مع هذه التغييرات من إعدادات واجهة برمجة التطبيقات الافتراضية، لا يوجد حاليًا أي مسار مدعوم للنشر إلى الواجهة الخلفية. على سبيل المثال، يدعم تحويل TFLite وتطبيقات kernel تكميم 8 بت فقط.
تعتبر واجهات برمجة التطبيقات الخاصة بهذا التكوين تجريبية ولا تخضع للتوافق مع الإصدارات السابقة.
توافق واجهة برمجة التطبيقات
يمكن للمستخدمين تطبيق التكميم باستخدام واجهات برمجة التطبيقات التالية:
- بناء النموذج:
keras
مع النماذج التسلسلية والوظيفية فقط. - إصدارات TensorFlow: TF 2.x لـ tf-nightly.
-
tf.compat.v1
مع حزمة TF 2.X غير مدعوم.
-
- وضع تنفيذ TensorFlow: التنفيذ المتلهف
تتضمن خريطة الطريق الخاصة بنا إضافة الدعم في المجالات التالية:
- بناء النموذج: توضيح كيف تقتصر النماذج ذات الفئات الفرعية على عدم وجود دعم
- التدريب الموزع:
tf.distribute
مصفوفة الدعم العامة
يتوفر الدعم في المجالات التالية:
- تغطية النموذج: النماذج التي تستخدم الطبقات المدرجة في القائمة المسموح بها ، وBatchNormalization عندما تتبع طبقات Conv2D وDepthwiseConv2D، وفي حالات محدودة،
Concat
. - تسريع الأجهزة: تتوافق الإعدادات الافتراضية لواجهة برمجة التطبيقات (API) لدينا مع التسريع على الواجهات الخلفية لـ EdgeTPU، وNNAPI، وTFLite، وغيرها. انظر التحذير في خريطة الطريق.
- النشر مع التكميم: يتم حاليًا دعم التكميم لكل محور للطبقات التلافيفية فقط، وليس التكميم لكل موتر.
تتضمن خريطة الطريق الخاصة بنا إضافة الدعم في المجالات التالية:
- تغطية النموذج: ممتدة لتشمل RNN/LSTMs ودعم Concat العام.
- تسريع الأجهزة: تأكد من أن محول TFLite يمكنه إنتاج نماذج ذات عدد صحيح كامل. راجع هذه المشكلة للحصول على التفاصيل.
- تجربة حالات استخدام التكميم:
- قم بتجربة خوارزميات التكميم التي تمتد عبر طبقات Keras أو تتطلب خطوة التدريب.
- استقرار واجهات برمجة التطبيقات.
نتائج
تصنيف الصور بالأدوات
نموذج | دقة أعلى 1 غير كمية | دقة كمية 8 بت |
---|---|---|
موبايل نت V1 224 | 71.03% | 71.06% |
ريسنت v1 50 | 76.3% | 76.1% |
موبايل نت V2 224 | 70.77% | 70.01% |
تم اختبار النماذج على Imagenet وتقييمها في كل من TensorFlow وTFLite.
تصنيف الصور للتقنية
نموذج | دقة أعلى 1 غير كمية | دقة كمية 8 بت |
---|---|---|
ناس نت موبايل | 74% | 73% |
ريسنيت-v2 50 | 75.6% | 75% |
تم اختبار النماذج على Imagenet وتقييمها في كل من TensorFlow وTFLite.
أمثلة
بالإضافة إلى مثال التدريب المدرك للتكميم ، راجع الأمثلة التالية:
- نموذج CNN في مهمة تصنيف الأرقام المكتوبة بخط اليد MNIST مع التكميم: الكود
للحصول على خلفية حول شيء مماثل، راجع ورقة التكميم والتدريب للشبكات العصبية من أجل الاستدلال الفعال للحساب الصحيح فقط . تقدم هذه الورقة بعض المفاهيم التي تستخدمها هذه الأداة. التنفيذ ليس هو نفسه تمامًا، وهناك مفاهيم إضافية مستخدمة في هذه الأداة (على سبيل المثال، التكميم لكل محور).