نگهداری شده توسط Arm ML Tooling
این سند یک نمای کلی در مورد دسته بندی وزن ارائه می دهد تا به شما کمک کند تعیین کنید که چگونه با موارد استفاده شما مطابقت دارد.
- برای فرو رفتن مستقیم در یک مثال انتها به انتها، مثال خوشهبندی وزن را ببینید.
- برای یافتن سریع APIهای مورد نیاز خود، راهنمای جامع خوشه بندی وزن را ببینید.
بررسی اجمالی
خوشهبندی یا اشتراک وزن، تعداد مقادیر وزن منحصربهفرد را در یک مدل کاهش میدهد که منجر به مزایایی برای استقرار میشود. ابتدا وزنهای هر لایه را به N خوشه گروهبندی میکند، سپس مقدار مرکز خوشه را برای همه وزنهای متعلق به خوشه به اشتراک میگذارد.
این تکنیک از طریق فشرده سازی مدل، بهبودهایی را به همراه دارد. پشتیبانی از چارچوب آینده میتواند پیشرفتهای ردپای حافظه را باز کند که میتواند تفاوتی اساسی برای استقرار مدلهای یادگیری عمیق در سیستمهای تعبیهشده با منابع محدود ایجاد کند.
ما با خوشه بندی در بین وظایف بینایی و گفتاری آزمایش کرده ایم. همانطور که در نتایج ارائه شده در زیر نشان داده شده است، تا 5 برابر پیشرفت در فشرده سازی مدل با حداقل کاهش دقت مشاهده کرده ایم.
لطفاً توجه داشته باشید که خوشهبندی مزایای کمتری را برای لایههای کانولوشن و متراکم که قبل از یک لایه نرمالسازی دستهای قرار دارند و همچنین در ترکیب با کوانتیزاسیون پس از آموزش هر محور ارائه میکند.
ماتریس سازگاری API
کاربران می توانند خوشه بندی را با 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. فشرده (MB) | پیکربندی | # خوشه ها | دقت برتر 1 (%) | اندازه tflite. فشرده (MB) | |
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. فشرده (MB) | پیکربندی | # خوشه ها | دقت برتر 1 (%) | اندازه tflite. فشرده (MB) | |
DS-CNN-L | 95.233 | 1.46 | ||||
کامل (همه لایههای Conv2D) | 32 | 95.09 | 0.39 | |||
کامل (همه لایههای Conv2D) | 8 | 94.272 | 0.27 |
این مدل بر روی SpeechCommands نسخه 0.02 آموزش و آزمایش شد.
- مدل Keras را در فایل .h5 سریال کنید
- با استفاده از
TFLiteConverter.from_keras_model_file()
، فایل h5 را به tflite. تبدیل کنید. - فایل tflite. را در یک فایل فشرده فشرده کنید
مثال ها
علاوه بر خوشهبندی وزن در مثال Keras ، نمونههای زیر را ببینید:
- دسته بندی وزن یک مدل CNN آموزش داده شده بر روی مجموعه داده دسته بندی رقمی دست نویس MNIST: کد
اجرای خوشهبندی وزن بر اساس فشردهسازی عمیق: فشردهسازی شبکههای عصبی عمیق با هرس، کوانتیزاسیون آموزشدیده و کاغذ کدگذاری هافمن است. به فصل 3، با عنوان کوانتیزاسیون و تقسیم وزن آموزش دیده مراجعه کنید.