TensorFlow Lite Görev Kitaplığı

TensorFlow Lite Görev Kitaplığı, uygulama geliştiricilerin TFLite ile makine öğrenimi deneyimleri oluşturmaları için bir dizi güçlü ve kullanımı kolay göreve özgü kitaplık içerir. Görüntü sınıflandırması, soru ve cevap gibi popüler makine öğrenimi görevleri için optimize edilmiş hazır model arayüzleri sağlar. Model arayüzleri, en iyi performans ve kullanılabilirliği elde etmek için her görev için özel olarak tasarlanmıştır. Görev Kitaplığı, çapraz platformda çalışır ve Java, C ++ ve Swift üzerinde desteklenir.

Görev Kitaplığından ne beklenir

  • Makine öğrenimi uzmanı olmayanlar tarafından kullanılabilen temiz ve iyi tanımlanmış API'ler
    Yalnızca 5 satır kod içinde çıkarım yapılabilir. Mobil cihazlarda TFLite ile kolayca makine öğrenimi geliştirmenize yardımcı olmak için Görev kitaplığındaki güçlü ve kullanımı kolay API'leri yapı taşları olarak kullanın.

  • Karmaşık ama ortak veri işleme
    Verileriniz ile modelin gerektirdiği veri formatı arasında dönüştürme yapmak için ortak vizyonu ve doğal dil işleme mantığını destekler. Eğitim ve çıkarım için aynı, paylaşılabilir işlem 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 alanı sağlamaya devam ettikçe listenin büyümesi bekleniyor.

Görev Kitaplığını Temsilcilerle Çalıştırın

Temsilciler , GPU ve Coral Edge TPU gibi cihaz üzerindeki 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 ve güç verimliliği açısından büyük faydalar sağlar. Örneğin, GPU'lar mobil cihazlarda gecikmede 5 kata kadar hız artışı sağlayabilir ve Coral Edge TPU'lar, masaüstü CPU'lardan 10 kat daha hızlı çıkarım sağlayabilir.

Görev Kitaplığı, temsilcileri 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 C ++ API'sinde desteklenmektedir:

İOS için Core ML temsilcisi ve Task Java / Swift / Web API'deki hızlandırma destekleri yakında geliyor.

Android'de GPU'nun örnek kullanımı

Adım 1. Bazel oluşturma hedefinizdeki GPU delege eklentisine bağlı olun, ö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, içinde GPU ayarlayabilirsiniz BertQuestionAnswerer şöyle:

// 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ı buradan keşfedin.

Coral Edge TPU'nun örnek kullanımı

Adım 1. Bazel oluşturma hedefinizdeki Coral Edge TPU delege eklentisine güvenin, ö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, ImageClassifier Coral Edge ImageClassifier aşağıdaki gibi kurabilirsiniz:

// 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 kuruluysa, 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 konfigürasyonlarla 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.

Coral Edge TPU cihazlarınızla Görev Kitaplığı CLI demo aracını deneyin. Önceden eğitilmiş Edge TPU modelleri ve gelişmiş Edge TPU ayarları hakkında daha fazlasını keşfedin.