অ্যান্ড্রয়েডের জন্য ডেভেলপমেন্ট টুল

LiteRT অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলিতে মডেলগুলিকে একীভূত করার জন্য অনেকগুলি সরঞ্জাম সরবরাহ করে৷ এই পৃষ্ঠাটি Kotlin, Java, এবং C++ এর সাথে অ্যাপ তৈরিতে ব্যবহারের জন্য ডেভেলপমেন্ট টুলের বর্ণনা দেয়, সেইসাথে Android স্টুডিওতে LiteRT ডেভেলপমেন্টের জন্য সমর্থন।

কোটলিন এবং জাভা দিয়ে নির্মাণের জন্য সরঞ্জাম

নিম্নলিখিত বিভাগগুলি LiteRT-এর জন্য বিকাশের সরঞ্জামগুলি বর্ণনা করে যা কোটলিন এবং জাভা ভাষা ব্যবহার করে।

LiteRT লাইব্রেরি

আপনার ডেভেলপমেন্ট প্রজেক্টে MavenCentral-এ হোস্ট করা AAR যোগ করে আপনার Android অ্যাপে LiteRT লাইব্রেরি ব্যবহার করুন।

আপনি নিম্নলিখিতভাবে আপনার build.gradle নির্ভরতাগুলিতে এটি নির্দিষ্ট করতে পারেন:

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

আপনি যদি রাত্রিকালীন স্ন্যাপশটগুলি ব্যবহার করেন তবে নিশ্চিত করুন যে আপনি আপনার প্রকল্পে সোনাটাইপ স্ন্যাপশট সংগ্রহস্থল যোগ করেছেন।

এই AAR-এ সমস্ত Android ABI- এর জন্য বাইনারি অন্তর্ভুক্ত রয়েছে। আপনি শুধুমাত্র যে ABIগুলিকে সমর্থন করতে হবে তা অন্তর্ভুক্ত করে আপনি আপনার অ্যাপ্লিকেশনের বাইনারি আকার কমাতে পারেন।

আপনি নির্দিষ্ট হার্ডওয়্যার টার্গেট না করলে, বেশিরভাগ ক্ষেত্রে আপনার x86 , x86_64 , এবং arm32 ABIs বাদ দেওয়া উচিত। আপনি নিম্নলিখিত Gradle কনফিগারেশন দিয়ে এটি কনফিগার করতে পারেন। এটি বিশেষভাবে শুধুমাত্র armeabi-v7a এবং arm64-v8a অন্তর্ভুক্ত করে এবং বেশিরভাগ আধুনিক Android ডিভাইসগুলিকে কভার করা উচিত৷

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

abiFilters সম্পর্কে আরও জানতে, Android NDK ডকুমেন্টেশনে Android ABIs দেখুন।

LiteRT সাপোর্ট লাইব্রেরি

LiteRT Android সাপোর্ট লাইব্রেরি আপনার অ্যাপ্লিকেশনে মডেলগুলিকে একীভূত করা সহজ করে তোলে৷ এটি উচ্চ-স্তরের API প্রদান করে যা মডেলের প্রয়োজনীয় ফর্মে কাঁচা ইনপুট ডেটা রূপান্তর করতে সাহায্য করে এবং মডেলের আউটপুট ব্যাখ্যা করে, প্রয়োজনীয় বয়লারপ্লেট কোডের পরিমাণ হ্রাস করে।

এটি ইমেজ এবং অ্যারে সহ ইনপুট এবং আউটপুটগুলির জন্য সাধারণ ডেটা ফর্ম্যাটগুলিকে সমর্থন করে। এটি প্রি- এবং পোস্ট-প্রসেসিং ইউনিটও প্রদান করে যা ইমেজ রিসাইজ করা এবং ক্রপ করার মতো কাজ করে।

MavenCentral-এ হোস্ট করা LiteRT সাপোর্ট লাইব্রেরি AAR অন্তর্ভুক্ত করে আপনার Android অ্যাপে সাপোর্ট লাইব্রেরি ব্যবহার করুন।

আপনি নিম্নলিখিতভাবে আপনার build.gradle নির্ভরতাগুলিতে এটি নির্দিষ্ট করতে পারেন:

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

আপনি যদি রাত্রিকালীন স্ন্যাপশটগুলি ব্যবহার করেন তবে নিশ্চিত করুন যে আপনি আপনার প্রকল্পে সোনাটাইপ স্ন্যাপশট সংগ্রহস্থল যোগ করেছেন।

