Cette page a été traduite par l'API Cloud Translation.
Switch to English

Réduire la taille binaire de TensorFlow Lite

Aperçu

Lors du déploiement de modèles pour des applications ODML (Machine Learning) sur appareil, il est important de garder à l'esprit la mémoire limitée disponible sur les appareils mobiles. Les tailles binaires du modèle sont étroitement corrélées au nombre d'opérations utilisées dans le modèle. TensorFlow Lite vous permet de réduire les tailles binaires du modèle en utilisant des builds sélectifs. Les builds sélectifs ignorent les opérations inutilisées dans votre ensemble de modèles et produisent une bibliothèque compacte avec uniquement le moteur d'exécution et les noyaux opérationnels requis pour que le modèle s'exécute sur votre appareil mobile.

La construction sélective s'applique aux trois bibliothèques d'opérations suivantes.

  1. Bibliothèque d'opérations intégrée TensorFlow Lite
  2. Opérations personnalisées TensorFlow Lite
  3. Sélectionnez la bibliothèque d'opérations TensorFlow

Le tableau ci-dessous montre l'impact des builds sélectifs pour certains cas d'utilisation courants:

Nom du modèle Domaine Architecture cible Taille (s) de fichier AAR
Mobilenet_1.0_224 (flottant) Classification des images armeabi-v7a tensorflow-lite.aar (296 635 octets)
arm64-v8a tensorflow-lite.aar (382 892 octets)
PIMENTER Extraction de la hauteur sonore armeabi-v7a tensorflow-lite.aar (375 813 octets)
tensorflow-lite-select-tf-ops.aar (1 676 380 octets)
arm64-v8a tensorflow-lite.aar (421 826 octets)
tensorflow-lite-select-tf-ops.aar (2 298 630 octets)
i3d-cinetics-400 Classification vidéo armeabi-v7a tensorflow-lite.aar (240 085 octets)
tensorflow-lite-select-tf-ops.aar (1 708 597 octets)
arm64-v8a tensorflow-lite.aar (273 713 octets)
tensorflow-lite-select-tf-ops.aar (2339697 octets)

Problèmes / limitations connus

  1. La version Selective Build for C API et iOS n'est pas prise en charge actuellement.

Créez sélectivement TensorFlow Lite avec Bazel

Cette section suppose que vous avez téléchargé les codes sources de TensorFlow et configuré l'environnement de développement local sur Bazel.

Créer des fichiers AAR pour un projet Android

Vous pouvez créer les AAR TensorFlow Lite personnalisés en fournissant vos chemins de fichier de modèle comme suit.

sh tensorflow/lite/tools/build_aar.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a

La commande ci-dessus générera le fichier AAR bazel-bin/tmp/tensorflow-lite.aar pour les opérations intégrées et personnalisées de TensorFlow Lite; et éventuellement, génère le fichier aar bazel-bin/tmp/tensorflow-lite-select-tf-ops.aar si vos modèles contiennent des opérations Select TensorFlow. Notez que cela construit un AAR "gros" avec plusieurs architectures différentes; si vous n'avez pas besoin de tous, utilisez le sous-ensemble approprié à votre environnement de déploiement.

Utilisation avancée: construire avec des opérations personnalisées

Si vous avez développé des modèles Tensorflow Lite avec des opérations personnalisées, vous pouvez les créer en ajoutant les indicateurs suivants à la commande build:

sh tensorflow/lite/tools/build_aar.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a \
  --tflite_custom_ops_srcs=/e/f/file1.cc,/g/h/file2.h \
  --tflite_custom_ops_deps=dep1,dep2

L'indicateur tflite_custom_ops_srcs contient les fichiers source de vos opérations personnalisées et l'indicateur tflite_custom_ops_deps contient des dépendances pour construire ces fichiers source. Notez que ces dépendances doivent exister dans le référentiel TensorFlow.

Créez sélectivement TensorFlow Lite avec Docker

Cette section suppose que vous avez installé Docker sur votre ordinateur local et créé le fichier docker TensorFlow Lite .

Créer des fichiers AAR pour un projet Android

Téléchargez le script de création avec Docker en exécutant:

curl -o build_aar_with_docker.sh \
  https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/lite/tools/build_aar_with_docker.sh &&
chmod +x build_aar_with_docker.sh

Ensuite, vous pouvez créer le TensorFlow Lite AAR personnalisé en fournissant vos chemins de fichier de modèle comme suit.

sh build_aar_with_docker.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a \
  --checkpoint=master

L'indicateur de checkpoint est une validation, une branche ou une balise du référentiel TensorFlow que vous souhaitez extraire avant de créer les bibliothèques. La commande ci-dessus générera le fichier AAR tensorflow-lite.aar pour les opérations intégrées et personnalisées de TensorFlow Lite et éventuellement le fichier AAR tensorflow-lite-select-tf-ops.aar pour les opérations Select TensorFlow dans votre répertoire actuel.

Ajouter des fichiers AAR au projet

Ajoutez des fichiers AAR en important directement l'AAR dans votre projet ou en publiant l'AAR personnalisé dans votre référentiel Maven local . Notez que vous devez également ajouter les fichiers AAR pour tensorflow-lite-select-tf-ops.aar si vous le générez.