টাস্ক লাইব্রেরির NLClassifier API ইনপুট টেক্সটকে বিভিন্ন বিভাগে শ্রেণীবদ্ধ করে এবং এটি একটি বহুমুখী এবং কনফিগারযোগ্য API যা বেশিরভাগ টেক্সট ক্লাসিফিকেশন মডেল পরিচালনা করতে পারে।
NLClassifier API এর মূল বৈশিষ্ট্যগুলি
ইনপুট হিসেবে একটি স্ট্রিং নেয়, স্ট্রিং এবং আউটপুট দিয়ে শ্রেণীবিভাগ করে।
ইনপুট টেক্সটের জন্য ঐচ্ছিক রেজেক্স টোকেনাইজেশন উপলব্ধ।
বিভিন্ন শ্রেণীবিভাগ মডেল অভিযোজিত করার জন্য কনফিগারযোগ্য।
সমর্থিত NLClassifier মডেল
নিম্নলিখিত মডেলগুলি NLClassifier API-এর সাথে সামঞ্জস্যপূর্ণ হওয়ার নিশ্চয়তা রয়েছে।
টেক্সট ক্লাসিফিকেশনের জন্য TensorFlow Lite মডেল মেকার দ্বারা তৈরি
average_word_vecস্পেসিফিকেশন সহ মডেল।কাস্টম মডেল যা মডেলের সামঞ্জস্যের প্রয়োজনীয়তা পূরণ করে।
জাভাতে অনুমান চালান
একটি অ্যান্ড্রয়েড অ্যাপে NLClassifier কীভাবে ব্যবহার করবেন তার উদাহরণের জন্য টেক্সট ক্লাসিফিকেশন রেফারেন্স অ্যাপটি দেখুন।
ধাপ ১: গ্রেডল নির্ভরতা এবং অন্যান্য সেটিংস আমদানি করুন
.tflite মডেল ফাইলটি অ্যান্ড্রয়েড মডিউলের সম্পদ ডিরেক্টরিতে কপি করুন যেখানে মডেলটি চালানো হবে। ফাইলটি সংকুচিত করা উচিত নয় তা নির্দিষ্ট করুন এবং মডিউলের build.gradle ফাইলে TensorFlow Lite লাইব্রেরি যোগ করুন:
android {
// Other settings
// Specify tflite file should not be compressed for the app apk
aaptOptions {
noCompress "tflite"
}
}
dependencies {
// Other dependencies
// Import the Task Vision Library dependency
implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
// Import the GPU delegate plugin Library for GPU inference
implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.4.4'
}
ধাপ ২: API ব্যবহার করে ইনফারেন্স চালান
// Initialization, use NLClassifierOptions to configure input and output tensors
NLClassifierOptions options =
NLClassifierOptions.builder()
.setBaseOptions(BaseOptions.builder().useGpu().build())
.setInputTensorName(INPUT_TENSOR_NAME)
.setOutputScoreTensorName(OUTPUT_SCORE_TENSOR_NAME)
.build();
NLClassifier classifier =
NLClassifier.createFromFileAndOptions(context, modelFile, options);
// Run inference
List<Category> results = classifier.classify(input);
NLClassifier কনফিগার করার জন্য আরও বিকল্পের জন্য সোর্স কোডটি দেখুন।
সুইফটে অনুমান চালান
ধাপ ১: কোকোপড আমদানি করুন
Podfile-এ TensorFlowLiteTaskText পড যোগ করুন
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
ধাপ ২: API ব্যবহার করে ইনফারেন্স চালান
// Initialization
var modelOptions:TFLNLClassifierOptions = TFLNLClassifierOptions()
modelOptions.inputTensorName = inputTensorName
modelOptions.outputScoreTensorName = outputScoreTensorName
let nlClassifier = TFLNLClassifier.nlClassifier(
modelPath: modelPath,
options: modelOptions)
// Run inference
let categories = nlClassifier.classify(text: input)
আরও বিস্তারিত জানার জন্য সোর্স কোড দেখুন।
C++ এ অনুমান চালান
// Initialization
NLClassifierOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<NLClassifier> classifier = NLClassifier::CreateFromOptions(options).value();
// Run inference with your input, `input_text`.
std::vector<core::Category> categories = classifier->Classify(input_text);
আরও বিস্তারিত জানার জন্য সোর্স কোড দেখুন।
পাইথনে ইনফারেন্স চালান
ধাপ ১: পিপ প্যাকেজ ইনস্টল করুন
pip install tflite-support
ধাপ ২: মডেল ব্যবহার করা
# Imports
from tflite_support.task import text
# Initialization
classifier = text.NLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
NLClassifier কনফিগার করার জন্য আরও বিকল্পের জন্য সোর্স কোডটি দেখুন।
উদাহরণ ফলাফল
এখানে মুভি রিভিউ মডেলের শ্রেণীবিভাগের ফলাফলের একটি উদাহরণ দেওয়া হল।
ইনপুট: "আমার সময়ের কী অপচয়।"
আউটপুট:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
আপনার নিজস্ব মডেল এবং পরীক্ষার ডেটা দিয়ে NLClassifier-এর জন্য সহজ CLI ডেমো টুলটি ব্যবহার করে দেখুন।
মডেলের সামঞ্জস্যের প্রয়োজনীয়তা
ব্যবহারের ক্ষেত্রের উপর নির্ভর করে, NLClassifier API TFLite মডেল মেটাডেটা সহ বা ছাড়াই একটি TFLite মডেল লোড করতে পারে। TensorFlow Lite মেটাডেটা রাইটার API ব্যবহার করে প্রাকৃতিক ভাষার শ্রেণিবদ্ধকারীর জন্য মেটাডেটা তৈরির উদাহরণ দেখুন।
সামঞ্জস্যপূর্ণ মডেলগুলিকে নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে:
ইনপুট টেনসর: (kTfLiteString/kTfLiteInt32)
- মডেলের ইনপুটটি হয় kTfLiteString টেনসর কাঁচা ইনপুট স্ট্রিং অথবা কাঁচা ইনপুট স্ট্রিংয়ের রেজেক্স টোকেনাইজড সূচকের জন্য kTfLiteInt32 টেনসর হওয়া উচিত।
- যদি ইনপুট টাইপ kTfLiteString হয়, তাহলে মডেলটির জন্য কোনও মেটাডেটার প্রয়োজন নেই।
- যদি ইনপুট টাইপ kTfLiteInt32 হয়, তাহলে ইনপুট টেনসরের মেটাডেটাতে একটি
RegexTokenizerসেট আপ করতে হবে।
আউটপুট স্কোর টেনসর: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
শ্রেণীবদ্ধ প্রতিটি বিভাগের স্কোরের জন্য বাধ্যতামূলক আউটপুট টেনসর।
যদি টাইপটি Int টাইপের মধ্যে একটি হয়, তাহলে সংশ্লিষ্ট প্ল্যাটফর্মগুলিতে দ্বিগুণ/ভাসমান করার জন্য এটির পরিমাণ কম করুন।
ক্যাটাগরি লেবেলের জন্য আউটপুট টেনসরের সংশ্লিষ্ট মেটাডেটাতে একটি ঐচ্ছিক সংযুক্ত ফাইল থাকতে পারে, ফাইলটি একটি প্লেইন টেক্সট ফাইল হওয়া উচিত যার প্রতি লাইনে একটি লেবেল থাকা উচিত এবং লেবেলের সংখ্যা মডেল আউটপুট হিসাবে ক্যাটাগরির সংখ্যার সাথে মিলিত হওয়া উচিত। উদাহরণ লেবেল ফাইলটি দেখুন।
আউটপুট লেবেল টেনসর: (kTfLiteString/kTfLiteInt32)
প্রতিটি বিভাগের জন্য লেবেলের জন্য ঐচ্ছিক আউটপুট টেনসর, আউটপুট স্কোর টেনসরের দৈর্ঘ্যের সমান হওয়া উচিত। যদি এই টেনসরটি উপস্থিত না থাকে, তাহলে API স্কোর সূচকগুলিকে ক্লাসনাম হিসেবে ব্যবহার করে।
আউটপুট স্কোর টেনসরের মেটাডেটাতে সংশ্লিষ্ট লেবেল ফাইল উপস্থিত থাকলে উপেক্ষা করা হবে।