इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

मोबाइल के लिए TFX

परिचय

यह गाइड दर्शाता है कि मशीन लर्निंग मॉडल को Tensorflow Extended (TFX) कैसे बना सकता है और उसका मूल्यांकन कर सकता है जिसे ऑन-डिवाइस पर तैनात किया जाएगा। TFX अब TFLite के लिए मूल समर्थन प्रदान करता है, जिससे मोबाइल उपकरणों पर अत्यधिक कुशल निष्कर्ष निकालना संभव हो जाता है।

यह मार्गदर्शिका आपको उन परिवर्तनों से गुजरती है जो TFLite मॉडल बनाने और मूल्यांकन करने के लिए किसी भी पाइपलाइन में किए जा सकते हैं। हम यहां एक संपूर्ण उदाहरण प्रदान करते हैं , यह दिखाते हुए कि TFX कैसे प्रशिक्षित और TFLite मॉडल का मूल्यांकन कर सकता है जो MNIST डेटासेट से प्रशिक्षित हैं। इसके अलावा, हम दिखाते हैं कि कैसे समान पाइपलाइन का उपयोग दोनों मानक केरस -आधारित सेव्डमॉडल के साथ-साथ TFLite एक को निर्यात करने के लिए किया जा सकता है, जिससे उपयोगकर्ता दोनों की गुणवत्ता की तुलना कर सकते हैं।

हम मानते हैं कि आप TFX, हमारे घटकों और हमारी पाइपलाइनों से परिचित हैं। यदि नहीं, तो कृपया इस ट्यूटोरियल को देखें।

कदम

TFX में TFLite मॉडल बनाने और उसका मूल्यांकन करने के लिए केवल दो चरणों की आवश्यकता है। पहला कदम टीएफएक्स ट्रेनर के संदर्भ में TFLite के पुनर्लेखक को प्रशिक्षित TensorFlow मॉडल को TFLite एक में परिवर्तित करने के लिए है। दूसरा चरण TFLite मॉडल का मूल्यांकन करने के लिए मूल्यांकनकर्ता को कॉन्फ़िगर कर रहा है। अब हम बारी-बारी से चर्चा करते हैं।

ट्रेनर के भीतर TFLite पुनर्लेखक को आमंत्रित करना।

TFX ट्रेनर को उपयोगकर्ता-परिभाषित run_fn उम्मीद है कि run_fn एक मॉड्यूल फ़ाइल में निर्दिष्ट किया जाए। यह run_fn मॉडल को प्रशिक्षित करने के लिए परिभाषित करता है, इसे निर्दिष्ट संख्या के पुनरावृत्तियों के लिए प्रशिक्षित करता है, और प्रशिक्षित मॉडल का निर्यात करता है।

इस खंड के बाकी हिस्सों में, हम कोड स्निपेट्स प्रदान करते हैं जो TFLite राइटर को आमंत्रित करने और TFLite मॉडल को निर्यात करने के लिए आवश्यक परिवर्तन दिखाते हैं। यह सभी कोड MNIST TFLite मॉड्यूल के run_fn में स्थित है।

जैसा कि नीचे दिए गए कोड में दिखाया गया है, हमें पहले एक हस्ताक्षर बनाना चाहिए जो इनपुट के रूप में हर सुविधा के लिए एक Tensor लेता है। ध्यान दें कि यह TFX में सबसे मौजूदा मॉडलों से एक प्रस्थान है, जो इनपुट के रूप में क्रमबद्ध tf.Example प्रोटोज लेते हैं।

 signatures = {
      'serving_default':
          _get_serve_tf_examples_fn(
              model, tf_transform_output).get_concrete_function(
                  tf.TensorSpec(
                      shape=[None, 784],
                      dtype=tf.float32,
                      name='image_floats'))
  }

फिर केरेस मॉडल को सेव्डमॉडल के रूप में उसी तरह से सहेजा जाता है जैसे कि यह सामान्य रूप से होता है।

  temp_saving_model_dir = os.path.join(fn_args.serving_model_dir, 'temp')
  model.save(temp_saving_model_dir, save_format='tf', signatures=signatures)

अंत में, हम TFLite rewriter ( tfrw ) का एक उदाहरण बनाते हैं, और TFLite मॉडल प्राप्त करने के लिए इसे SavedModel पर लागू करते हैं। हम इस TFLite मॉडल को serving_model_dir के कॉलर द्वारा प्रदान की जाने वाली run_fn में run_fn । इस तरह, TFLite मॉडल को उस स्थान पर संग्रहीत किया जाता है जहां सभी डाउनस्ट्रीम TFX घटकों को मॉडल खोजने की उम्मीद होगी।

  tfrw = rewriter_factory.create_rewriter(
      rewriter_factory.TFLITE_REWRITER, name='tflite_rewriter',
      enable_experimental_new_converter=True)
  converters.rewrite_saved_model(temp_saving_model_dir,
                                 fn_args.serving_model_dir,
                                 tfrw,
                                 rewriter.ModelType.TFLITE_MODEL)

TFLite मॉडल का मूल्यांकन।

टीएफएक्स इवैल्यूएटर मैट्रिक्स की एक विस्तृत श्रृंखला में उनकी गुणवत्ता को समझने के लिए प्रशिक्षित मॉडल का विश्लेषण करने की क्षमता प्रदान करता है। SavedModels का विश्लेषण करने के अलावा, TFX मूल्यांकनकर्ता अब TFLite मॉडल का भी विश्लेषण करने में सक्षम है।

निम्न कोड स्निपेट ( MNIST पाइपलाइन से पुन: प्रस्तुत) से पता चलता है कि एक एवलायटर को कॉन्फ़िगर कैसे करें जो एक TFLite मॉडल का विश्लेषण करता है।

  # Informs the evaluator that the model is a TFLite model.
  eval_config_lite.model_specs[0].model_type = 'tf_lite'

  ...

  # Uses TFMA to compute the evaluation statistics over features of a TFLite
  # model.
  model_analyzer_lite = Evaluator(
      examples=example_gen.outputs['examples'],
      model=trainer_lite.outputs['model'],
      eval_config=eval_config_lite,
      instance_name='mnist_lite')

जैसा कि ऊपर दिखाया गया है, एकमात्र बदलाव जो हमें करने की आवश्यकता है वह है model_type फ़ील्ड को tf_lite पर सेट करना। TFLite मॉडल का विश्लेषण करने के लिए किसी अन्य कॉन्फ़िगरेशन परिवर्तन की आवश्यकता नहीं है। भले ही एक TFLite मॉडल या एक SavedModel का विश्लेषण किया गया हो, लेकिन Evaluator के आउटपुट में बिल्कुल समान संरचना होगी।