TensorFlow Lite — vad är det, viktigaste funktionerna och tillämpning

Författare: IT Sectr Publicerad: 2026-07-17 Lästid: 6 min

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 — lätt ramverk för on-device ML på mobila och inbyggda enheter.
  • Modeller konverteras till .tflite-format via TFLite-omvandlaren från TensorFlow SavedModel eller Keras.
  • Stöder INT8-, FP16-kvantisering och dynamisk kvantisering för att minska storleken.
  • Hårdvaruacceleration tillgänglig via GPU Delegate, NNAPI och Core ML Delegate.
  • TFLite fungerar på Android, iOS och Linux med API i Java, C++, Swift och Python.

Vad är TensorFlow Lite

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.

Arkitekturen för TensorFlow Lite

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.

Modelloptimering och kvantisering

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.

Jämförelse av TFLite-kvantiseringslägen

LägeVikttypAktiveringstypStorleksminskning
FP32 (utan kvantisering)FP32FP321x
FP16FP16FP322x
Dynamisk INT8INT8FP324x
Full INT8INT8INT84x

Hårdvaruacceleration på Android och iOS

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.

Distribution av modell med TFLite

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å användning av TFLite i kod

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:

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();

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:

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);

// Kör inferens på indata
interpreter.run(input, output);

// Frigör delegerade resurser efter inferens
gpuDelegate.close();
interpreter.close();

Vanliga frågor

Vad är skillnaden mellan TensorFlow och TensorFlow Lite?

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.

Vilka accelerationsdelegater finns tillgängliga i TFLite?

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.

Hur minskar man storleken på en .tflite-modell?

Använd kvantisering: FP16 minskar storleken 2x, INT8 — 4x. Även dynamisk kvantisering, viktbeskärning (weight pruning) och modelldestillation före konvertering finns tillgängligt.

Stöder TFLite träning på enheten?

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.

Vilka modelltyper stöder TFLite?

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

  • TensorFlow Lite — lätt ramverk för on-device ML på mobila och inbyggda enheter från Google.
  • Modeller konverteras till .tflite-format via TFLite Converter från TensorFlow SavedModel eller Keras.
  • INT8- och FP16-kvantisering minskar modellstorleken upp till 4x och accelererar inferens upp till 3x.
  • Hårdvaruacceleration tillgänglig via GPU-, NNAPI-, Core ML- och XNNPACK-delegater.
  • Körningsmiljön tar cirka 300 KB på Android och fungerar på över 4 miljarder enheter.
  • Task Library tillhandahåller färdiga lösningar för klassificering, detektering, segmentering och NLU.
  • För dynamisk uppdatering, använd Firebase ML eller Play Asset Delivery.

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.

Diskutera projektet

Läs också