TensorFlow Lite es una versión ligera del framework TensorFlow, desarrollada por Google para ejecutar modelos de machine learning en dispositivos móviles y empotrados con recursos computacionales limitados. A diferencia de TensorFlow completo, TFLite utiliza un intérprete especializado y el formato .tflite, optimizado para inferencia rápida sin soporte de entrenamiento. Según la TensorFlow Lite Guide, 2025, el framework funciona en Android, iOS y Linux y se utiliza en más de 4 mil millones de dispositivos. TensorFlow Lite admite cuantización, aceleración por hardware a través de delegados NNAPI, GPU y Core ML.
Puntos clave
TensorFlow Lite es un runtime especializado para ejecutar modelos de machine learning en dispositivos con recursos limitados. A diferencia de TensorFlow completo, TFLite no admite entrenamiento ni retropropagación — solo inferencia. Esto permite mantener el tamaño binario de la biblioteca al mínimo: alrededor de 300 KB para el intérprete base en Android.
La arquitectura de TFLite se basa en el formato .tflite, fundamentado en FlatBuffers. FlatBuffers proporciona acceso directo a los datos sin etapa de análisis, lo cual es crítico para dispositivos móviles con memoria limitada. Un modelo en formato .tflite contiene el grafo de cálculo, los pesos y los metadatos en un único archivo binario.
Según Google I/O 2024, TFLite se utiliza en Google Photos, Gboard, YouTube y otras aplicaciones de Google con una audiencia combinada de más de 4 mil millones de dispositivos. El framework admite todas las arquitecturas principales: CNN, RNN, LSTM, Transformer y operaciones personalizadas mediante delegados.
El runtime de TFLite consta de cuatro componentes. TFLite Converter toma un modelo de TensorFlow (SavedModel, Keras, ConcreteFunction) y lo convierte al formato .tflite con optimización opcional. TFLite Interpreter carga el archivo .tflite y realiza la inferencia, gestionando tensores y memoria.
Los delegados son componentes que transfieren la ejecución de operaciones a hardware especializado. GPU Delegate utiliza OpenGL ES y Metal, NNAPI Delegate usa la API Android Neural Networks, Core ML Delegate utiliza Apple Core ML. XNNPACK Delegate optimiza la ejecución en CPU ARM. Cada delegado admite un conjunto específico de operadores.
El cuarto componente es la Task Library, que proporciona API de alto nivel para tareas típicas: clasificación de imágenes, detección de objetos, segmentación, NLU. La Task Library funciona sobre el Intérprete y oculta los detalles de la gestión de tensores.
TFLite admite tres niveles de cuantización. La cuantización entera completa INT8 convierte pesos y activaciones de FP32 a enteros de 8 bits. El tamaño del modelo se reduce 4x y la velocidad de inferencia en dispositivos con soporte INT8 aumenta hasta 3x. La cuantización FP16 reduce el tamaño a la mitad con una mínima pérdida de precisión.
La cuantización dinámica mantiene los pesos en INT8 pero realiza los cálculos en FP32. Este modo es adecuado para modelos sensibles a la precisión y ofrece una reducción de tamaño de hasta 4x manteniendo la calidad. Según Google ML Performance Benchmarks, la cuantización dinámica se recomienda para modelos NLP.
| Modo | Tipo de pesos | Tipo de activaciones | Reducción de tamaño |
|---|---|---|---|
| FP32 (sin cuantización) | FP32 | FP32 | 1x |
| FP16 | FP16 | FP32 | 2x |
| INT8 dinámico | INT8 | FP32 | 4x |
| INT8 completo | INT8 | INT8 | 4x |
En Android, el principal mecanismo de aceleración es NNAPI Delegate, que transfiere la ejecución de operaciones a NPU, DSP o GPU mediante la API Android Neural Networks. NNAPI está disponible en dispositivos con Android 8.1+ y admite cálculos INT8 y FP16. GPU Delegate para Android utiliza OpenGL ES 3.1+ y Vulkan.
En iOS, la aceleración se proporciona mediante Core ML Delegate, que traduce las operaciones de TFLite al formato Core ML y las ejecuta en Apple Neural Engine. Según Apple ML Benchmarking, el uso de Core ML Delegate acelera la inferencia en iPhone 15 Pro hasta 4x en comparación con la CPU. GPU Delegate para iOS utiliza Metal Performance Shaders.
XNNPACK Delegate es una solución multiplataforma para CPU ARM, optimizada para procesadores móviles. XNNPACK admite operaciones FP32, FP16 e INT8 y no requiere hardware especial. Se recomienda como delegado base para todos los dispositivos.
El proceso de despliegue incluye tres pasos. Primero — convertir el modelo a .tflite mediante TFLite Converter. Segundo — incluir el archivo .tflite en los recursos de la aplicación. Para Android, el archivo se coloca en assets; para iOS, en el bundle de la app mediante Xcode. Tercero — inicializar el Intérprete y realizar la inferencia.
Para actualizaciones dinámicas de modelos, Google recomienda usar Firebase ML Model Downloading o un mecanismo propio de descarga desde la nube. El archivo .tflite actualizado se guarda en el almacenamiento local y se carga en el Intérprete en el próximo inicio.
Al desplegar, es importante considerar el tamaño del archivo .tflite. Google Play limita el tamaño del APK a 200 MB. Para modelos mayores de 50 MB, se recomienda usar Android App Bundle o descargar el modelo por separado mediante Play Asset Delivery.
Ejemplo de carga y ejecución de un modelo en Android con API Java. Use Interpreter.create() para cargar .tflite desde assets y run() para la inferencia. Los datos de entrada y salida se pasan como arreglos multidimensionales o 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();
Ejemplo de uso de GPU Delegate en Android para aceleración por hardware. Agregue la dependencia com.android.support:tensorflow-lite-gpu y especifique el delegado al crear el Intérprete:
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();
Preguntas frecuentes
TensorFlow es un framework completo para entrenamiento e inferencia. TensorFlow Lite es solo para inferencia en dispositivos móviles. TFLite utiliza el formato .tflite y no admite retropropagación.
Los delegados compatibles incluyen GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) y XNNPACK Delegate (ARM CPU). Cada delegado está optimizado para un tipo específico de hardware.
Use cuantización: FP16 reduce el tamaño 2x, INT8 4x. También están disponibles cuantización dinámica, poda de pesos y destilación del modelo antes de la conversión.
Sí, mediante TFLite Model Maker y la API de entrenamiento en dispositivo (experimental). Se admiten ajuste fino y personalización de modelos directamente en el dispositivo del usuario.
TFLite admite CNN, RNN, LSTM, Transformer, arquitecturas móviles (MobileNet, EfficientNet, YOLO, BERT) y operaciones personalizadas. La limitación son los operadores disponibles en el delegado objetivo.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también