TensorFlow Lite — cos’è, caratteristiche principali e applicazioni

Autore: IT Sectr Pubblicato: 2026-07-17 Tempo di lettura: 6 min

TensorFlow Lite è una versione leggera del framework TensorFlow, sviluppata da Google per eseguire modelli di machine learning su dispositivi mobili e embedded con risorse di calcolo limitate. A differenza di TensorFlow completo, TFLite utilizza un interprete specializzato e il formato .tflite, ottimizzato per inferenza rapida senza supporto all’addestramento. Secondo la TensorFlow Lite Guide, 2025, il framework funziona su Android, iOS e Linux ed è utilizzato su oltre 4 miliardi di dispositivi. TensorFlow Lite supporta quantizzazione, accelerazione hardware tramite delegati NNAPI, GPU e Core ML.

Punti chiave

  • TensorFlow Lite è un framework leggero per ML su dispositivo su mobili e embedded.
  • I modelli vengono convertiti nel formato .tflite tramite il convertitore TFLite da TensorFlow SavedModel o Keras.
  • Supporta quantizzazione INT8, FP16 e quantizzazione dinamica per ridurre le dimensioni.
  • L’accelerazione hardware è disponibile tramite GPU Delegate, NNAPI e Core ML Delegate.
  • TFLite funziona su Android, iOS e Linux con API in Java, C++, Swift e Python.

Cos’è TensorFlow Lite

TensorFlow Lite è un runtime specializzato per eseguire modelli di machine learning su dispositivi con risorse limitate. A differenza di TensorFlow completo, TFLite non supporta l’addestramento o la retropropagazione — solo inferenza. Ciò consente di mantenere la dimensione binaria della libreria al minimo: circa 300 KB per l’interprete di base su Android.

L’architettura di TFLite è costruita attorno al formato .tflite, basato su FlatBuffers. FlatBuffers fornisce accesso diretto ai dati senza fase di parsing, aspetto critico per i dispositivi mobili con memoria limitata. Un modello in formato .tflite contiene il grafo di calcolo, i pesi e i metadati in un unico file binario.

Secondo Google I/O 2024, TFLite è utilizzato in Google Photos, Gboard, YouTube e altre applicazioni Google con un pubblico combinato di oltre 4 miliardi di dispositivi. Il framework supporta tutte le principali architetture: CNN, RNN, LSTM, Transformer e operazioni personalizzate tramite delegati.

Architettura di TensorFlow Lite

Il runtime TFLite è composto da quattro componenti. TFLite Converter prende un modello da TensorFlow (SavedModel, Keras, ConcreteFunction) e lo converte nel formato .tflite con ottimizzazione facoltativa. TFLite Interpreter carica il file .tflite ed esegue l’inferenza, gestendo tensori e memoria.

I delegati sono componenti che trasferiscono l’esecuzione delle operazioni su hardware specializzato. GPU Delegate utilizza OpenGL ES e Metal, NNAPI Delegate utilizza l’API Android Neural Networks, Core ML Delegate utilizza Apple Core ML. XNNPACK Delegate ottimizza l’esecuzione su CPU ARM. Ogni delegato supporta un insieme specifico di operatori.

Il quarto componente è la Task Library, che fornisce API di alto livello per attività tipiche: classificazione di immagini, rilevamento oggetti, segmentazione, NLU. La Task Library opera sopra l’Interprete e nasconde i dettagli della gestione dei tensori.

Ottimizzazione dei modelli e quantizzazione

TFLite supporta tre livelli di quantizzazione. La quantizzazione intera completa INT8 converte pesi e attivazioni da FP32 a interi a 8 bit. La dimensione del modello viene ridotta di 4x e la velocità di inferenza su dispositivi con supporto INT8 aumenta fino a 3x. La quantizzazione FP16 dimezza la dimensione con una perdita di precisione minima.

La quantizzazione dinamica mantiene i pesi in INT8 ma esegue i calcoli in FP32. Questa modalità è adatta per modelli sensibili alla precisione e offre una riduzione delle dimensioni fino a 4x mantenendo la qualità. Secondo i Google ML Performance Benchmarks, la quantizzazione dinamica è raccomandata per i modelli NLP.

Confronto delle modalità di quantizzazione TFLite

ModalitàTipo di pesiTipo di attivazioniRiduzione dimensione
FP32 (senza quantizzazione)FP32FP321x
FP16FP16FP322x
INT8 dinamicoINT8FP324x
INT8 completoINT8INT84x

Accelerazione hardware su Android e iOS

Su Android, il principale meccanismo di accelerazione è il delegato NNAPI, che trasferisce l’esecuzione delle operazioni a NPU, DSP o GPU tramite l’API Android Neural Networks. NNAPI è disponibile su dispositivi con Android 8.1+ e supporta calcoli INT8 e FP16. Il delegato GPU per Android utilizza OpenGL ES 3.1+ e Vulkan.

