प्रशिक्षण के बाद के परिमाणीकरण में सीपीयू और हार्डवेयर त्वरक विलंबता, प्रसंस्करण, शक्ति और मॉडल आकार को कम करने के लिए मॉडल सटीकता में थोड़ा गिरावट के साथ सामान्य तकनीक शामिल है। इन तकनीकों को पहले से प्रशिक्षित फ्लोट TensorFlow मॉडल पर किया जा सकता है और TensorFlow Lite रूपांतरण के दौरान लागू किया जा सकता है। इन तकनीकों को TensorFlow Lite कनवर्टर में विकल्प के रूप में सक्षम किया गया है।
एंड-टू-एंड उदाहरणों में सीधे कूदने के लिए, निम्नलिखित ट्यूटोरियल देखें:
- प्रशिक्षण के बाद गतिशील रेंज परिमाणीकरण
- प्रशिक्षण के बाद पूर्ण पूर्णांक परिमाणीकरण
- प्रशिक्षण के बाद फ्लोट16 परिमाणीकरण
वजन मात्रा
वज़न को कम परिशुद्धता वाले प्रकारों में बदला जा सकता है, जैसे कि 16 बिट फ़्लोट या 8 बिट पूर्णांक। हम आम तौर पर GPU त्वरण के लिए 16-बिट फ़्लोट और CPU निष्पादन के लिए 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 प्रशिक्षण के बाद परिमाणीकरण मार्गदर्शिका देखें।