TensorFlow Lite Görev Kitaplığı, uygulama geliştiricilerin TFLite ile makine öğrenimi deneyimleri oluşturması için bir dizi güçlü ve kullanımı kolay göreve özgü kitaplık içerir. Görüntü sınıflandırma, soru-cevap vb. gibi popüler makine öğrenimi görevleri için optimize edilmiş kullanıma hazır model arabirimleri sağlar. Model arabirimleri, en iyi performansı ve kullanılabilirliği elde etmek için her görev için özel olarak tasarlanmıştır. Görev Kitaplığı platformlar arası çalışır ve Java, C++ ve Swift'te desteklenir.
Görev Kitaplığı'ndan ne beklenir?
Makine öğrenimi uzmanı olmayanlar tarafından kullanılabilen temiz ve iyi tanımlanmış API'ler
Çıkarım sadece 5 kod satırında yapılabilir. Mobil cihazlarda TFLite ile makine öğrenimini kolayca geliştirmenize yardımcı olması için Görev kitaplığındaki güçlü ve kullanımı kolay API'leri yapı taşları olarak kullanın.Karmaşık ama yaygın veri işleme
Verileriniz ile modelin gerektirdiği veri formatı arasında dönüştürme yapmak için ortak görüş ve doğal dil işleme mantığını destekler. Eğitim ve çıkarım için aynı, paylaşılabilir işleme mantığını sağlar.Yüksek performans kazancı
Veri işleme, birkaç milisaniyeden fazla sürmez ve TensorFlow Lite kullanarak hızlı çıkarım deneyimi sağlar.Genişletilebilirlik ve özelleştirme
Görev Kitaplığı altyapısının sağladığı tüm avantajlardan yararlanabilir ve kendi Android/iOS çıkarım API'lerinizi kolayca oluşturabilirsiniz.
desteklenen görevler
Desteklenen görev türlerinin listesi aşağıdadır. Gittikçe daha fazla kullanım durumu sağlamaya devam ettikçe listenin büyümesi bekleniyor.
Vizyon API'leri
Doğal Dil (NL) API'leri
Ses API'leri
Özel API'ler
- Task API altyapısını genişletin ve özelleştirilmiş API oluşturun.
Görev Kitaplığını Delegelerle Çalıştır
Delegeler, GPU ve Coral Edge TPU gibi cihazdaki hızlandırıcılardan yararlanarak TensorFlow Lite modellerinin donanım hızlandırmasını etkinleştirir. Bunları sinir ağı işlemleri için kullanmak, gecikme süresi ve güç verimliliği açısından büyük faydalar sağlar. Örneğin, GPU'lar mobil cihazlarda gecikmede 5 kata kadar hızlanma sağlayabilir ve Coral Edge TPU'lar masaüstü CPU'lardan 10 kat daha hızlı çıkarım sağlayabilir.
Görev Kitaplığı, delegeleri kurmanız ve kullanmanız için kolay yapılandırma ve geri dönüş seçenekleri sağlar. Aşağıdaki hızlandırıcılar artık Task API'de desteklenmektedir:
- Android
- Linux / Mac
- Mercan Kenar TPU : C++
- iOS
- Core ML temsilcisi : C++
Task Swift / Web API'de hızlandırma desteği yakında geliyor.
Java'da Android'de GPU'nun örnek kullanımı
Adım 1. GPU temsilci eklenti kitaplığını modülünüzün build.gradle
dosyasına ekleyin:
dependencies {
// Import Task Library dependency for vision, text, or audio.
// Import the GPU delegate plugin Library for GPU inference
implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin'
}
2. Adım. BaseOptions aracılığıyla görev seçeneklerinde GPU temsilcisini yapılandırın. Örneğin, ObjectDetector
GPU'yu aşağıdaki gibi ayarlayabilirsiniz:
// Turn on GPU delegation.
BaseOptions baseOptions = BaseOptions.builder().useGpu().build();
// Configure other options in ObjectDetector
ObjectDetectorOptions options =
ObjectDetectorOptions.builder()
.setBaseOptions(baseOptions)
.setMaxResults(1)
.build();
// Create ObjectDetector from options.
ObjectDetector objectDetector =
ObjectDetector.createFromFileAndOptions(context, modelFile, options);
// Run inference
List<Detection> results = objectDetector.detect(image);
C++'da Android'de GPU'nun örnek kullanımı
1. Adım. Bazel oluşturma hedefinizdeki GPU temsilci eklentisine bağlı olarak, örneğin:
deps = [
"//tensorflow_lite_support/acceleration/configuration:gpu_plugin", # for GPU
]
Diğer temsilci seçenekleri şunları içerir:
"//tensorflow_lite_support/acceleration/configuration:nnapi_plugin", # for NNAPI
"//tensorflow_lite_support/acceleration/configuration:hexagon_plugin", # for Hexagon
Adım 2. Görev seçeneklerinde GPU temsilcisini yapılandırın. Örneğin, BertQuestionAnswerer
GPU'yu aşağıdaki gibi ayarlayabilirsiniz:
// Initialization
BertQuestionAnswererOptions options;
// Load the TFLite model.
auto base_options = options.mutable_base_options();
base_options->mutable_model_file()->set_file_name(model_file);
// Turn on GPU delegation.
auto tflite_settings = base_options->mutable_compute_settings()->mutable_tflite_settings();
tflite_settings->set_delegate(Delegate::GPU);
// (optional) Turn on automatical fallback to TFLite CPU path on delegation errors.
tflite_settings->mutable_fallback_settings()->set_allow_automatic_fallback_on_execution_error(true);
// Create QuestionAnswerer from options.
std::unique_ptr<QuestionAnswerer> answerer = BertQuestionAnswerer::CreateFromOptions(options).value();
// Run inference on GPU.
std::vector<QaAnswer> results = answerer->Answer(context_of_question, question_to_ask);
Burada daha gelişmiş hızlandırıcı ayarlarını keşfedin.
Coral Edge TPU'nun Python'da örnek kullanımı
Görevin temel seçeneklerinde Coral Edge TPU'yu yapılandırın. Örneğin, Coral Edge TPU'yu ImageClassifier
aşağıdaki gibi ayarlayabilirsiniz:
# Imports
from tflite_support.task import vision
from tflite_support.task import core
# Initialize options and turn on Coral Edge TPU delegation.
base_options = core.BaseOptions(file_name=model_path, use_coral=True)
options = vision.ImageClassifierOptions(base_options=base_options)
# Create ImageClassifier from options.
classifier = vision.ImageClassifier.create_from_options(options)
# Run inference on Coral Edge TPU.
image = vision.TensorImage.create_from_file(image_path)
classification_result = classifier.classify(image)
Coral Edge TPU'nun C++'da örnek kullanımı
1. Adım. Bazel oluşturma hedefinizdeki Coral Edge TPU temsilci eklentisine bağlı olarak, örneğin:
deps = [
"//tensorflow_lite_support/acceleration/configuration:edgetpu_coral_plugin", # for Coral Edge TPU
]
Adım 2. Görev seçeneklerinde Coral Edge TPU'yu yapılandırın. Örneğin, Coral Edge TPU'yu ImageClassifier
aşağıdaki gibi ayarlayabilirsiniz:
// Initialization
ImageClassifierOptions options;
// Load the TFLite model.
options.mutable_base_options()->mutable_model_file()->set_file_name(model_file);
// Turn on Coral Edge TPU delegation.
options.mutable_base_options()->mutable_compute_settings()->mutable_tflite_settings()->set_delegate(Delegate::EDGETPU_CORAL);
// Create ImageClassifier from options.
std::unique_ptr<ImageClassifier> image_classifier = ImageClassifier::CreateFromOptions(options).value();
// Run inference on Coral Edge TPU.
const ClassificationResult result = image_classifier->Classify(*frame_buffer).value();
Adım 3. libusb-1.0-0-dev
paketini aşağıdaki gibi kurun. Zaten yüklüyse, bir sonraki adıma geçin.
# On the Linux
sudo apt-get install libusb-1.0-0-dev
# On the macOS
port install libusb
# or
brew install libusb
Adım 4. Bazel komutunuzda aşağıdaki yapılandırmalarla derleyin:
# On the Linux
--define darwinn_portable=1 --linkopt=-lusb-1.0
# On the macOS, add '--linkopt=-lusb-1.0 --linkopt=-L/opt/local/lib/' if you are
# using MacPorts or '--linkopt=-lusb-1.0 --linkopt=-L/opt/homebrew/lib' if you
# are using Homebrew.
--define darwinn_portable=1 --linkopt=-L/opt/local/lib/ --linkopt=-lusb-1.0
# Windows is not supported yet.
Görev Kitaplığı CLI demo aracını Coral Edge TPU cihazlarınızla deneyin. Önceden eğitilmiş Edge TPU modelleri ve gelişmiş Edge TPU ayarları hakkında daha fazlasını keşfedin.
C++'da Core ML Delegate'in örnek kullanımı
Eksiksiz bir örnek Image Classifier Core ML Delegate Test adresinde bulunabilir.
Adım 1. Bazel oluşturma hedefinizdeki Core ML temsilci eklentisine bağlı olarak, örneğin:
deps = [
"//tensorflow_lite_support/acceleration/configuration:coreml_plugin", # for Core ML Delegate
]
2. Adım. Görev seçeneklerinde Core ML Delegesini yapılandırın. Örneğin, Core ML Delegate'i ImageClassifier
aşağıdaki gibi ayarlayabilirsiniz:
// Initialization
ImageClassifierOptions options;
// Load the TFLite model.
options.mutable_base_options()->mutable_model_file()->set_file_name(model_file);
// Turn on Core ML delegation.
options.mutable_base_options()->mutable_compute_settings()->mutable_tflite_settings()->set_delegate(::tflite::proto::Delegate::CORE_ML);
// Set DEVICES_ALL to enable Core ML delegation on any device (in contrast to
// DEVICES_WITH_NEURAL_ENGINE which creates Core ML delegate only on devices
// with Apple Neural Engine).
options.mutable_base_options()->mutable_compute_settings()->mutable_tflite_settings()->mutable_coreml_settings()->set_enabled_devices(::tflite::proto::CoreMLSettings::DEVICES_ALL);
// Create ImageClassifier from options.
std::unique_ptr<ImageClassifier> image_classifier = ImageClassifier::CreateFromOptions(options).value();
// Run inference on Core ML.
const ClassificationResult result = image_classifier->Classify(*frame_buffer).value();