TensorFlow Lite ist eine leichtgewichtige Version des TensorFlow-Frameworks, die von Google entwickelt wurde, um Machine-Learning-Modelle auf mobilen und eingebetteten Geräten mit begrenzten Rechenressourcen auszuführen. Im Gegensatz zu vollständigem TensorFlow verwendet TFLite einen spezialisierten Interpreter und das .tflite-Format, das für schnelle Inferenz ohne Trainingsunterstützung optimiert ist. Laut TensorFlow Lite Guide, 2025 läuft das Framework auf Android, iOS und Linux und wird auf über 4 Milliarden Geräten eingesetzt. TensorFlow Lite unterstützt Quantisierung, Hardwarebeschleunigung über NNAPI-, GPU- und Core ML-Delegaten.
Wichtige Punkte
TensorFlow Lite ist eine spezialisierte Laufzeitumgebung zum Ausführen von Machine-Learning-Modellen auf Geräten mit begrenzten Ressourcen. Im Gegensatz zu vollständigem TensorFlow unterstützt TFLite kein Training oder Rückwärtspropagation — nur Inferenz. Dadurch kann die Binärgröße der Bibliothek minimal gehalten werden: etwa 300 KB für den Basisinterpreter auf Android.
Die TFLite-Architektur ist um das .tflite-Format herum aufgebaut, das auf FlatBuffers basiert. FlatBuffers ermöglicht direkten Zugriff auf Daten ohne Parsing-Schritt, was für mobile Geräte mit begrenztem Speicher entscheidend ist. Ein Modell im .tflite-Format enthält den Berechnungsgraphen, Gewichte und Metadaten in einer einzigen Binärdatei.
Laut Google I/O 2024 wird TFLite in Google Photos, Gboard, YouTube und anderen Google-Anwendungen mit einer kombinierten Nutzerbasis von über 4 Milliarden Geräten eingesetzt. Das Framework unterstützt alle wichtigen Architekturen: CNN, RNN, LSTM, Transformer und benutzerdefinierte Operationen über Delegaten.
Die TFLite-Laufzeit besteht aus vier Komponenten. Der TFLite Converter nimmt ein Modell aus TensorFlow (SavedModel, Keras, ConcreteFunction) und konvertiert es mit optionaler Optimierung in das .tflite-Format. Der TFLite Interpreter lädt die .tflite-Datei und führt die Inferenz durch, wobei er Tensoren und Speicher verwaltet.
Delegaten sind Komponenten, die die Ausführung von Operationen auf spezialisierte Hardware verlagern. GPU Delegate verwendet OpenGL ES und Metal, NNAPI Delegate verwendet die Android Neural Networks API, Core ML Delegate verwendet Apple Core ML. XNNPACK Delegate optimiert die Ausführung auf ARM-CPUs. Jeder Delegat unterstützt einen bestimmten Satz von Operatoren.
Die vierte Komponente ist die Task Library, die High-Level-APIs für typische Aufgaben bereitstellt: Bildklassifikation, Objekterkennung, Segmentierung, NLU. Die Task Library arbeitet über dem Interpreter und verbirgt die Details der Tensorverwaltung.
TFLite unterstützt drei Stufen der Quantisierung. Die vollständige Ganzzahl-INT8-Quantisierung konvertiert Gewichte und Aktivierungen von FP32 in 8-Bit-Ganzzahlen. Die Modellgröße wird um das 4-fache reduziert und die Inferenzgeschwindigkeit auf Geräten mit INT8-Unterstützung steigt um bis zum 3-fachen. Die FP16-Quantisierung halbiert die Größe bei minimalem Genauigkeitsverlust.
Die dynamische Quantisierung behält Gewichte in INT8, führt Berechnungen jedoch in FP32 durch. Dieser Modus eignet sich für Modelle, die empfindlich auf Genauigkeit reagieren, und ermöglicht eine Größenreduzierung um bis zum 4-fachen bei gleichbleibender Qualität. Laut Google ML Performance Benchmarks wird die dynamische Quantisierung für NLP-Modelle empfohlen.
| Modus | Gewichtstyp | Aktivierungstyp | Größenreduzierung |
|---|---|---|---|
| FP32 (ohne Quantisierung) | FP32 | FP32 | 1x |
| FP16 | FP16 | FP32 | 2x |
| Dynamisch INT8 | INT8 | FP32 | 4x |
| Vollständig INT8 | INT8 | INT8 | 4x |
Unter Android ist der Hauptbeschleunigungsmechanismus der NNAPI Delegate, der die Ausführung von Operationen über die Android Neural Networks API auf NPU, DSP oder GPU verlagert. NNAPI ist auf Geräten mit Android 8.1+ verfügbar und unterstützt INT8- und FP16-Berechnungen. Der GPU Delegate für Android verwendet OpenGL ES 3.1+ und Vulkan.
Unter iOS wird die Beschleunigung über den Core ML Delegate bereitgestellt, der TFLite-Operationen in das Core ML-Format übersetzt und auf der Apple Neural Engine ausführt. Laut Apple ML Benchmarking beschleunigt die Verwendung des Core ML Delegate die Inferenz auf dem iPhone 15 Pro um bis zum 4-fachen im Vergleich zur CPU. Der GPU Delegate für iOS verwendet Metal Performance Shaders.
XNNPACK Delegate ist eine plattformübergreifende Lösung für ARM-CPUs, optimiert für mobile Prozessoren. XNNPACK unterstützt FP32-, FP16- und INT8-Operationen und benötigt keine spezielle Hardware. Es wird als Basisdelegat für alle Geräte empfohlen.
Der Bereitstellungsprozess umfasst drei Schritte. Erstens — Konvertierung des Modells in .tflite über den TFLite Converter. Zweitens — Einbindung der .tflite-Datei in die Anwendungsressourcen. Für Android wird die Datei in assets abgelegt; für iOS im App-Bundle über Xcode. Drittens — Initialisierung des Interpreters und Durchführung der Inferenz.
Für dynamische Modellaktualisierungen empfiehlt Google die Verwendung von Firebase ML Model Downloading oder einem eigenen Cloud-Download-Mechanismus. Die aktualisierte .tflite-Datei wird im lokalen Speicher gespeichert und beim nächsten Start in den Interpreter geladen.
Bei der Bereitstellung ist die .tflite-Dateigröße zu berücksichtigen. Google Play begrenzt die APK-Größe auf 200 MB. Für Modelle größer als 50 MB wird empfohlen, Android App Bundle zu verwenden oder das Modell separat über Play Asset Delivery herunterzuladen.
Beispiel zum Laden und Ausführen eines Modells auf Android mit Java API. Verwenden Sie Interpreter.create() zum Laden von .tflite aus assets und run() für die Inferenz. Ein- und Ausgabedaten werden als mehrdimensionale Arrays oder ByteBuffer übergeben:
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();
Beispiel zur Verwendung des GPU Delegate auf Android für Hardwarebeschleunigung. Fügen Sie die Abhängigkeit com.android.support:tensorflow-lite-gpu hinzu und geben Sie den Delegaten beim Erstellen des Interpreters an:
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();
Häufig gestellte Fragen
TensorFlow ist ein vollständiges Framework für Training und Inferenz. TensorFlow Lite ist nur für die Inferenz auf mobilen Geräten. TFLite verwendet das .tflite-Format und unterstützt keine Rückwärtspropagation.
Zu den unterstützten Delegaten gehören GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) und XNNPACK Delegate (ARM CPU). Jeder Delegat ist für eine bestimmte Hardwareart optimiert.
Verwenden Sie Quantisierung: FP16 reduziert die Größe um das 2-fache, INT8 um das 4-fache. Dynamische Quantisierung, Gewichtsbeschneidung und Modelldestillation vor der Konvertierung sind ebenfalls verfügbar.
Ja, über TFLite Model Maker und die On-Device Training API (experimentell). Feinabstimmung und Personalisierung von Modellen direkt auf dem Gerät des Benutzers werden unterstützt.
TFLite unterstützt CNN, RNN, LSTM, Transformer, mobile Architekturen (MobileNet, EfficientNet, YOLO, BERT) und benutzerdefinierte Operationen. Die Einschränkung sind die verfügbaren Operatoren im Zieldelegaten.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch