تجميع الوزن

يتم صيانتها بواسطة Arm ML Tooling

يقدم هذا المستند نظرة عامة حول تجميع الوزن لمساعدتك في تحديد مدى ملاءمته لحالة الاستخدام الخاصة بك.

ملخص

التجميع ، أو تقاسم الوزن ، يقلل من عدد قيم الوزن الفريدة في النموذج ، مما يؤدي إلى فوائد للنشر. يقوم أولاً بتجميع أوزان كل طبقة في مجموعات N ، ثم يشارك قيمة النقطه الوسطى للعنقدة لجميع الأوزان التي تنتمي إلى الكتلة.

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

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

يرجى ملاحظة أن التجميع سيوفر فوائد منخفضة للالتفاف والطبقات الكثيفة التي تسبق طبقة تطبيع الدُفعات ، وكذلك بالاقتران مع تكميم ما بعد التدريب لكل محور.

مصفوفة توافق API

يمكن للمستخدمين تطبيق المجموعات باستخدام واجهات برمجة التطبيقات التالية:

  • بناء النموذج: tf.keras مع النماذج المتسلسلة والوظيفية فقط
  • إصدارات TensorFlow: TF 1.x للإصدارات 1.14+ و 2.x.
  • وضع تنفيذ TensorFlow: الرسم البياني والشغوف

نتائج

تصنيف الصورة

نموذج إبداعي عنقودية
دقة أعلى 1 (٪) حجم الملف المضغوط .tflite (ميغا بايت) ترتيب # من المجموعات دقة أعلى 1 (٪) حجم الملف المضغوط .tflite (ميغا بايت)
MobileNetV1 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
MobileNetV2 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 (ميغا بايت)
DS-CNN-L 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: الكود

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