Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Riduci le dimensioni binarie di TensorFlow Lite

Panoramica

Quando si distribuiscono modelli per applicazioni di apprendimento automatico su dispositivo (ODML), è importante essere consapevoli della memoria limitata disponibile sui dispositivi mobili. Le dimensioni binarie del modello sono strettamente correlate al numero di operazioni utilizzate nel modello. TensorFlow Lite consente di ridurre le dimensioni binarie del modello utilizzando build selettive. Le compilazioni selettive saltano le operazioni inutilizzate nel set di modelli e producono una libreria compatta con solo il runtime e i kernel operativi necessari per l'esecuzione del modello sul dispositivo mobile.

La compilazione selettiva si applica alle seguenti tre librerie di operazioni.

  1. Libreria di operazioni incorporata in TensorFlow Lite
  2. Operazioni personalizzate di TensorFlow Lite
  3. Seleziona la libreria delle operazioni di TensorFlow

La tabella seguente mostra l'impatto delle build selettive per alcuni casi d'uso comuni:

Nome del modello Dominio Architettura di destinazione Dimensioni file AAR
Mobilenet_1.0_224 (float) Classificazione delle immagini armeabi-V7A tensorflow-lite.aar (296.635 byte)
arm64-V8A tensorflow-lite.aar (382,892 byte)
SPEZIA Estrazione della tonalità del suono armeabi-V7A tensorflow-lite.aar (375,813 byte)
tensorflow-lite-select-tf-ops.aar (1.676.380 byte)
arm64-V8A tensorflow-lite.aar (421,826 byte)
tensorflow-lite-select-tf-ops.aar (2.298.630 byte)
I3D-cinetica-400 Classificazione video armeabi-V7A tensorflow-lite.aar (240.085 byte)
tensorflow-lite-select-tf-ops.aar (1,708,597 byte)
arm64-V8A tensorflow-lite.aar (273,713 byte)
tensorflow-lite-select-tf-ops.aar (2.339.697 byte)

Problemi noti / limitazioni

  1. La build selettiva per l'API C e la versione iOS non è attualmente supportata.

Crea in modo selettivo TensorFlow Lite con Bazel

Questa sezione presuppone che tu abbia scaricato i codici sorgente di TensorFlow e configurato l'ambiente di sviluppo locale su Bazel.

Crea file AAR per il progetto Android

È possibile creare le AAR TensorFlow Lite personalizzate fornendo i percorsi dei file del modello come segue.

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

Il comando precedente genererà il file AAR bazel-bin/tmp/tensorflow-lite.aar per le operazioni integrate e personalizzate di TensorFlow Lite; e, facoltativamente, genera il file bazel-bin/tmp/tensorflow-lite-select-tf-ops.aar se i tuoi modelli contengono Select TensorFlow ops. Si noti che questo crea un AAR "grasso" con diverse architetture; se non ti servono tutti, utilizza il sottoinsieme appropriato per il tuo ambiente di distribuzione.

Utilizzo avanzato: crea con operazioni personalizzate

Se hai sviluppato modelli Tensorflow Lite con operazioni personalizzate, puoi crearli aggiungendo i seguenti flag al comando 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

Il flag tflite_custom_ops_srcs contiene i file sorgente delle operazioni personalizzate e il flag tflite_custom_ops_deps contiene le dipendenze per creare quei file sorgente. Tieni presente che queste dipendenze devono esistere nel repository TensorFlow.

Crea in modo selettivo TensorFlow Lite con Docker

Questa sezione presuppone che sia stato installato Docker sul computer locale e che sia stato creato il file Docker di TensorFlow Lite .

Crea file AAR per il progetto Android

Scarica lo script per la creazione con Docker eseguendo:

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

Quindi, puoi creare l'AAR TensorFlow Lite personalizzato fornendo i percorsi dei file del modello come segue.

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

Il flag del checkpoint è un commit, un ramo o un tag del repository TensorFlow di cui si desidera eseguire il checkout prima di creare le librerie. Il comando precedente genererà il file AAR tensorflow-lite.aar per operazioni integrate e personalizzate di TensorFlow Lite e, facoltativamente, il file AAR tensorflow-lite-select-tf-ops.aar per le operazioni TensorFlow selezionate nella directory corrente.

Aggiungi file AAR al progetto

Aggiungi file AAR importando direttamente l'AAR nel tuo progetto o pubblicando l'AAR personalizzato nel tuo repository Maven locale . Nota che devi aggiungere i file AAR anche per tensorflow-lite-select-tf-ops.aar se lo generi.