TensorFlow Lite — är den lätta versionen av TensorFlow-ramverket, utvecklad av Google för att köra maskininlärningsmodeller på mobila och inbyggda enheter med begränsade beräkningsresurser. Till skillnad från fullständiga TensorFlow använder TFLite en specialiserad tolk och .tflite-formatet, optimerat för snabb inferens utan stöd för träning. Enligt TensorFlow Lite Guide, 2025 fungerar ramverket på Android, iOS och Linux och används på över 4 miljarder enheter. TensorFlow Lite stöder kvantisering, hårdvaruacceleration via NNAPI, GPU och Core ML-delegater.
Huvudpunkter
TensorFlow Lite — är en specialiserad körningsmiljö för att köra maskininlärningsmodeller på enheter med begränsade resurser. Till skillnad från fullständiga TensorFlow stöder TFLite inte träning och bakåtpropagering — endast inferens. Detta gör att bibliotekets binära storlek kan minimeras: cirka 300 KB för den grundläggande tolken på Android.
Arkitekturen för TFLite är byggd kring .tflite-formatet, baserat på FlatBuffers. FlatBuffers ger direkt åtkomst till data utan parsningssteg, vilket är kritiskt för mobila enheter med begränsat minne. En modell i .tflite-format innehåller beräkningsgrafen, vikter och metadata i en enda binär fil.
Enligt Google I/O 2024 används TFLite i Google Photos, Gboard, YouTube och andra Google-applikationer med en total publik på över 4 miljarder enheter. Ramverket stöder alla större arkitekturer: CNN, RNN, LSTM, Transformer och anpassade operationer via delegater.
TFLite-körningsmiljön består av fyra komponenter. TFLite Converter tar emot modellen från TensorFlow (SavedModel, Keras, ConcreteFunction) och omvandlar den till .tflite-format med valfri optimering. TFLite Interpreter laddar .tflite och utför inferens, med hantering av tensorer och minne.
Delegater — är komponenter som överför exekvering av operationer till specialiserad hårdvara. GPU Delegate använder OpenGL ES och Metal, NNAPI Delegate — Android Neural Networks API, Core ML Delegate — Apple Core ML. XNNPACK Delegate optimerar exekvering på ARM CPU. Varje delegat stöder en specifik uppsättning operatorer.
Den fjärde komponenten — Task Library, som tillhandahåller högnivå-API:er för typiska uppgifter: bildklassificering, objektdetektering, segmentering, NLU. Task Library fungerar ovanpå Interpreter och döljer detaljerna för tensorhantering.
TFLite stöder tre nivåer av kvantisering. Full heltalskvantisering INT8 omvandlar vikter och aktiveringar från FP32 till 8-bitars heltal. Modellstorleken minskar 4 gånger och inferenshastigheten på enheter med INT8-stöd ökar upp till 3x. FP16-kvantisering halverar storleken med minimal precisionsförlust.
Dynamisk kvantisering behåller vikter i INT8, men utför beräkningar i FP32. Detta läge är lämpligt för precisionskänsliga modeller och ger storleksminskning upp till 4x med bibehållen kvalitet. Enligt Google ML Performance Benchmarks rekommenderas dynamisk kvantisering för NLP-modeller.
| Läge | Vikttyp | Aktiveringstyp | Storleksminskning |
|---|---|---|---|
| FP32 (utan kvantisering) | FP32 | FP32 | 1x |
| FP16 | FP16 | FP32 | 2x |
| Dynamisk INT8 | INT8 | FP32 | 4x |
| Full INT8 | INT8 | INT8 | 4x |
På Android är den huvudsakliga accelerationsmekanismen NNAPI Delegate, som överför exekvering av operationer till NPU, DSP eller GPU via Android Neural Networks API. NNAPI är tillgängligt på enheter med Android 8.1+ och stöder INT8- och FP16-beräkningar. GPU Delegate för Android använder OpenGL ES 3.1+ och Vulkan.
På iOS tillhandahålls acceleration via Core ML Delegate, som översätter TFLite-operationer till Core ML-format och utför dem på Apple Neural Engine. Enligt Apple ML Benchmarking accelererar användning av Core ML Delegate inferens på iPhone 15 Pro upp till 4x jämfört med CPU. GPU Delegate för iOS använder Metal Performance Shaders.
XNNPACK Delegate — är en plattformsövergripande lösning för ARM CPU, optimerad för mobila processorer. XNNPACK stöder FP32-, FP16- och INT8-operationer och kräver ingen specialiserad hårdvara. Rekommenderas som basdelegat för alla enheter.
Distributionsprocessen omfattar tre steg. Första — konvertering av modellen till .tflite via TFLite Converter. Andra — inkludering av .tflite-filen i applikationsresurserna. För Android placeras filen i assets, för iOS — i applikationens bundle via Xcode. Tredje — initiering av Interpreter och utförande av inferens.
För dynamisk uppdatering av modeller rekommenderar Google att använda Firebase ML Model Downloading eller en egen nedladdningsmekanism från molnet. Den uppdaterade .tflite-filen sparas i lokal lagring och laddas i Interpreter vid nästa start.
Vid distribution är det viktigt att ta hänsyn till .tflite-filens storlek. Google Play begränsar APK-storleken till 200 MB. För modeller större än 50 MB rekommenderas att använda Android App Bundle eller ladda ner modellen separat via Play Asset Delivery.
Exempel på att ladda och köra en modell på Android med Java API. Använd Interpreter.create() för att ladda .tflite från assets och run() för inferens. Indata och utdata skickas som flerdimensionella arrayer eller ByteBuffer:
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();
Exempel på användning av GPU Delegate på Android för hårdvaruacceleration. Lägg till beroendet com.android.support:tensorflow-lite-gpu och ange delegaten när du skapar Interpreter:
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);
// Kör inferens på indata
interpreter.run(input, output);
// Frigör delegerade resurser efter inferens
gpuDelegate.close();
interpreter.close();
Vanliga frågor
TensorFlow — fullt ramverk för träning och inferens. TensorFlow Lite — endast för inferens på mobila enheter. TFLite använder .tflite-formatet och stöder inte bakåtpropagering.
GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) och XNNPACK Delegate (ARM CPU) stöds. Varje delegat är optimerad för en specifik typ av hårdvara.
Använd kvantisering: FP16 minskar storleken 2x, INT8 — 4x. Även dynamisk kvantisering, viktbeskärning (weight pruning) och modelldestillation före konvertering finns tillgängligt.
Ja, via TFLite Model Maker och API för träning på enheten (experimentellt). Finjustering (fine-tuning) och personalisering av modeller direkt på användarens enhet stöds.
TFLite stöder CNN, RNN, LSTM, Transformer, mobila arkitekturer (MobileNet, EfficientNet, YOLO, BERT) och anpassade operationer. Begränsning — tillgängliga operatorer i måldelegaten.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också