मॉडल कन्वर्ज़न की खास जानकारी

TensorFlow Lite के साथ इस्तेमाल किए जाने वाले मशीन लर्निंग (एमएल) मॉडल, मूल रूप से TensorFlow की कोर लाइब्रेरी और टूल का इस्तेमाल करके बनाए और तैयार किए गए हैं. TensorFlow कोर की मदद से मॉडल बनाने के बाद, उसे छोटे और ज़्यादा बेहतर एमएल मॉडल फ़ॉर्मैट में बदला जा सकता है. इसे TensorFlow Lite मॉडल कहा जाता है. इस सेक्शन में, TensorFlow के मॉडल को TensorFlow Lite मॉडल फ़ॉर्मैट में बदलने के लिए दिशा-निर्देश दिए गए हैं.

कन्वर्ज़न का वर्कफ़्लो

TensorFlow के मॉडल को TensorFlow Lite फ़ॉर्मैट में बदलने में, आपके एमएल मॉडल के कॉन्टेंट के हिसाब से कुछ पाथ लग सकते हैं. इस प्रोसेस के पहले चरण में, आपको अपने मॉडल का आकलन करके यह तय करना चाहिए कि उसे सीधे तौर पर बदला जा सकता है या नहीं. इस आकलन से यह तय होता है कि मॉडल का कॉन्टेंट, TensorFlow Lite के स्टैंडर्ड रनटाइम एनवायरमेंट के साथ काम करता है या नहीं. यह TensorFlow की मदद से की गई कार्रवाइयों के आधार पर काम करता है. अगर आपका मॉडल, साथ काम करने वाले सेट से बाहर की कार्रवाइयों का इस्तेमाल करता है, तो आपके पास मॉडल को रीफ़ैक्टर करने या कन्वर्ज़न की बेहतर तकनीकों का इस्तेमाल करने का विकल्प होता है.

नीचे दिया गया डायग्राम, मॉडल को बदलने के हाई लेवल चरण दिखाता है.

TFLite कन्वर्ज़न वर्कफ़्लो

पहला डायग्राम. TensorFlow Lite का कन्वर्ज़न वर्कफ़्लो.

नीचे दिए सेक्शन में, TensorFlow Lite के साथ इस्तेमाल किए जाने वाले मॉडल का आकलन करने और उन्हें बदलने की प्रक्रिया के बारे में बताया गया है.

इनपुट मॉडल के फ़ॉर्मैट

कन्वर्टर का इस्तेमाल, इन इनपुट मॉडल फ़ॉर्मैट के साथ किया जा सकता है:

Keras और कंक्रीट फ़ंक्शन, दोनों को सेव किए गए मॉडल के तौर पर सेव किया जा सकता है और सुझाए गए पाथ का इस्तेमाल करके फ़ॉर्मैट बदला जा सकता है.

अगर आपके पास Jax मॉडल है, तो उसे TensorFlow Lite फ़ॉर्मैट में बदलने के लिए, TFLiteConverter.experimental_from_jax API का इस्तेमाल किया जा सकता है. ध्यान दें कि प्रयोग मोड में होने पर, इस एपीआई में बदलाव किया जा सकता है.

कन्वर्ज़न का आकलन

अपने मॉडल को बदलने की कोशिश करने से पहले उसका मूल्यांकन करना एक अहम चरण है. आकलन करते समय, आपको यह पता लगाना चाहिए कि आपके मॉडल का कॉन्टेंट, TensorFlow Lite फ़ॉर्मैट के साथ काम करता है या नहीं. आपको यह भी तय करना चाहिए कि मॉडल के इस्तेमाल किए जाने वाले डेटा का आकार, उसकी हार्डवेयर प्रोसेसिंग की ज़रूरत, और मॉडल के कुल आकार और जटिलता के आधार पर मोबाइल और किनारे के डिवाइस पर इस्तेमाल करने के लिए आपका मॉडल सही है या नहीं.

कई मॉडल के लिए, कन्वर्टर को अलग तरीके से काम करना चाहिए. हालांकि, TensorFlow Lite की बिल्ट-इन ऑपरेटर लाइब्रेरी, TensorFlow के मुख्य ऑपरेटर के एक सबसेट के साथ काम करती है. इसका मतलब है कि कुछ मॉडल को TensorFlow Lite में बदलने से पहले, कुछ और चरणों की ज़रूरत पड़ सकती है. इसके अलावा, TensorFlow Lite के साथ काम करने वाली कुछ कार्रवाइयों में, परफ़ॉर्मेंस की वजह से इस्तेमाल से जुड़ी ज़रूरी शर्तों पर पाबंदी है. यह तय करने के लिए कि कन्वर्ज़न के लिए आपके मॉडल को फिर से बनाने की ज़रूरत है या नहीं, ऑपरेटर के साथ काम करने की सुविधा गाइड देखें.

