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

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

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

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

بررسی اجمالی

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

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

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

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

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

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

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 می تواند مدل های تمام عددی را تولید کند. برای جزئیات بیشتر به این شماره مراجعه کنید.
  • با موارد استفاده از کوانتیزاسیون آزمایش کنید:
    • با الگوریتم های کوانتیزه کردن که در لایه های Keras قرار دارند یا به مرحله آموزش نیاز دارند ، آزمایش کنید.
    • API ها را تثبیت کنید.

نتایج

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

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

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

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

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

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

مثال ها

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

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

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