يتم صيانتها بواسطة Arm ML Tooling
يقدم هذا المستند نظرة عامة حول تجميع الوزن لمساعدتك في تحديد مدى ملاءمته لحالة الاستخدام الخاصة بك.
- للتعمق في مثال شامل ، راجع مثال تجميع الوزن .
- للعثور بسرعة على واجهات برمجة التطبيقات التي تحتاجها لحالة الاستخدام الخاصة بك ، راجع الدليل الشامل لتجميع الوزن .
ملخص
التجميع ، أو تقاسم الوزن ، يقلل من عدد قيم الوزن الفريدة في النموذج ، مما يؤدي إلى فوائد للنشر. يقوم أولاً بتجميع أوزان كل طبقة في مجموعات N ، ثم يشارك قيمة النقطه الوسطى للعنقدة لجميع الأوزان التي تنتمي إلى الكتلة.
تجلب هذه التقنية تحسينات عبر ضغط النموذج. يمكن أن يفتح دعم إطار العمل المستقبلي تحسينات بصمة الذاكرة التي يمكن أن تحدث فرقًا حاسمًا لنشر نماذج التعلم العميق على الأنظمة المضمنة ذات الموارد المحدودة.
لقد جربنا التجميع عبر مهام الرؤية والكلام. لقد رأينا ما يصل إلى 5x تحسينات في ضغط النموذج مع الحد الأدنى من فقدان الدقة ، كما هو موضح في النتائج المعروضة أدناه.
يرجى ملاحظة أن التجميع سيوفر فوائد منخفضة للالتفاف والطبقات الكثيفة التي تسبق طبقة تطبيع الدُفعات ، وكذلك بالاقتران مع تكميم ما بعد التدريب لكل محور.
مصفوفة توافق API
يمكن للمستخدمين تطبيق المجموعات باستخدام واجهات برمجة التطبيقات التالية:
- بناء النموذج:
tf.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 (ميغا بايت) | |
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.
- تسلسل نموذج Keras في ملف h5
- قم بتحويل ملف .h5 إلى .tflite باستخدام
TFLiteConverter.from_keras_model_file()
- ضغط ملف .tflite في ملف مضغوط
أمثلة
بالإضافة إلى تجميع الوزن في مثال Keras ، راجع الأمثلة التالية:
- قم بتجميع أوزان نموذج CNN المدربة على مجموعة بيانات تصنيف الأرقام المكتوبة بخط اليد MNIST: الكود
يعتمد تطبيق تجميع الوزن على الضغط العميق: ضغط الشبكات العصبية العميقة باستخدام ورق التقليم والكمية المدربة وورق ترميز هوفمان. انظر الفصل 3 ، بعنوان الكميات المدربة وتقاسم الوزن .