LiterRT CompiledModel API পাইথনে উপলব্ধ, যা LiterRT রানটাইমের সাথে TFLite মডেলগুলি কম্পাইল এবং চালানোর জন্য একটি উচ্চ-স্তরের ইন্টারফেস প্রদান করে।
নিম্নলিখিত নির্দেশিকাটি CompiledModel Python API এর সাথে মৌলিক CPU অনুমান দেখায়।
পিপ প্যাকেজ ইনস্টল করুন
আপনার পাইথন পরিবেশে LiterRT পাইপ প্যাকেজটি ইনস্টল করুন:
pip install ai-edge-litert
মৌলিক অনুমান
CompiledModel তৈরি করুন
একটি .tflite ফাইল থেকে একটি কম্পাইল করা মডেল তৈরি করুন। বর্তমান পাইথন র্যাপারটি ডিফল্টরূপে CPU-এর জন্য কম্পাইল করে।
from ai_edge_litert.compiled_model import CompiledModel
model = CompiledModel.from_file("mymodel.tflite")
আপনি একটি ইন-মেমরি বাফার থেকে একটি কম্পাইলড মডেলও তৈরি করতে পারেন:
from ai_edge_litert.compiled_model import CompiledModel
with open("mymodel.tflite", "rb") as f:
model = CompiledModel.from_buffer(f.read())
ইনপুট এবং আউটপুট বাফার তৈরি করুন
মডেলটিতে অনুমানের জন্য যে ইনপুট ডেটা ফিড করবেন এবং ইনফারেন্স চালানোর পরে মডেলটি যে আউটপুট ডেটা তৈরি করবে তা ধরে রাখার জন্য প্রয়োজনীয় ডেটা স্ট্রাকচার (বাফার) তৈরি করুন।
signature_index = 0
input_buffers = model.create_input_buffers(signature_index)
output_buffers = model.create_output_buffers(signature_index)
signature_index মান 0 মডেলের প্রথম স্বাক্ষরটি নির্বাচন করে।
যদি আপনি CPU মেমোরি ব্যবহার করেন, তাহলে ইনপুট বাফারে সরাসরি NumPy অ্যারে লিখে ইনপুটগুলি পূরণ করুন।
import numpy as np
input_data = np.array([[1.0, 2.0, 3.0, 4.0]], dtype=np.float32)
input_buffers[0].write(input_data)
মডেলটি ডাকুন
ইনপুট এবং আউটপুট বাফার প্রদান করে, মডেলটি চালান।
model.run_by_index(signature_index, input_buffers, output_buffers)
আউটপুট পুনরুদ্ধার করুন
মেমরি থেকে সরাসরি মডেল আউটপুট পড়ে আউটপুট পুনরুদ্ধার করুন।
import numpy as np
# Replace num_elements with the size of your model's output tensor.
num_elements = 4
output_array = output_buffers[0].read(num_elements, np.float32)
TensorBuffer ব্যবহার করুন
LiterRT TensorBuffer API এর মাধ্যমে I/O বাফার ইন্টারঅপারেবিলিটির জন্য অন্তর্নির্মিত সমর্থন প্রদান করে, যা NumPy অ্যারে ( write ) লেখা এবং NumPy অ্যারে ( read ) পড়া সমর্থন করে। সমর্থিত dtype গুলি হল np.float32 , np.int32 , এবং np.int8 ।
আপনি বিদ্যমান হোস্ট মেমরি দ্বারা সমর্থিত একটি বাফারও তৈরি করতে পারেন:
import numpy as np
from ai_edge_litert.tensor_buffer import TensorBuffer
input_array = np.array([[1.0, 2.0, 3.0, 4.0]], dtype=np.float32)
input_buffer = TensorBuffer.create_from_host_memory(input_array)
স্বাক্ষর নাম দ্বারা চালানোর জন্য, প্রথমে মডেল স্বাক্ষরগুলি পরীক্ষা করুন এবং তারপর ইনপুট/আউটপুট নাম থেকে TensorBuffer ইনস্ট্যান্সগুলিতে মানচিত্র সরবরাহ করুন:
from ai_edge_litert.tensor_buffer import TensorBuffer
signatures = model.get_signature_list()
# Example signature structure:
# {"serving_default": {"inputs": ["input_0"], "outputs": ["output_0"]}}
input_buffer = TensorBuffer.create_from_host_memory(input_array)
output_buffer = model.create_output_buffer_by_name("serving_default", "output_0")
model.run_by_name(
"serving_default",
{"input_0": input_buffer},
{"output_0": output_buffer},
)
TensorBuffer API কীভাবে বাস্তবায়িত হয় তার আরও সম্পূর্ণ ধারণার জন্য, TensorBuffer এ সোর্স কোডটি দেখুন।
জিপিইউ অ্যাক্সিলারেটর ব্যবহার করুন
যদি আপনার GPU থাকে, তাহলে আপনি CompiledModel creation API-তে HardwareAccelerator.GPU বিকল্পটি যোগ করে এটি ব্যবহার করতে পারেন।
from ai_edge_litert.compiled_model import CompiledModel
from ai_edge_litert.compiled_model import HardwareAccelerator
model = CompiledModel.from_file("mymodel.tflite", HardwareAccelerator.GPU)
আপনার প্ল্যাটফর্মের জন্য কোন ব্যাকএন্ড সমর্থিত তা দেখতে এটি পরীক্ষা করুন।