Görev Kitaplığı BertNLClassifier
API'si, giriş metnini farklı kategorilerde sınıflandıran NLClassifier
çok benzer, ancak bu API, TFLite modeli dışında Kelime Parçası ve Cümle Parçası belirteçleri gerektiren Bert ile ilgili modeller için özel olarak uyarlanmıştır.
BertNLClassifier API'sinin temel özellikleri
Girdi olarak tek bir string alır, string ile sınıflandırma yapar ve çıktılar verir.
Giriş metninde grafik dışı Sözcük Parçası veya Cümle Parçası belirteçleri gerçekleştirir.
Desteklenen BertNLClassifier modelleri
Aşağıdaki modeller BertNLClassifier
API ile uyumludur.
Metin Sınıflandırması için TensorFlow Lite Model Maker tarafından oluşturulan Bert Modelleri.
Model uyumluluk gereksinimlerini karşılayan özel modeller.
Java'da çıkarımı çalıştır
Adım 1: Gradle bağımlılığını ve diğer ayarları içe aktarın
.tflite
model dosyasını, modelin çalıştırılacağı Android modülünün varlıklar dizinine kopyalayın. Dosyanın sıkıştırılmaması gerektiğini belirtin ve TensorFlow Lite kitaplığını modülün build.gradle
dosyasına ekleyin:
android {
// Other settings
// Specify tflite file should not be compressed for the app apk
aaptOptions {
noCompress "tflite"
}
}
dependencies {
// Other dependencies
// Import the Task Text Library dependency (NNAPI is included)
implementation 'org.tensorflow:tensorflow-lite-task-text:0.3.0'
}
2. Adım: API'yi kullanarak çıkarımı çalıştırın
// Initialization
BertNLClassifierOptions options =
BertNLClassifierOptions.builder()
.setBaseOptions(BaseOptions.builder().setNumThreads(4).build())
.build();
BertNLClassifier classifier =
BertNLClassifier.createFromFileAndOptions(context, modelFile, options);
// Run inference
List<Category> results = classifier.classify(input);
Daha fazla ayrıntı için kaynak koduna bakın.
Swift'de çıkarımı çalıştır
1. Adım: CocoaPod'ları İçe Aktarın
Podfile'de TensorFlowLiteTaskText bölmesini ekleyin
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.2.0'
end
2. Adım: API'yi kullanarak çıkarımı çalıştırın
// Initialization
let bertNLClassifier = TFLBertNLClassifier.bertNLClassifier(
modelPath: bertModelPath)
// Run inference
let categories = bertNLClassifier.classify(text: input)
Daha fazla ayrıntı için kaynak koduna bakın.
Çıkarımı C++ ile çalıştırın
// Initialization
BertNLClassifierOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<BertNLClassifier> classifier = BertNLClassifier::CreateFromOptions(options).value();
// Run inference with your input, `input_text`.
std::vector<core::Category> categories = classifier->Classify(input_text);
Daha fazla ayrıntı için kaynak koduna bakın.
Python'da çıkarımı çalıştır
Adım 1: pip paketini kurun
pip install tflite-support
Adım 2: Modeli kullanma
# Imports
from tflite_support.task import text
# Initialization
classifier = text.BertNLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
BertNLClassifier
yapılandırmak için daha fazla seçenek için kaynak koduna bakın.
Örnek sonuçlar
Model Maker'ın MobileBet modelini kullanan film incelemelerinin sınıflandırma sonuçlarına bir örnek.
Girdi: "büyüleyici ve genellikle etkileyici bir yolculuk"
Çıktı:
category[0]: 'negative' : '0.00006'
category[1]: 'positive' : '0.99994'
BertNLClassifier için basit CLI demo aracını kendi model ve test verilerinizle deneyin.
Model uyumluluğu gereksinimleri
BetNLClassifier
API, zorunlu TFLite Model Meta Verilerine sahip bir TFLite modeli bekler.
Meta Veriler aşağıdaki gereksinimleri karşılamalıdır:
Sözcük Parçası/Cümle Parçası Belirteçleştiricisi için input_process_units
Belirteç çıkışı için "ids", "mask" ve "segment_ids" adlarına sahip 3 giriş tensörü
İsteğe bağlı olarak eklenen bir etiket dosyasıyla, float32 tipinde 1 çıkış tensörü. Bir etiket dosyası eklenmişse, dosya her satırda bir etiket bulunan bir düz metin dosyası olmalı ve etiket sayısı model çıktıları olarak kategori sayısıyla eşleşmelidir.