मॉडल कन्वर्ज़न

TensorFlow Lite कन्वर्टर, TensorFlow मॉडल का इस्तेमाल करता है और TensorFlow Lite मॉडल जनरेट करता है (एक ऑप्टिमाइज़ किया गया FlatBuffer फ़ॉर्मैट, जिसकी पहचान .tflite फ़ाइल एक्सटेंशन से किया जाता है). सेव किए गए मॉडल को लोड किया जा सकता है या कोड में बनाए गए मॉडल को सीधे बदला जा सकता है.

कन्वर्टर को तीन मुख्य फ़्लैग (या विकल्प) मिलते हैं, जो आपके मॉडल के लिए कन्वर्ज़न को पसंद के मुताबिक बनाते हैं:

  1. कंपैटिबिलिटी फ़्लैग की मदद से यह तय किया जा सकता है कि कन्वर्ज़न में, कस्टम ऑपरेटर को अनुमति दी जानी चाहिए या नहीं.
  2. ऑप्टिमाइज़ेशन फ़्लैग की मदद से यह बताया जा सकता है कि कन्वर्ज़न के दौरान किस तरह का ऑप्टिमाइज़ेशन करना है. सबसे ज़्यादा इस्तेमाल की जाने वाली ऑप्टिमाइज़ेशन तकनीक, ट्रेनिंग के बाद की संख्या बढ़ाने की सुविधा है.
  3. मेटाडेटा फ़्लैग की मदद से, बदले गए मॉडल में मेटाडेटा जोड़ा जा सकता है. इससे, डिवाइसों पर मॉडल डिप्लॉय करते समय, प्लैटफ़ॉर्म के हिसाब से रैपर कोड बनाना आसान हो जाता है.

Python API या कमांड लाइन टूल का इस्तेमाल करके, अपना मॉडल बदला जा सकता है. अपने मॉडल पर कन्वर्टर चलाने के बारे में सिलसिलेवार निर्देशों के लिए, टीएफ़ मॉडल को बदलें गाइड देखें.

आम तौर पर, आपके मॉडल को स्टैंडर्ड TensorFlow Lite रनटाइम एनवायरमेंट या TensorFlow Lite (बीटा) के लिए Google Play services के रनटाइम एनवायरमेंट में बदला जाएगा. इस्तेमाल के कुछ बेहतर मामलों में मॉडल रनटाइम एनवायरमेंट को पसंद के मुताबिक बनाने की ज़रूरत होती है. इस दौरान, कन्वर्ज़न प्रोसेस में कुछ और चरणों की ज़रूरत होती है. ज़्यादा जानकारी के लिए, Android की खास जानकारी का बेहतर रनटाइम एनवायरमेंट सेक्शन देखें.

बेहतर कन्वर्ज़न ट्रैकिंग

अगर आपको अपने मॉडल पर कन्वर्टर चलाते समय गड़बड़ियां मिलती हैं, तो हो सकता है कि आपको ऑपरेटर के साथ काम करने से जुड़ी कोई समस्या हो. TensorFlow की सभी कार्रवाइयां TensorFlow Lite के साथ काम नहीं करतीं. मॉडल को फिर से इस्तेमाल करके या कन्वर्ज़न के बेहतर विकल्पों का इस्तेमाल करके, इन समस्याओं को ठीक किया जा सकता है. इन बेहतर विकल्पों की मदद से, उस मॉडल के लिए बदलाव किया गया TensorFlow Lite फ़ॉर्मैट और कस्टम रनटाइम एनवायरमेंट बनाया जा सकता है.

  • TensorFlow और TensorFlow Lite के मॉडल के साथ काम करने के बारे में ज़्यादा जानकारी के लिए, मॉडल के साथ काम करने से जुड़ी खास जानकारी देखें.
  • मॉडल के साथ काम करने से जुड़ी खास जानकारी में दिए गए विषयों में, मॉडल को फिर से बनाने की बेहतर तकनीकों के बारे में बताया गया है. जैसे, ऑपरेटर चुनें गाइड.
  • कार्रवाइयों और सीमाओं की पूरी सूची देखने के लिए, TensorFlow Lite Ops पेज देखें.

अगले चरण