Görev Kitaplığı'nın NLClassifier
API'si, giriş metnini farklı
birçok metni işleyebilen çok yönlü ve yapılandırılabilir bir API'dir
sınıflandırma modelleridir.
NLClassifier API'nin temel özellikleri
Giriş olarak tek bir dize alır, dizeyle sınıflandırma yapar ve <label, score=""> gibi çıkışlar eşlemelerini sınıflandırma sonucu olarak kullanabilirsiniz.</label,>
Giriş metni için isteğe bağlı Normal İfade belirteci kullanılabilir.
Farklı sınıflandırma modellerine uyum sağlayacak şekilde yapılandırılabilir.
Desteklenen NLClassifier modelleri
Aşağıdaki modellerin NLClassifier
ile uyumlu olacağı garanti edilir
API'ye gidin.
Java'da çıkarım çalıştırma
Bkz. Metin Sınıflandırma referansı
uygulama
NLClassifier
uygulamasını Android uygulamasında nasıl kullanacağınızı gösteren örnek.
1. Adım: Gradle bağımlılığını ve diğer ayarları içe aktarın
.tflite
model dosyasını Android modülünün öğe dizinine kopyalayın
nerede çalıştırılacağına karar verin. Dosyanın sıkıştırılmaması gerektiğini belirtin ve
modülün build.gradle
dosyasına TensorFlow Lite kitaplığını ekleyin:
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'
}
2. Adım: API'yi kullanarak çıkarım çalıştırma
// 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);
Kaynağa bakın
kod
daha fazla NLClassifier
yapılandırma seçeneğine gidin.
Swift'te çıkarım çalıştır
1. Adım: CocoaPods'u içe aktarın
Podfile'a TensorFlowLiteTaskText kapsülünü ekleme
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
2. Adım: API'yi kullanarak çıkarım çalıştırma
// 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)
Kaynağa bakın kod inceleyebilirsiniz.
C++'ta çıkarım çalıştır
// 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);
Kaynağa bakın kod inceleyebilirsiniz.
Python'da çıkarım çalıştırma
1. Adım: Pip paketini yükleyin
pip install tflite-support
2. Adım: Modeli kullanma
# Imports
from tflite_support.task import text
# Initialization
classifier = text.NLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Kaynağa bakın
kod
daha fazla NLClassifier
yapılandırma seçeneğine gidin.
Örnek sonuçlar
Film incelemesinin sınıflandırma sonuçlarının bir örneğini burada bulabilirsiniz: modeli ekleyin.
Giriş: "Ne kadar zamanımı boşa harcadığım."
Çıkış:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
Şunun için basit CLI demo aracını deneyin: NLClassifier kullanarak test edebilirsiniz.
Model uyumluluğu şartları
Kullanım alanına bağlı olarak NLClassifier
API,
TFLite Model Meta Verileri olmadan da ilişkilendirebilirsiniz. Örnekleri inceleyin
TensorFlow Lite kullanarak doğal dil sınıflandırıcıları için meta veri oluşturma
Meta Veri Yazıcısı
API.
Uyumlu modeller aşağıdaki gereksinimleri karşılamalıdır:
Giriş tensörü: (kTfLiteString/kTfLiteInt32)
- Model girişi, bir kTfLiteString tensörü ham girişi olmalıdır ham girişin normal ifade jetonlu dizinleri için dize veya bir kTfLiteInt32 tensörü dize.
- Giriş türü kTfLiteString ise Hayır Model için meta veriler gereklidir.
- Giriş türü kTfLiteInt32 ise
RegexTokenizer
giriş tensörü Meta veri.
Çıkış puanı tensörü: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
Sınıflandırılmış her kategorinin puanı için zorunlu çıkış tensörü.
Tür, Int türlerinden biriyse çift/kayma olarak ayarlayın ilgili platformlar
Çıkış tensöründe isteğe bağlı ilişkili bir dosya olabilir kategorinin Meta verileri etiketleri, dosya her satırda tek bir etiket bulunan bir düz metin dosyası olmalıdır Ayrıca etiket sayısı da modellerin çıkışını inceleyelim. Örnek etikete bakın dosyası olarak adlandırılır.
Çıkış etiketi tensörü: (kTfLiteString/kTfLiteInt32)
Her kategoride etiket için isteğe bağlı çıkış tensörü, ile çıkış puanı tensörüyle aynı uzunlukta olmalıdır. Bu tensör mevcut değilse API, puan dizinlerini sınıf adı olarak kullanır.
Çıkış puanında ilişkili etiket dosyası mevcutsa yoksayılır tensörün meta verileridir.