टास्क लाइब्रेरी का NLClassifier
एपीआई इनपुट टेक्स्ट को विभिन्न श्रेणियों में वर्गीकृत करता है, और एक बहुमुखी और विन्यास योग्य एपीआई है जो अधिकांश टेक्स्ट वर्गीकरण मॉडल को संभाल सकता है।
NLClassifier API की मुख्य विशेषताएं
इनपुट के रूप में एक स्ट्रिंग लेता है, स्ट्रिंग और आउटपुट के साथ वर्गीकरण करता है
इनपुट टेक्स्ट के लिए वैकल्पिक रेगेक्स टोकनाइजेशन उपलब्ध है।
विभिन्न वर्गीकरण मॉडल को अनुकूलित करने के लिए विन्यास योग्य।
समर्थित NLClassifier मॉडल
निम्नलिखित मॉडलों को NLClassifier
API के साथ संगत होने की गारंटी है।
टेक्स्ट वर्गीकरण के लिए TensorFlow लाइट मॉडल मेकर द्वारा बनाए गए
average_word_vec
स्पेक वाले मॉडल।कस्टम मॉडल जो मॉडल संगतता आवश्यकताओं को पूरा करते हैं।
जावा में अनुमान चलाएँ
Android ऐप में NLClassifier
का उपयोग कैसे करें, इसके उदाहरण के लिए टेक्स्ट क्लासिफिकेशन रेफरेंस ऐप देखें।
चरण 1: ग्रैडल निर्भरता और अन्य सेटिंग्स आयात करें
एंड्रॉइड मॉड्यूल की संपत्ति निर्देशिका में .tflite
मॉडल फ़ाइल की प्रतिलिपि बनाएँ जहां मॉडल चलाया जाएगा। निर्दिष्ट करें कि फ़ाइल को संपीड़ित नहीं किया जाना चाहिए, और TensorFlow Lite लाइब्रेरी को मॉड्यूल की build.gradle
फ़ाइल में जोड़ें:
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 (NNAPI is included)
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'
}
चरण 2: 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
को कॉन्फ़िगर करने के अधिक विकल्पों के लिए स्रोत कोड देखें।
स्विफ्ट में अनुमान चलाएँ
चरण 1: कोकोपोड्स आयात करें
पॉडफाइल में TensorFlowLiteTaskText पॉड जोड़ें
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
चरण 2: 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)
अधिक जानकारी के लिए स्रोत कोड देखें।
सी ++ में अनुमान चलाएं
// 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);
अधिक जानकारी के लिए स्रोत कोड देखें।
पायथन में अनुमान चलाएँ
चरण 1: पाइप पैकेज स्थापित करें
pip install tflite-support
चरण 2: मॉडल का उपयोग करना
# 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
मॉडल मेटाडेटा के साथ या बिना टीएफलाइट मॉडल लोड कर सकता है। TensorFlow Lite Metadata Writer API का उपयोग करके प्राकृतिक भाषा क्लासिफायरियर के लिए मेटाडेटा बनाने के उदाहरण देखें।
संगत मॉडल को निम्नलिखित आवश्यकताओं को पूरा करना चाहिए:
इनपुट टेंसर: (kTfLiteString/kTfLiteInt32)
- मॉडल का इनपुट या तो kTfLiteString टेन्सर रॉ इनपुट स्ट्रिंग या kTfLiteInt32 टेंसर होना चाहिए जो रॉ इनपुट स्ट्रिंग के रेगेक्स टोकन इंडेक्स के लिए हो।
- यदि इनपुट प्रकार kTfLiteString है, तो मॉडल के लिए किसी मेटाडेटा की आवश्यकता नहीं है।
- यदि इनपुट प्रकार kTfLiteInt32 है, तो इनपुट टेंसर के मेटाडेटा में एक
RegexTokenizer
को स्थापित करने की आवश्यकता है।
आउटपुट स्कोर टेंसर: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
वर्गीकृत प्रत्येक श्रेणी के स्कोर के लिए अनिवार्य आउटपुट टेंसर।
यदि प्रकार इंट प्रकारों में से एक है, तो इसे संबंधित प्लेटफॉर्म पर डबल/फ्लोट करने के लिए dequantize
श्रेणी लेबल के लिए आउटपुट टेंसर के संबंधित मेटाडेटा में एक वैकल्पिक संबद्ध फ़ाइल हो सकती है, फ़ाइल प्रति पंक्ति एक लेबल के साथ एक सादा पाठ फ़ाइल होनी चाहिए, और लेबल की संख्या मॉडल आउटपुट के रूप में श्रेणियों की संख्या से मेल खाना चाहिए। उदाहरण लेबल फ़ाइल देखें।
आउटपुट लेबल टेंसर: (kTfLiteString/kTfLiteInt32)
प्रत्येक श्रेणी के लिए लेबल के लिए वैकल्पिक आउटपुट टेंसर, आउटपुट स्कोर टेंसर के समान लंबाई का होना चाहिए। यदि यह टेंसर मौजूद नहीं है, तो एपीआई स्कोर इंडेक्स को क्लासनाम के रूप में उपयोग करता है।
यदि संबंधित लेबल फ़ाइल आउटपुट स्कोर टेंसर के मेटाडेटा में मौजूद है, तो उसे नज़रअंदाज़ कर दिया जाएगा।