সাইন টিএফএক্স-অ্যাডনস সম্প্রদায়টিতে যোগদান করুন এবং টিএফএক্স আরও উন্নত করতে সহায়তা করুন!

মোবাইলের জন্য টিএফএক্স

ভূমিকা

এই গাইডটি প্রদর্শন করে যে কীভাবে টেনসরফ্লো এক্সটেন্ডেড (টিএফএক্স) মেশিন লার্নিং মডেলগুলি তৈরি করতে এবং মূল্যায়ন করতে পারে যা অন ডিভাইসে মোতায়েন করা হবে। টিএফএক্স এখন টিএফলাইটের জন্য দেশীয় সমর্থন সরবরাহ করে , যা মোবাইল ডিভাইসগুলিতে অত্যন্ত দক্ষ অনুমান সম্পাদন করা সম্ভব করে।

এই গাইড আপনাকে টিএফলাইট মডেলগুলি উত্পাদন ও মূল্যায়নের জন্য যে কোনও পাইপলাইনে তৈরি করা যেতে পারে এমন পরিবর্তনগুলির মধ্য দিয়ে যায়। আমরা এখানে একটি সম্পূর্ণ উদাহরণ সরবরাহ করি, এটি দেখিয়ে যে কীভাবে টিএফএক্স এমএনআইএসটি ডেটাসেটের প্রশিক্ষণপ্রাপ্ত টিএফলাইট মডেলগুলি প্রশিক্ষণ এবং মূল্যায়ন করতে পারে। আরও, আমরা দেখি যে একই পাইপলাইনটি একই সাথে মানক কেরাস-ভিত্তিক সেভডমডেল পাশাপাশি টিএফলাইট উভয় রফতানি করতে ব্যবহার করা যেতে পারে, যাতে ব্যবহারকারীরা দুটির মানের তুলনা করতে দেয়।

আমরা ধরে নিই যে আপনি টিএফএক্স, আমাদের উপাদান এবং আমাদের পাইপলাইনের সাথে পরিচিত। যদি তা না হয় তবে দয়া করে এই টিউটোরিয়ালটি দেখুন

পদক্ষেপ

টিএফএক্সে একটি টিএফলাইট মডেল তৈরি এবং মূল্যায়নের জন্য মাত্র দুটি পদক্ষেপের প্রয়োজন। প্রশিক্ষিত টেনসরফ্লো মডেলকে টিএফলাইটে রূপান্তর করতে প্রথম পদক্ষেপটি টিএফএক্স ট্রেনারের প্রসঙ্গে টিএফলাইট লেখককে অনুরোধ করছে। দ্বিতীয় ধাপটি টিএফলাইট মডেলগুলি মূল্যায়নের জন্য মূল্যায়নকারীকে কনফিগার করছে। আমরা এখন প্রতিটি পরিবর্তে আলোচনা করি discuss

ট্রেনারের মধ্যে টিএফলাইট রাইটার লিখুন।

টিএফএক্স ট্রেনার প্রত্যাশা করে যে কোনও ব্যবহারকারী-সংজ্ঞায়িত run_fn একটি মডিউল ফাইলে নির্দিষ্ট করা হবে। এই run_fn মডেলটিকে প্রশিক্ষিত হতে সংজ্ঞায়িত করে, নির্দিষ্ট সংখ্যক পুনরাবৃত্তির জন্য এটি প্রশিক্ষণ দেয় এবং প্রশিক্ষিত মডেলটি রফতানি করে।

এই বিভাগের বাকী অংশে, আমরা কোড স্নিপেটগুলি সরবরাহ করি যা টিএফলাইট পুনর্লিখনকারীর আবেদন জানাতে এবং একটি টিএফলাইট মডেল রফতানি করতে প্রয়োজনীয় পরিবর্তনগুলি দেখায়। এই কোড সব অবস্থিত run_fn এর MNIST TFLite মডিউল

নীচের কোডে প্রদর্শিত হিসাবে, আমাদের প্রথমে একটি স্বাক্ষর তৈরি করতে হবে যা ইনপুট হিসাবে প্রতিটি বৈশিষ্ট্যের জন্য একটি Tensor গ্রহণ করে। দ্রষ্টব্য যে এটি টিএফএক্স-এর বেশিরভাগ বিদ্যমান মডেলগুলির একটি প্রস্থান, যা সিরিয়ালযুক্ত tf . ইনপুট হিসাবে উদাহরণ প্রোটোগুলি নেয়।

 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)

অবশেষে, আমরা টিএফলাইট রাইটার ( tfrw ) এর একটি উদাহরণ তৈরি করি এবং টিএফলাইট মডেলটি পাওয়ার জন্য সেভডমোডেলে এটি প্রার্থনা করি। আমরা এই টিএফলাইট মডেলটি serving_model_dir এর কলার দ্বারা প্রদত্ত run_fn মধ্যে run_fn । এই ভাবে টিএফলাইট মডেলটি সেই স্থানে সঞ্চিত আছে যেখানে সমস্ত ডাউন স্ট্রিম টিএফএক্স উপাদানগুলি মডেলটি আবিষ্কার করার প্রত্যাশা করবে।

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

টিএফলাইট মডেলটি মূল্যায়ন করছে।

টিএফএক্স মূল্যায়নকারী প্রশিক্ষিত মডেলগুলিকে বিস্তৃত মেট্রিকের মধ্যে তাদের গুণগত মান বুঝতে বিশ্লেষণ করার ক্ষমতা সরবরাহ করে। সেভডমডেল বিশ্লেষণ করা ছাড়াও, টিএফএক্স মূল্যায়নকারী এখন টিএফলাইট মডেলগুলিও বিশ্লেষণ করতে সক্ষম।

নিম্নলিখিত কোড স্নিপেট ( এমএনআইএসটি পাইপলাইন থেকে পুনরুত্পাদন করা), কীভাবে কোনও মূল্যায়নকারীকে একটি টিএফলাইট মডেল বিশ্লেষণ করে কনফিগার করতে হয় তা দেখায়।

  # 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 মডেল বা SavedModel বিশ্লেষণ করা আছে কিনা না কেন, আউটপুট Evaluator ঠিক একই কাঠামো থাকবে।