این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

آموزش آگاهی از میزان

توسط بهینه سازی مدل TensorFlow نگهداری می شود

کوانتیزه سازی به دو شکل وجود دارد: کوانتیزاسیون پس از آموزش و آموزش آگاه سازی کوانتیزه سازی. با کمی سازی بعد از آموزش از آنجا که استفاده از آن آسان تر است شروع کنید ، اگرچه آموزش آگاهی برای تعیین کیفیت اغلب برای دقت مدل بهتر است.

در این صفحه مروری بر آموزش آگاهی از کمی سازی برای کمک به شما در تعیین نحوه متناسب بودن با مورد استفاده شما ارائه می شود.

بررسی اجمالی

آموزش آگاهی از کمی سازی ، از کوانتاسیون زمان استنباط الگوبرداری می کند و مدلی ایجاد می کند که ابزارهای پایین دستی برای تولید مدل های واقعاً کوانتیزه شده از آن استفاده می کنند. مدل های کوانتیزه از دقت کمتری استفاده می کنند (به عنوان مثال 8 بیتی به جای شناور 32 بیتی) که منجر به مزایای استفاده از آن می شود.

با کمیت سازی استفاده کنید

کمی سازی از طریق فشرده سازی مدل و کاهش تأخیر ، پیشرفت هایی را به همراه دارد. با پیش فرض های API ، اندازه مدل 4 برابر کوچک می شود و به طور معمول شاهد بهبود 1.5 تا 4 برابر تأخیر پردازنده در باطن های آزمایش شده هستیم. در نهایت ، پیشرفت تأخیر در شتاب دهنده های یادگیری ماشین سازگار ، مانند EdgeTPU و NNAPI دیده می شود.

این روش در تولید در موارد گفتاری ، بینایی ، متن و موارد استفاده ترجمه به کار می رود. این کد در حال حاضر از زیر مجموعه ای از این مدل ها پشتیبانی می کند.

آزمایش مقداردهی و سخت افزارهای مرتبط

کاربران می توانند پارامترهای کمی سازی (به عنوان مثال تعداد بیت) و تا حدی ، الگوریتم های اساسی را پیکربندی کنند. با این تغییرات به طور پیش فرض API ، هیچ مسیر پشتیبانی شده ای برای استقرار وجود ندارد.

API های خاص این پیکربندی آزمایشی هستند و منوط به سازگاری عقب نیستند.

سازگاری با API

کاربران می توانند با API های زیر مقداردهی را اعمال کنند:

  • ساختمان مدل: tf.keras فقط با مدل های tf.keras و عملکردی.
  • نسخه های TensorFlow: TF 2.x برای tf-شبانه.
    • tf.compat.v1 با بسته TF 2.X پشتیبانی نمی شود.
  • حالت اجرای TensorFlow: اعدام مشتاقانه

در نقشه راه ماست که در مناطق زیر پشتیبانی را اضافه کنیم:

  • ساختمان مدل: مشخص کنید که مدلهای زیر کلاس بدون پشتیبانی محدود شده اند
  • آموزش توزیع شده: tf.distribute

ماتریس پشتیبانی عمومی

پشتیبانی در زمینه های زیر در دسترس است:

  • پوشش مدل: مدل هایی که از لایه های لیست مجاز ، BatchNormalization استفاده می کنند وقتی از لایه های Conv2D و DepthwiseConv2D پیروی می کنند و در موارد محدود ، Concat .
  • شتاب سخت افزاری: پیش فرض های API ما با شتابدهی EdgeTPU ، NNAPI و TFLite ، و سایر موارد سازگار هستند. اخطار را در نقشه راه مشاهده کنید.
  • استقرار با كوانتيزاسيون: در حال حاضر فقط كوانتيزاسيون هر محور براي لايه هاي چرخش ، نه كوانتيزاسيون هر تنسور.

در نقشه راه ماست که در مناطق زیر پشتیبانی را اضافه کنیم:

  • پوشش مدل: شامل RNN / LSTM و پشتیبانی کلی Concat.
  • شتاب سخت افزار: اطمینان حاصل کنید که مبدل TFLite می تواند مدل های تمام عددی را تولید کند. برای جزئیات بیشتر به این شماره مراجعه کنید.
  • با موارد استفاده از کوانتیزاسیون آزمایش کنید:
    • با الگوریتم های کوانتیزه کردن که در لایه های کراس قرار دارند یا به مرحله آموزش نیاز دارند ، آزمایش کنید.
    • API ها را تثبیت کنید.

نتایج

طبقه بندی تصویر با ابزار

مدل دقت بالا-1 غیر کوانتی دقت اندازه گیری 8 بیتی
MobilenetV1 224 71.03٪ 71.06٪
Resnet v1 50 76.3٪ 76.1٪
MobilenetV2 224 70.77٪ 70.01٪

مدل ها در Imagenet مورد آزمایش قرار گرفتند و در هر دو TensorFlow و TFLite ارزیابی شدند.

طبقه بندی تصویر برای تکنیک

مدل دقت بالا-1 غیر کوانتی 8-بیت دقت اندازه گیری شده
Nasnet-Mobile 74٪ 73٪
Resnet-v2 50 75.6٪ 75٪

مدل ها در Imagenet مورد آزمایش قرار گرفتند و در هر دو TensorFlow و TFLite ارزیابی شدند.

مثال ها

علاوه بر مثال آموزش آگاهی از میزان ، به مثال های زیر مراجعه کنید:

  • مدل CNN در کار طبقه بندی رقمی دست نویس MNIST با کمی سازی: کد

برای کسب اطلاعات درباره موارد مشابه ، به مقادیر کمی سازی و آموزش شبکه های عصبی برای مقاله استنتاج فقط با استفاده از عدد صحیح - محاسباتی مراجعه کنید . در این مقاله برخی از مفاهیمی که این ابزار از آنها استفاده می کند ، معرفی شده است. پیاده سازی دقیقاً یکسان نیست و مفاهیم دیگری نیز در این ابزار به کار رفته است (به عنوان مثال مقداردهی هر محور).