Su iOS, l’accelerazione viene fornita tramite il delegato Core ML, che traduce le operazioni TFLite nel formato Core ML e le esegue su Apple Neural Engine. Secondo i benchmark Apple ML, l’utilizzo del delegato Core ML accelera l’inferenza su iPhone 15 Pro fino a 4x rispetto alla CPU. Il delegato GPU per iOS utilizza Metal Performance Shaders.

XNNPACK Delegate è una soluzione multipiattaforma per CPU ARM, ottimizzata per processori mobili. XNNPACK supporta operazioni FP32, FP16 e INT8 e non richiede hardware speciale. È raccomandato come delegato di base per tutti i dispositivi.

Distribuzione di modelli con TFLite

Il processo di distribuzione comprende tre fasi. Prima — conversione del modello in .tflite tramite TFLite Converter. Seconda — inclusione del file .tflite nelle risorse dell’applicazione. Per Android, il file viene inserito in assets; per iOS, nel bundle dell’app tramite Xcode. Terza — inizializzazione dell’Interprete ed esecuzione dell’inferenza.

Per aggiornamenti dinamici dei modelli, Google raccomanda l’utilizzo di Firebase ML Model Downloading o un meccanismo di download personalizzato dal cloud. Il file .tflite aggiornato viene salvato nell’archivio locale e caricato nell’Interprete all’avvio successivo.

Durante la distribuzione, è importante considerare la dimensione del file .tflite. Google Play limita la dimensione dell’APK a 200 MB. Per modelli superiori a 50 MB, si consiglia di utilizzare Android App Bundle o scaricare il modello separatamente tramite Play Asset Delivery.

Esempi di utilizzo di TFLite nel codice

Esempio di caricamento ed esecuzione di un modello su Android con API Java. Utilizzare Interpreter.create() per caricare .tflite da assets e run() per l’inferenza. I dati di input e output vengono passati come array multidimensionali o ByteBuffer:

java
import org.tensorflow.lite.Interpreter;
import java.nio.MappedByteBuffer;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;

MappedByteBuffer model = new FileInputStream(
    getAssets().openFd("model.tflite")
).getChannel().map(
    FileChannel.MapMode.READ_ONLY, 0, fc.size()
);

Interpreter interpreter = new Interpreter.create(model);
float[][] input = new float[1][224 * 224 * 3];
float[][] output = new float[1][1000];
interpreter.run(input, output);
interpreter.close();

Esempio di utilizzo del delegato GPU su Android per l’accelerazione hardware. Aggiungere la dipendenza com.android.support:tensorflow-lite-gpu e specificare il delegato durante la creazione dell’Interprete:

java
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.gpu.GpuDelegate;

GpuDelegate gpuDelegate = new GpuDelegate.create();
Interpreter.Options options = new Interpreter.Options().addDelegate(gpuDelegate);
Interpreter interpreter = new Interpreter.create(model, options);

// Run inference on the input data
interpreter.run(input, output);

// Release delegate resources after inference
gpuDelegate.close();
interpreter.close();

Domande frequenti

Qual è la differenza tra TensorFlow e TensorFlow Lite?

TensorFlow è un framework completo per addestramento e inferenza. TensorFlow Lite è solo per inferenza su dispositivi mobili. TFLite utilizza il formato .tflite e non supporta la retropropagazione.

Quali delegati di accelerazione sono disponibili in TFLite?

I delegati supportati includono GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) e XNNPACK Delegate (ARM CPU). Ogni delegato è ottimizzato per un tipo specifico di hardware.

Come ridurre la dimensione di un modello .tflite?

Utilizzare la quantizzazione: FP16 riduce la dimensione di 2x, INT8 di 4x. Sono disponibili anche quantizzazione dinamica, potatura dei pesi e distillazione del modello prima della conversione.

TFLite supporta l’addestramento sul dispositivo?

Sì, tramite TFLite Model Maker e l’API di addestramento sul dispositivo (sperimentale). Sono supportati il fine-tuning e la personalizzazione dei modelli direttamente sul dispositivo dell’utente.

Quali tipi di modelli supporta TFLite?

TFLite supporta CNN, RNN, LSTM, Transformer, architetture mobili (MobileNet, EfficientNet, YOLO, BERT) e operazioni personalizzate. Il limite è dato dagli operatori disponibili nel delegato di destinazione.

Riepilogo

  • TensorFlow Lite è un framework leggero per ML su dispositivo su mobili e embedded di Google.
  • I modelli vengono convertiti nel formato .tflite tramite TFLite Converter da TensorFlow SavedModel o Keras.
  • La quantizzazione INT8 e FP16 riduce la dimensione del modello fino a 4x e accelera l’inferenza fino a 3x.
  • L’accelerazione hardware è disponibile tramite delegati GPU, NNAPI, Core ML e XNNPACK.
  • Il runtime occupa circa 300 KB su Android e funziona su oltre 4 miliardi di dispositivi.
  • La Task Library fornisce soluzioni pronte per classificazione, rilevamento, segmentazione e NLU.
  • Per aggiornamenti dinamici, utilizzare Firebase ML o Play Asset Delivery.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche