This page was translated by the Cloud Translation API.
Switch to English

অ্যান্ড্রয়েড কুইকস্টার্ট

অ্যান্ড্রয়েডে টেনসরফ্লো লাইট দিয়ে শুরু করতে, আমরা নিম্নলিখিত উদাহরণটি অন্বেষণের প্রস্তাব দিই।

অ্যান্ড্রয়েড চিত্রের শ্রেণিবিন্যাসের উদাহরণ

উত্স কোডের ব্যাখ্যার জন্য টেনসরফ্লো লাইট অ্যান্ড্রয়েড চিত্রের শ্রেণিবিন্যাস পড়ুন।

এই অ্যাপ্লিকেশনটি ডিভাইসের রিয়ার-ফেসিং ক্যামেরা থেকে যা কিছু দেখে তা অবিচ্ছিন্নভাবে শ্রেণিবদ্ধ করতে চিত্রের শ্রেণিবিন্যাস ব্যবহার করে। অ্যাপ্লিকেশনটি ডিভাইস বা এমুলেটরটিতে চালানো যেতে পারে।

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

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

অ্যান্ড্রয়েড স্টুডিওতে উদাহরণ তৈরি করতে, README.md এ থাকা নির্দেশাবলী অনুসরণ করুন।

আপনার নিজের অ্যান্ড্রয়েড অ্যাপ তৈরি করুন

আপনার নিজের অ্যান্ড্রয়েড কোডটি দ্রুত লিখতে শুরু করতে, আমরা আমাদের অ্যান্ড্রয়েড চিত্রের শ্রেণিবিন্যাসের উদাহরণটি একটি বিন্দু হিসাবে ব্যবহার করার পরামর্শ দিই।

অ্যান্ড্রয়েডে টেনসরফ্লো লাইটের সাথে কাজ করার জন্য নিম্নলিখিত বিভাগগুলিতে কিছু দরকারী তথ্য রয়েছে।

টেনসরফ্লো লাইট অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরি ব্যবহার করুন

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

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

শুরু করতে, টেনসরফ্লো লাইট অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরি README.md এর নির্দেশাবলী অনুসরণ করুন।

জেসেন্টার থেকে টেনসরফ্লো লাইট এআর ব্যবহার করুন

আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনে টেনসরফ্লো লাইট ব্যবহার করতে, আমরা জেসিেন্টারে হোস্ট টেনসরফ্লো লাইট এআর ব্যবহার করার পরামর্শ দিই

আপনি নিম্নলিখিত হিসাবে আপনার build.gradle নির্ভরতা মধ্যে এটি নির্দিষ্ট করতে পারেন:

 dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
}
 

এই এএআর-এ সমস্ত অ্যান্ড্রয়েড এবিআইয়ের বাইনারি রয়েছে। আপনার সমর্থনের প্রয়োজন কেবলমাত্র এবিআইকে অন্তর্ভুক্ত করে আপনি আপনার অ্যাপ্লিকেশনটির বাইনারি আকার কমাতে পারেন।

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

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

abiFilters সম্পর্কে আরও জানতে, অ্যান্ড্রয়েড গ্রেডল ডকুমেন্টেশনে NdkOptions দেখুন।

স্থানীয়ভাবে টেনসরফ্লো লাইট তৈরি করুন

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

ডকার ব্যবহার করে বিল্ড এনভায়রনমেন্ট সেট আপ করুন

  • ডকার ফাইলটি ডাউনলোড করুন। ডকার ফাইলটি ডাউনলোড করে আপনি সম্মত হন যে নিম্নলিখিত পরিষেবার শর্তাদি আপনার ব্যবহারকে নিয়ন্ত্রণ করে:

স্বীকার করতে ক্লিক করে আপনি একমত হন যে অ্যান্ড্রয়েড স্টুডিও এবং অ্যান্ড্রয়েড নেটিভ ডেভলপমেন্ট কিট এর সমস্ত ব্যবহার https://developer.android.com/studio/terms এ উপলব্ধ অ্যান্ড্রয়েড সফটওয়্যার ডেভলপমেন্ট কিট লাইসেন্স চুক্তি দ্বারা পরিচালিত হবে (এ জাতীয় URL হতে পারে গুগল সময়ে সময়ে আপডেট বা পরিবর্তন করা)।

ফাইলটি ডাউনলোড করার জন্য আপনাকে অবশ্যই পরিষেবার শর্তাদি স্বীকার করতে হবে। স্বীকার করুন

  • আপনি allyচ্ছিকভাবে Android SDK বা NDK সংস্করণ পরিবর্তন করতে পারেন। ডাউনলোড করা ডকার ফাইলটি একটি খালি ফোল্ডারে রাখুন এবং চালিয়ে আপনার ডকার চিত্রটি তৈরি করুন:
 docker build . -t tflite-builder -f tflite-android.Dockerfile
 
  • আপনার বর্তমান ফোল্ডারটি কনটেইনারটির ভিতরে / টিএমপি তে মাউন্ট করে আন্তঃপ্রিয় ডক কনটেইনারটি শুরু করুন (নোট করুন / টেনসরফ্লো_সিআরপি কনটেইনারটির ভিতরে টেনসরফ্লো সংগ্রহস্থল):
 docker run -it -v $PWD:/tmp tflite-builder bash
 

আপনি যদি উইন্ডোজে পাওয়ারশেল ব্যবহার করেন তবে "w পিডাব্লুডি" "পিডাব্লুডি" দিয়ে প্রতিস্থাপন করুন।

আপনি যদি হোস্টে টেনসরফ্লো সংগ্রহস্থল ব্যবহার করতে চান তবে তার পরিবর্তে সেই হোস্ট ডিরেক্টরিটি মাউন্ট করুন (-v হোস্টডির: / টিএমপি)।

  • একবার আপনি ধারকটির অভ্যন্তরে প্রবেশ করার পরে, অতিরিক্ত অ্যান্ড্রয়েড সরঞ্জাম এবং লাইব্রেরি ডাউনলোড করতে নিম্নলিখিতগুলি চালাতে পারেন (নোট করুন যে আপনাকে লাইসেন্সটি গ্রহণ করতে হবে):
 android update sdk --no-ui -a --filter tools,platform-tools,android-${ANDROID_API_LEVEL},build-tools-${ANDROID_BUILD_TOOLS_VERSION}
 

আপনি এখন "বিল্ড এবং ইনস্টল করুন" বিভাগে যেতে পারেন। আপনি লাইব্রেরিগুলি নির্মাণ শেষ করার পরে, আপনি সেগুলি ধারকটির ভিতরে / টেম্পে অনুলিপি করতে পারেন যাতে আপনি সেগুলি হোস্টে অ্যাক্সেস করতে পারেন।

ডকার ছাড়াই বিল্ড এনভায়রনমেন্ট সেট আপ করুন

বাজেল এবং অ্যান্ড্রয়েড পূর্বশর্ত ইনস্টল করুন

টেনসরফ্লোর জন্য প্রাথমিক বিল্ড সিস্টেম হ'ল বাজেল। এটি তৈরি করতে আপনার অবশ্যই এটি এবং আপনার সিস্টেমে অ্যান্ড্রয়েড এনডিকে এবং এসডিকে ইনস্টল থাকা উচিত।

  1. বাজেল বিল্ড সিস্টেমের সর্বশেষতম সংস্করণটি ইনস্টল করুন।
  2. দেশীয় (সি / সি ++) টেনসরফ্লো লাইট কোডটি তৈরি করতে অ্যান্ড্রয়েড এনডিকে প্রয়োজনীয়। বর্তমানের প্রস্তাবিত সংস্করণটি 17 সি, যা এখানে পাওয়া যাবে
  3. অ্যান্ড্রয়েড এসডিকে এবং বিল্ড সরঞ্জামগুলি এখানে বা বিকল্পভাবে অ্যান্ড্রয়েড স্টুডিওর অংশ হিসাবে পাওয়া যেতে পারে। বিল্ড সরঞ্জামগুলি API> = 23 হ'ল টেনসরফ্লো লাইট তৈরির প্রস্তাবিত সংস্করণ।
ওয়ার্কস্পেস এবং .বাজেলর্ক কনফিগার করুন

রুট টেনসরফ্লো চেকআউট ডিরেক্টরিতে। / ./configure স্ক্রিপ্টটি চালান, এবং স্ক্রিপ্টটি অ্যান্ড্রয়েড বিল্ডগুলির জন্য ./WORKSPACE ইন্টারেক্টিভভাবে কনফিগার করতে ./WORKSPACE "হ্যাঁ" উত্তর দিন। স্ক্রিপ্টটি নিম্নলিখিত পরিবেশের ভেরিয়েবলগুলি ব্যবহার করে সেটিংস কনফিগার করার চেষ্টা করবে:

  • ANDROID_SDK_HOME
  • ANDROID_SDK_API_LEVEL
  • ANDROID_NDK_HOME
  • ANDROID_NDK_API_LEVEL

যদি এই ভেরিয়েবলগুলি সেট না করা থাকে তবে তাদের অবশ্যই স্ক্রিপ্ট প্রম্পটে ইন্টারেক্টিভভাবে সরবরাহ করা উচিত। সফল কনফিগারেশনে রুট ফোল্ডারে .tf_configure.bazelrc ফাইলের সাথে নিম্নলিখিতগুলির অনুরূপ এন্ট্রি পাওয়া উচিত:

 build --action_env ANDROID_NDK_HOME="/usr/local/android/android-ndk-r17c"
build --action_env ANDROID_NDK_API_LEVEL="21"
build --action_env ANDROID_BUILD_TOOLS_VERSION="28.0.3"
build --action_env ANDROID_SDK_API_LEVEL="23"
build --action_env ANDROID_SDK_HOME="/usr/local/android/android-sdk-linux"
 

বিল্ড এবং ইনস্টল করুন

একবার বাজেল যথাযথভাবে কনফিগার হয়ে গেলে, আপনি নীচে রুট চেকআউট ডিরেক্টরি থেকে টেনসরফ্লো লাইট এআর তৈরি করতে পারেন:

 bazel build -c opt --fat_apk_cpu=x86,x86_64,arm64-v8a,armeabi-v7a \
  --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
  //tensorflow/lite/java:tensorflow-lite
 

এটি bazel-bin/tensorflow/lite/java/ একটি এআর ফাইল তৈরি করবে। নোট করুন যে এটি বেশ কয়েকটি বিভিন্ন আর্কিটেকচারের সাথে একটি "ফ্যাট" এআর তৈরি করে; আপনার যদি এই সমস্তগুলির প্রয়োজন না হয় তবে আপনার স্থাপনার পরিবেশের জন্য উপযুক্ত উপসেটটি ব্যবহার করুন। সেখান থেকে, আপনার অ্যান্ড্রয়েড স্টুডিও প্রকল্পে .aar ব্যবহার করার জন্য আপনি নিতে পারেন এমন কয়েকটি পদ্ধতি।

প্রকল্পে সরাসরি এএআর যুক্ত করুন

সরান tensorflow-lite.aar একটি ডিরেক্টরি নামক ফাইলটি libs আপনার প্রকল্পের মধ্যে। নতুন ডিরেক্টরিটি উল্লেখ করতে আপনার অ্যাপ্লিকেশনটির build.gradle ফাইলটি সংশোধন করুন এবং বিদ্যমান টেনসরফ্লো লাইট নির্ভরতা নতুন স্থানীয় গ্রন্থাগারের সাথে প্রতিস্থাপন করুন, যেমন:

 allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    compile(name:'tensorflow-lite', ext:'aar')
}
 
স্থানীয় মাভেন সংগ্রহস্থলে AAR ইনস্টল করুন

আপনার রুট চেকআউট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি প্রয়োগ করুন:

 mvn install:install-file \
  -Dfile=bazel-bin/tensorflow/lite/java/tensorflow-lite.aar \
  -DgroupId=org.tensorflow \
  -DartifactId=tensorflow-lite -Dversion=0.1.100 -Dpackaging=aar
 

আপনার অ্যাপ্লিকেশনটির build.gradle , নিশ্চিত করুন যে আপনি mavenLocal() নির্ভরতা পেয়েছেন এবং মানক টেনসরফ্লো লাইট নির্ভরতা তার সাথে নির্বাচিত mavenLocal() জন্য mavenLocal() প্রতিস্থাপন করুন:

 allprojects {
    repositories {
        jcenter()
        mavenLocal()
    }
}

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

মনে রাখবেন যে এখানে 0.1.100 সংস্করণটি 0.1.100 পরীক্ষা / বিকাশের স্বার্থে। স্থানীয় এআআআআআআরএআর ইনস্টল করার সাথে আপনি নিজের অ্যাপ্লিকেশন কোডটিতে স্ট্যান্ডার্ড টেনসরফ্লো লাইট জাভা ইনফারেন্স এপিআই ব্যবহার করতে পারেন।

সি ++ ব্যবহার করে অ্যান্ড্রয়েড অ্যাপ তৈরি করুন

আপনি যদি এনডিকে দিয়ে অ্যাপটি তৈরি করেন তবে সি ++ এর মাধ্যমে টিএফলাইট ব্যবহারের দুটি উপায় রয়েছে:

টিএফলাইট সি এপিআই ব্যবহার করুন

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

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

টিএফলাইট সি ++ এপিআই ব্যবহার করুন

আপনি যদি সি ++ এপিআইয়ের মাধ্যমে টিএফলাইট ব্যবহার করতে চান তবে আপনি সি ++ ভাগ করা লাইব্রেরি তৈরি করতে পারেন:

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

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

64 বিট আর্ম 64-ভি 8 এ:

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

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