TensorFlow Lite Görev Kitaplığı

TensorFlow Lite Görev Kitaplığı'nda, güçlü ve kullanımı kolay bir dizi uygulama geliştiricilerin TFLite ile makine öğrenimi deneyimleri oluşturmaları için göreve özgü kitaplıklar. Popüler makine öğrenimi için optimize edilmiş kullanıma hazır model arayüzleri sunar. ve benzeri görevlerin yer aldığı yeni bir model arayüzler, her görev için özel olarak tasarlanmıştır. Böylece, performans ve kullanılabilirlik. Görev Kitaplığı farklı platformlarda çalışır ve şu cihazlarda desteklenir: Java, C++ ve Swift.

Görev Kitaplığı'ndan neler beklenebilir?

  • ML uzmanları olmayanların kullanabileceği net ve iyi tanımlanmış API'ler
    Çıkarım yalnızca 5 kod satırı içinde yapılabilir. Güçlü ve etkili Görev kitaplığındaki kullanımı kolay API'ler, yapı taşları olarak size yardımcı olur. mobil cihazlarda makine öğrenimi geliştirmek için TFLite ile birlikte çalıştım.

  • Karmaşık ancak yaygın veri işleme
    Dönüşüm sağlamak için ortak vizyonu ve doğal dil işleme mantığını destekler ve modelin gerekli kıldığı veri biçimi arasında nasıl bir denge olduğuna dikkat edin. Şunu sağlar: eğitim ve çıkarım için aynı, paylaşılabilir işleme mantığına sahiptir.

  • Yüksek performans artışı
    Veri işleme, en fazla birkaç milisaniye sürer. Bu da hızlı çıkarım deneyimi sunar.

  • Genişletilebilirlik ve özelleştirme
    Görev Kitaplığı altyapısının sağladığı tüm avantajlardan kendi Android/iOS çıkarım API'lerinizi kolayca derleyebilirsiniz.

Desteklenen görevler

Desteklenen görev türlerinin listesi aşağıda verilmiştir. Listenin kullanım alanlarını genişletmeye devam ediyoruz.

Temsilcilerle Görev Kitaplığı'nı çalıştırma

Yetki verilmiş olanlar, Google Analytics 4'teki TensorFlow Lite gibi cihaz üzerinde hızlandırıcılardan yararlanarak GPU ve Mercan Edge TPU. Kullanılıyor nöral ağ işlemleri için entegre etmek, gecikme açısından ve güç verimliliği. Örneğin, GPU'lar 5 kata kadar hızlanma mobil cihazlarda gecikme süresi ve Coral Edge TPU'lar çıkarımı 10 kat daha hızlı hale getirir.

Görev Kitaplığı kolay yapılandırma ve kurulum için yedek seçenekler sağlar ve yetki verilmiş kullanıcılarınızı kullanın. Task API'de artık aşağıdaki hızlandırıcılar desteklenmektedir:

Task Swift / Web API'de hızlandırma desteği yakında sunulacak.

Java'da Android'de GPU kullanımına örnek

1. Adım: GPU yetki verilmiş eklenti kitaplığını modülünüzün build.gradle öğesine ekleyin dosya:

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: Görev seçeneklerinde GPU yetkilendirmesini şununla yapılandır: BaseOptions bölümüne gidin. Örneğin, ObjectDetector ürününde GPU'yu aşağıdaki şekilde 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++'ta Android'de GPU kullanımına örnek

1. Adım: Bazel derleme hedefinizdeki GPU yetki verme eklentisine bağlıdır. Örneğin:

deps = [
  "//tensorflow_lite_support/acceleration/configuration:gpu_plugin", # for GPU
]

2. adım: Görev seçeneklerinde GPU yetkilendirmesini yapılandırın. Örneğin, yıllık bazda BertQuestionAnswerer içindeki GPU'lar aşağıdaki gibidir:

// 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);

Daha gelişmiş hızlandırıcı ayarlarını keşfedin burada bulabilirsiniz.

Python'da Coral Edge TPU kullanımı örneği

Görevin temel seçeneklerinde Coral Edge TPU'yu yapılandırın. Örneğin, şunları yapabilirsiniz: ImageClassifier içinde Coral Edge TPU'yu şu şekilde kurun:

# 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)

C++'ta Coral Edge TPU kullanımı örneği

1. Adım: Bazel derleme hedefinizde Coral Edge TPU yetkili eklentisine bağlı olun. Örneğin:

deps = [
  "//tensorflow_lite_support/acceleration/configuration:edgetpu_coral_plugin", # for Coral Edge TPU
]

2. adım: Görev seçeneklerinde Coral Edge TPU'yu yapılandırın. Örneğin, Yeşil Ofis projenizde Coral Edge TPU'yu ImageClassifier içinde aşağıdaki gibi kurun:

// 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();

3. Adım: libusb-1.0-0-dev paketini aşağıdaki gibi yükleyin. Zaten yüklendiyse 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

4. Adım. 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ığı KSA demosunu deneyin Araç Coral Edge TPU cihazlarınızla da kullanabilirsiniz. Önceden eğitilmiş Edge TPU'da daha fazlasını keşfedin modeller ve gelişmiş Edge TPU Ayarlar'da bulabilirsiniz.

C++'ta Core ML Temsilcisi için örnek kullanım

Eksiksiz bir örnek için Image Classifier Core ML Delegate'i ziyaret edin. Test edin.

1. Adım: Bazel derleme hedefinizdeki Core ML delege eklentisine güvenin. Örneğin: yön:

deps = [
  "//tensorflow_lite_support/acceleration/configuration:coreml_plugin", # for Core ML Delegate
]

2. adım: Görev seçeneklerinde Core ML Yetkisi'ni yapılandırın. Örneğin, Yeşil Ofis projenizde ImageClassifier ürününde Core ML Yetkisi'ni aşağıdaki şekilde ekleyebilirsiniz:

// 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();