تجميع الوزن

تتم صيانته بواسطة 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.

  1. قم بإجراء تسلسل لنموذج Keras في ملف .h5
  2. قم بتحويل ملف .h5 إلى .tflite باستخدام TFLiteConverter.from_keras_model_file()
  3. قم بضغط ملف .tflite في ملف مضغوط

أمثلة

بالإضافة إلى تجميع الوزن في مثال Keras ، راجع الأمثلة التالية:

  • قم بتجميع أوزان نموذج CNN الذي تم تدريبه على مجموعة بيانات تصنيف الأرقام المكتوبة بخط اليد MNIST: الكود

يعتمد تطبيق تجميع الوزن على الضغط العميق: ضغط الشبكات العصبية العميقة مع التقليم، والتكميم المدرب، وورقة هوفمان للتشفير . انظر الفصل الثالث بعنوان التكميم المدرّب وتقاسم الوزن .