এমএল কমিউনিটি দিবস 9 নভেম্বর! TensorFlow, Jax থেকে আপডেটের জন্য আমাদের সাথে যোগ দিন, এবং আরও আরও জানুন

টেনসরফ্লো লাইট রূপান্তরকারী

TensorFlow লাইট রূপান্তরকারী একটি TensorFlow মডেল নেয় এবং একটি TensorFlow লাইট মডেল (একটি অনুকূল উত্পন্ন FlatBuffer বিন্যাস দ্বারা চিহ্নিত .tflite ফাইল এক্সটেনশন)। আপনার কাছে কনভার্টার ব্যবহারের জন্য নিম্নলিখিত দুটি বিকল্প আছে:

  1. পাইথন এপিআই (প্রস্তাবিত) এই কাজটিকে আরো সহজ মডেল উন্নয়ন পাইপলাইন অংশ হিসেবে মডেলের রূপান্তর করে তোলে আবেদন অপ্টিমাইজেশন, মেটাডেটা যোগ করতে পারেন এবং আরো অনেক বৈশিষ্ট্য আছে।
  2. কমান্ড লাইন : এটি কেবলমাত্র মৌলিক মডেল রূপান্তর সমর্থন করে।

TFLite কনভার্টার ওয়ার্কফ্লো

পাইথন এপিআই

সাহায্যকারী কোড: ইনস্টল TensorFlow সংস্করণ, চালানো চিহ্নিত করার print(tf.__version__) এবং TensorFlow লাইট রূপান্তরকারী API সম্পর্কে আরো শিখতে, রান print(help(tf.lite.TFLiteConverter))

আপনি থাকেন তাহলে TensorFlow 2.x ইনস্টল , আপনি নিম্নলিখিত দুটি বিকল্প আছে: (যদি আপনি থাকেন TensorFlow 1.x ইনস্টল , পড়ুন গিটহাব )

নিম্নলিখিত উদাহরণে দেখায় কিভাবে একটি রূপান্তর করতে SavedModel একটি TensorFlow লাইট মডেল মধ্যে।

import tensorflow as tf

# Convert the model
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) # path to the SavedModel directory
tflite_model = converter.convert()

# Save the model.
with open('model.tflite', 'wb') as f:
  f.write(tflite_model)

একটি কেরাস মডেল রূপান্তর করুন

নিম্নলিখিত উদাহরণে দেখায় কিভাবে একটি রূপান্তর করতে Keras একটি TensorFlow লাইট মডেল মধ্যে মডেল।

import tensorflow as tf

# Create a model using high-level tf.keras.* APIs
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(units=1, input_shape=[1]),
    tf.keras.layers.Dense(units=16, activation='relu'),
    tf.keras.layers.Dense(units=1)
])
model.compile(optimizer='sgd', loss='mean_squared_error') # compile the model
model.fit(x=[-1, 0, 1], y=[-3, -1, 1], epochs=5) # train the model
# (to generate a SavedModel) tf.saved_model.save(model, "saved_model_keras_dir")

# Convert the model.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

# Save the model.
with open('model.tflite', 'wb') as f:
  f.write(tflite_model)

কংক্রিট ফাংশন রূপান্তর

নিম্নলিখিত উদাহরণে দেখায় কিভাবে রূপান্তর করতে কংক্রিট ফাংশন একটি TensorFlow লাইট মডেল মধ্যে।

import tensorflow as tf

# Create a model using low-level tf.* APIs
class Squared(tf.Module):
  @tf.function(input_signature=[tf.TensorSpec(shape=[None], dtype=tf.float32)])
  def __call__(self, x):
    return tf.square(x)
model = Squared()
# (ro run your model) result = Squared(5.0) # This prints "25.0"
# (to generate a SavedModel) tf.saved_model.save(model, "saved_model_tf_dir")
concrete_func = model.__call__.get_concrete_function()

# Convert the model.
# Notes that for the versions earlier than TensorFlow 2.7, the
# from_concrete_functions API is able to work when there is only the first
# argument given:
# > converter = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func])
converter = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func],
                                                            model)
tflite_model = converter.convert()

# Save the model.
with open('model.tflite', 'wb') as f:
  f.write(tflite_model)

অন্যান্য বৈশিষ্ট্য

  • আবেদন করুন অপ্টিমাইজেশন । একটি সাধারণ ব্যবহৃত অপ্টিমাইজেশান হল পোস্টে প্রশিক্ষণ quantization , যা আরো সঠিকতা মধ্যে ন্যূনতম ক্ষতি সঙ্গে আপনার মডেল লেটেন্সি এবং আকার কমে যায়।

  • যোগ মেটাডাটা , যা যখন ডিভাইসের মডেল মোতায়েন সহজে প্ল্যাটফর্ম নির্দিষ্ট মোড়কের কোড তৈরি করে তোলে।

রূপান্তর ত্রুটি

নিম্নলিখিত সাধারণ রূপান্তর ত্রুটি এবং তাদের সমাধান:

কমান্ড লাইন টুল

এটা অত্যন্ত বাঞ্ছনীয় যা আপনি ব্যবহার পাইথন এপিআই , পরিবর্তে উপরে তালিকাভুক্ত সম্ভব হলে।

আপনি থাকেন তাহলে TensorFlow পিপ থেকে 2.x ইনস্টল , ব্যবহার tflite_convert আপনি করেছি (: নিম্নরূপ কমান্ড উৎস থেকে TensorFlow 2.x ইনস্টল তারপর আপনি প্রতিস্থাপন করতে পারেন ' tflite_convert ' '-এর সাথে bazel run //tensorflow/lite/python:tflite_convert -- 'অনুসরণ বিভাগে, এবং আপনি করেছি ইনস্টল TensorFlow 1.x (পরে গিটহাব পড়ুন রেফারেন্স , উদাহরণ ))

tflite_convert : সমস্ত উপলব্ধ পতাকা দেখার জন্য, নিম্নলিখিত কমান্ড প্রয়োগ করুন:

$ tflite_convert --help

`--output_file`. Type: string. Full path of the output file.
`--saved_model_dir`. Type: string. Full path to the SavedModel directory.
`--keras_model_file`. Type: string. Full path to the Keras H5 model file.
`--enable_v1_converter`. Type: bool. (default False) Enables the converter and flags used in TF 1.x instead of TF 2.x.

You are required to provide the `--output_file` flag and either the `--saved_model_dir` or `--keras_model_file` flag.

একটি সংরক্ষিত মডেল রূপান্তর

tflite_convert \
  --saved_model_dir=/tmp/mobilenet_saved_model \
  --output_file=/tmp/mobilenet.tflite

একটি কেরাস H5 মডেল রূপান্তর

tflite_convert \
  --keras_model_file=/tmp/mobilenet_keras_model.h5 \
  --output_file=/tmp/mobilenet.tflite

পরবর্তী পদক্ষেপ

ব্যবহার করুন TensorFlow লাইট ব্যাখ্যাকারী একটি ক্লায়েন্ট ডিভাইসে রান অনুমান করতে (যেমন মোবাইল, এমবেডেড)।