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

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

দ্রুত অ্যান্ড্রয়েড কোড লেখা শুরু করতে, অ্যান্ড্রয়েডের জন্য কুইকস্টার্ট দেখুন

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

নিম্নলিখিত বিভাগগুলি টেনসরফ্লো লাইটের জন্য ডেভেলপমেন্ট টুল বর্ণনা করে যা কোটলিন এবং জাভা ভাষা ব্যবহার করে।

টেনসরফ্লো লাইট টাস্ক লাইব্রেরি

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

আপনার অ্যান্ড্রয়েড অ্যাপে টাস্ক লাইব্রেরি ব্যবহার করতে, যথাক্রমে টাস্ক ভিশন লাইব্রেরি , টাস্ক টেক্সট লাইব্রেরি এবং টাস্ক অডিও লাইব্রেরির জন্য MavenCentral থেকে AAR ব্যবহার করুন।

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

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
    implementation 'org.tensorflow:tensorflow-lite-task-text:+'
    implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}

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

আরও বিশদ বিবরণের জন্য টেনসরফ্লো লাইট টাস্ক লাইব্রেরি ওভারভিউতে ভূমিকা দেখুন।

টেনসরফ্লো লাইট লাইব্রেরি

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

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

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:+'
}

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

এই 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 দেখুন।

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

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

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

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

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

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-support:+'
}

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

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

লাইব্রেরির জন্য ন্যূনতম Android SDK সংস্করণ

লাইব্রেরি minSdkVersion ডিভাইসের প্রয়োজনীয়তা
tensorflow-lite 19 NNAPI ব্যবহারের জন্য API 27+ প্রয়োজন
tensorflow-lite-gpu 19 GLES 3.1 বা OpenCL (সাধারণত শুধুমাত্র API 21+ এ উপলব্ধ
tensorflow-lite-hexagon 19 -
tensorflow-lite-support 19 -
tensorflow-lite-task-vision 21 android.graphics.Color সম্পর্কিত API এর জন্য API 26+ প্রয়োজন
tensorflow-lite-task-text 21 -
tensorflow-lite-task-audio 23 -
tensorflow-lite-metadata 19 -

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

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

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

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

একটি টেনসরফ্লো লাইট (TFLite) মডেল আমদানি করতে:

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

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

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

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

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

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

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

TFLite C API

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

c_api.h শিরোনাম ফাইলটিতে TFLite C API ব্যবহার সম্পর্কে প্রাথমিক ডকুমেন্টেশন রয়েছে।

TFLite C++ API

আপনি যদি C++ API এর মাধ্যমে TFLite ব্যবহার করতে চান, তাহলে আপনি 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 থেকে হেডার ফাইলের প্রয়োজন হবে।