تتم صيانته بواسطة Arm ML Tooling
يقدم هذا المستند نظرة عامة على تجميع الوزن لمساعدتك في تحديد مدى ملاءمته لحالة الاستخدام الخاصة بك.
- للتعمق في مثال شامل، راجع مثال تجميع الوزن .
- للعثور بسرعة على واجهات برمجة التطبيقات التي تحتاجها لحالة الاستخدام الخاصة بك، راجع الدليل الشامل لتجميع الوزن .
ملخص
يؤدي التجميع، أو مشاركة الوزن، إلى تقليل عدد قيم الوزن الفريدة في النموذج، مما يؤدي إلى فوائد النشر. يقوم أولاً بتجميع أوزان كل طبقة في مجموعات N ، ثم يشارك قيمة النقطه الوسطى للمجموعة لجميع الأوزان التي تنتمي إلى المجموعة.
توفر هذه التقنية تحسينات عبر ضغط النموذج. يمكن أن يؤدي دعم إطار العمل المستقبلي إلى إطلاق تحسينات في بصمة الذاكرة والتي يمكن أن تحدث فرقًا حاسمًا في نشر نماذج التعلم العميق على الأنظمة المدمجة ذات الموارد المحدودة.
لقد جربنا التجميع عبر مهام الرؤية والكلام. لقد شهدنا ما يصل إلى 5 أضعاف التحسينات في ضغط النموذج مع الحد الأدنى من فقدان الدقة، كما يتضح من النتائج المعروضة أدناه.
يرجى ملاحظة أن التجميع سيوفر فوائد مخفضة للطبقات الملتوية والطبقات الكثيفة التي تسبق طبقة تسوية الدفعة، وكذلك بالاشتراك مع التكميم بعد التدريب لكل محور.
مصفوفة توافق API
يمكن للمستخدمين تطبيق التجميع باستخدام واجهات برمجة التطبيقات التالية:
- بناء النموذج:
keras
مع النماذج التسلسلية والوظيفية فقط - إصدارات TensorFlow: TF 1.x للإصدارات 1.14+ و2.x.
- لا يتم دعم
tf.compat.v1
مع حزمة TF 2.X وtf.compat.v2
مع حزمة TF 1.X.
- لا يتم دعم
- وضع تنفيذ TensorFlow: كلا من الرسم البياني والشغف
نتائج
تصنيف الصور
نموذج | إبداعي | متجمعة | ||||
---|---|---|---|---|---|---|
دقة أعلى 1 (%) | حجم الملف المضغوط .tflite (ميجابايت) | إعدادات | # من المجموعات | دقة أعلى 1 (%) | حجم الملف المضغوط .tflite (ميجابايت) | |
موبايل نتV1 | 70.976 | 14.97 | ||||
انتقائية (آخر 3 طبقات Conv2D) | 16، 16، 16 | 70.294 | 7.69 | |||
انتقائية (آخر 3 طبقات Conv2D) | 32، 32، 32 | 70.69 | 8.22 | |||
كامل (جميع طبقات Conv2D) | 32 | 69.4 | 4.43 | |||
موبايل نتV2 | 71.778 | 12.38 | ||||
انتقائية (آخر 3 طبقات Conv2D) | 16، 16، 16 | 70.742 | 6.68 | |||
انتقائية (آخر 3 طبقات Conv2D) | 32، 32، 32 | 70.926 | 7.03 | |||
كامل (جميع طبقات Conv2D) | 32 | 69.744 | 4.05 |
تم تدريب النماذج واختبارها على ImageNet.
اكتشاف الكلمات الرئيسية
نموذج | إبداعي | متجمعة | ||||
---|---|---|---|---|---|---|
دقة أعلى 1 (%) | حجم الملف المضغوط .tflite (ميجابايت) | إعدادات | # من المجموعات | دقة أعلى 1 (%) | حجم الملف المضغوط .tflite (ميجابايت) | |
دي إس-سي إن إن-إل | 95.233 | 1.46 | ||||
كامل (جميع طبقات Conv2D) | 32 | 95.09 | 0.39 | |||
كامل (جميع طبقات Conv2D) | 8 | 94.272 | 0.27 |
تم تدريب النموذج واختباره على SpeechCommands v0.02.
- قم بإجراء تسلسل لنموذج Keras في ملف .h5
- قم بتحويل ملف .h5 إلى .tflite باستخدام
TFLiteConverter.from_keras_model_file()
- قم بضغط ملف .tflite في ملف مضغوط
أمثلة
بالإضافة إلى تجميع الوزن في مثال Keras ، راجع الأمثلة التالية:
- قم بتجميع أوزان نموذج CNN الذي تم تدريبه على مجموعة بيانات تصنيف الأرقام المكتوبة بخط اليد MNIST: الكود
يعتمد تطبيق تجميع الوزن على الضغط العميق: ضغط الشبكات العصبية العميقة مع التقليم، والتكميم المدرب، وورقة هوفمان للتشفير . انظر الفصل الثالث بعنوان التكميم المدرّب وتقاسم الوزن .