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