کمی سازی بعد از آموزش

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

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

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

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

به عنوان مثال ، در اینجا نحوه تعیین کمیت وزن صحیح 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 مراجعه کنید.