কিভাবে শুরু করবেন তার নির্দেশাবলীর জন্য, LiteRT Android সাপোর্ট লাইব্রেরি দেখুন।

অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে

উপরে বর্ণিত ডেভেলপমেন্ট লাইব্রেরিগুলি ছাড়াও, Android স্টুডিও LiteRT মডেলগুলিকে একীভূত করার জন্য সমর্থন প্রদান করে, যেমনটি নীচে বর্ণিত হয়েছে।

অ্যান্ড্রয়েড স্টুডিও এমএল মডেল বাইন্ডিং

অ্যান্ড্রয়েড স্টুডিও 4.1 এবং পরবর্তীতে এমএল মডেল বাইন্ডিং বৈশিষ্ট্য আপনাকে আপনার বিদ্যমান অ্যান্ড্রয়েড অ্যাপে .tflite মডেল ফাইলগুলি আমদানি করতে এবং একটি মডেলের সাথে আপনার কোডকে একীভূত করা সহজ করতে ইন্টারফেস ক্লাস তৈরি করতে দেয়৷

একটি LiteRT মডেল আমদানি করতে:

  1. আপনি যে মডিউলটি LiteRT মডেলটি ব্যবহার করতে চান তার উপর ডান-ক্লিক করুন অথবা File > New > Other > LiteRT মডেলে ক্লিক করুন।

  2. আপনার LiteRT ফাইলের অবস্থান নির্বাচন করুন। নোট করুন যে টুলিং ML মডেল বাইন্ডিং এর সাথে মডিউলের নির্ভরতা কনফিগার করে এবং স্বয়ংক্রিয়ভাবে আপনার Android মডিউলের build.gradle ফাইলে প্রয়োজনীয় সমস্ত নির্ভরতা যোগ করে।

  3. আমদানি প্রক্রিয়া শুরু করতে Finish ক্লিক করুন। যখন ইম্পোর্ট করা শেষ হয়, টুলটি একটি স্ক্রীন প্রদর্শন করে যা মডেলের বর্ণনা দেয়, এর ইনপুট এবং আউটপুট টেনসর সহ।

  4. মডেল ব্যবহার শুরু করতে, Kotlin বা Java নির্বাচন করুন, নমুনা কোড বিভাগে কোডটি অনুলিপি করুন এবং পেস্ট করুন।

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

C এবং C++ দিয়ে নির্মাণের জন্য টুল

LiteRT-এর জন্য C এবং C++ লাইব্রেরিগুলি মূলত ডেভেলপারদের জন্য তাদের অ্যাপ তৈরি করতে Android Native Development Kit (NDK) ব্যবহার করে। আপনি যদি NDK দিয়ে আপনার অ্যাপ তৈরি করেন তবে C++ এর মাধ্যমে LiteRT ব্যবহার করার দুটি উপায় রয়েছে:

LiteRT C API

এই API ব্যবহার করা হল NDK ব্যবহারকারী ডেভেলপারদের জন্য প্রস্তাবিত পদ্ধতি। MavenCentral ফাইলে হোস্ট করা LiteRT AAR ডাউনলোড করুন, tensorflow-lite-*.zip এর নাম পরিবর্তন করুন এবং এটি আনজিপ করুন। আপনাকে অবশ্যই headers/tensorflow/lite/ এবং headers/tensorflow/lite/c/ ফোল্ডারে চারটি হেডার ফাইল এবং আপনার NDK প্রোজেক্টের jni/ ফোল্ডারে প্রাসঙ্গিক libtensorflowlite_jni.so ডায়নামিক লাইব্রেরি অন্তর্ভুক্ত করতে হবে।

c_api.h হেডার ফাইলে LiteRT C API ব্যবহার করার বিষয়ে মৌলিক ডকুমেন্টেশন রয়েছে।

LiteRT C++ API

আপনি যদি C++ API এর মাধ্যমে LiteRT ব্যবহার করতে চান, তাহলে আপনি C++ শেয়ার্ড লাইব্রেরি তৈরি করতে পারেন:

32 বিট আরমেবি-ভি7এ:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64bit arm64-v8a:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

বর্তমানে, প্রয়োজনীয় সমস্ত হেডার ফাইল বের করার কোনো সহজ উপায় নেই, তাই আপনাকে অবশ্যই টেনসরফ্লো রিপোজিটরি থেকে tensorflow/lite/ -এ সমস্ত হেডার ফাইল অন্তর্ভুক্ত করতে হবে। উপরন্তু, আপনার FlatBuffers এবং Abseil থেকে হেডার ফাইলের প্রয়োজন হবে।