کوانتیزاسیون پس از آموزش

کوانتیزاسیون پس از آموزش شامل تکنیک‌های کلی برای کاهش تأخیر CPU و شتاب‌دهنده سخت‌افزار، پردازش، توان و اندازه مدل با کاهش کمی در دقت مدل است. این تکنیک‌ها را می‌توان بر روی یک مدل شناور TensorFlow که قبلاً آموزش دیده است، انجام داد و در طول تبدیل TensorFlow Lite اعمال شد. این تکنیک ها به عنوان گزینه در مبدل TensorFlow Lite فعال می شوند.

برای پرش مستقیم به نمونه های انتها به انتها، آموزش های زیر را ببینید:

کوانتیزه کردن وزن ها

وزن ها را می توان با دقت کمتری به انواع تبدیل کرد، مانند شناورهای 16 بیتی یا اعداد صحیح 8 بیتی. ما به طور کلی شناورهای 16 بیتی را برای شتاب GPU و عدد صحیح 8 بیتی را برای اجرای CPU توصیه می کنیم.

به عنوان مثال، در اینجا نحوه تعیین کوانتیزه وزن اعداد صحیح 8 بیتی آمده است:

import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant_model = converter.convert()

در استنتاج، شدیدترین بخش‌ها به جای ممیز شناور، با 8 بیت محاسبه می‌شوند. مقداری سربار عملکرد زمان استنتاج نسبت به کوانتیزه کردن وزن ها و فعال سازی های زیر وجود دارد.

برای اطلاعات بیشتر، راهنمای کوانتیزاسیون پس از آموزش TensorFlow Lite را ببینید.

کوانتیزاسیون کامل اعداد صحیح وزن ها و فعال سازی ها

تأخیر، پردازش و مصرف انرژی را بهبود بخشید و با اطمینان از اینکه وزن‌ها و فعال‌سازی‌ها کوانتیزه می‌شوند، به شتاب‌دهنده‌های سخت‌افزاری فقط عدد صحیح دسترسی پیدا کنید. این به یک مجموعه داده نماینده کوچک نیاز دارد.

import tensorflow as tf

def representative_dataset_gen():
  for _ in range(num_calibration_steps):
    # Get sample input data as a numpy array in a method of your choosing.
    yield [input]

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_dataset_gen
tflite_quant_model = converter.convert()

مدل به دست آمده همچنان ورودی و خروجی شناور را برای راحتی می گیرد.

برای اطلاعات بیشتر، راهنمای کوانتیزاسیون پس از آموزش TensorFlow Lite را ببینید.