La journée communautaire ML est le 9 novembre ! Rejoignez - nous pour les mises à jour de tensorflow, JAX et plus En savoir plus

Bibliothèque de tâches TensorFlow Lite

La bibliothèque de tâches TensorFlow Lite contient un ensemble de bibliothèques spécifiques aux tâches puissantes et faciles à utiliser permettant aux développeurs d'applications de créer des expériences de ML avec TFLite. Il fournit des interfaces de modèle prêtes à l'emploi optimisées pour les tâches d'apprentissage automatique courantes, telles que la classification d'images, les questions et réponses, etc. Les interfaces de modèle sont spécifiquement conçues pour chaque tâche afin d'obtenir les meilleures performances et la meilleure convivialité. La bibliothèque de tâches fonctionne sur plusieurs plates-formes et est prise en charge sur Java, C ++ et Swift.

À quoi s'attendre de la bibliothèque de tâches

  • API propres et bien définies utilisables par des non-experts en ML
    L'inférence peut être effectuée en seulement 5 lignes de code. Utilisez les API puissantes et faciles à utiliser de la bibliothèque de tâches comme éléments de base pour vous aider à développer facilement le ML avec TFLite sur les appareils mobiles.

  • Traitement de données complexe mais courant
    Prend en charge la vision commune et la logique de traitement du langage naturel pour effectuer la conversion entre vos données et le format de données requis par le modèle. Fournit la même logique de traitement partageable pour la formation et l'inférence.

  • Gain haute performance
    Le traitement des données ne prendrait que quelques millisecondes, garantissant une expérience d'inférence rapide à l'aide de TensorFlow Lite.

  • Extensibilité et personnalisation
    Vous pouvez tirer parti de tous les avantages fournis par l'infrastructure de la bibliothèque de tâches et créer facilement vos propres API d'inférence Android / iOS.

Tâches prises en charge

Vous trouverez ci-dessous la liste des types de tâches pris en charge. La liste devrait s'allonger à mesure que nous continuons à activer de plus en plus de cas d'utilisation.

Exécuter la bibliothèque de tâches avec des délégués

Les délégués permettent l'accélération matérielle des modèles TensorFlow Lite en tirant parti des accélérateurs sur appareil tels que le GPU et Coral Edge TPU . Leur utilisation pour les opérations de réseau neuronal offre d'énormes avantages en termes de latence et d'efficacité énergétique. Par exemple, les GPU peuvent fournir une accélération jusqu'à 5x de la latence sur les appareils mobiles, et les TPU Coral Edge déduisent 10 fois plus rapidement que les processeurs de bureau.

La bibliothèque de tâches fournit des options de configuration et de secours simples pour vous permettre de configurer et d'utiliser des délégués. Les accélérateurs suivants sont désormais pris en charge dans l'API Task C ++:

Le délégué Core ML pour iOS et la prise en charge de l'accélération dans Task Java / Swift / Web API seront bientôt disponibles.

Exemple d'utilisation du GPU sur Android

Étape 1. Dépendez du plugin de délégué GPU dans votre cible de build bazel, tel que:

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

Les autres options de délégué incluent:

"//tensorflow_lite_support/acceleration/configuration:nnapi_plugin", # for NNAPI
"//tensorflow_lite_support/acceleration/configuration:hexagon_plugin", # for Hexagon

Étape 2. Configurez le délégué GPU dans les options de tâche. Par exemple, vous pouvez configurer le GPU dans BertQuestionAnswerer comme suit:

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

Découvrez des paramètres d'accélérateur plus avancés ici .

Exemple d'utilisation de Coral Edge TPU

Étape 1. Dépendez du plugin de délégué Coral Edge TPU dans votre cible de build bazel, tel que:

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

Étape 2. Configurez Coral Edge TPU dans les options de tâche. Par exemple, vous pouvez configurer Coral Edge TPU dans ImageClassifier comme suit:

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

Étape 3. Installez le paquet libusb-1.0-0-dev comme ci-dessous. S'il est déjà installé, passez à l'étape suivante.

# On the Linux
sudo apt-get install libusb-1.0-0-dev

# On the macOS
port install libusb
# or
brew install libusb

Étape 4. Compilez avec les configurations suivantes dans votre commande bazel:

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

Essayez l' outil de démonstration CLI de la bibliothèque de tâches avec vos appareils Coral Edge TPU. Découvrez plus en détail les modèles Edge TPU pré - entraînés et les paramètres Edge TPU avancés .